diff options
372 files changed, 2781 insertions, 501 deletions
diff --git a/.gitignore b/.gitignore index 3395774d232..4a625fb8580 100644 --- a/.gitignore +++ b/.gitignore @@ -29,8 +29,9 @@ -# ignore themes except the README +# ignore themes except the example and the README /themes/* +!/themes/example !/themes/README # just sane ignores diff --git a/apps/encryption/appinfo/application.php b/apps/encryption/appinfo/application.php index 79b2ad3abaf..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()) ); }); diff --git a/apps/encryption/appinfo/info.xml b/apps/encryption/appinfo/info.xml index 53a2459f864..8d3b680fc08 100644 --- a/apps/encryption/appinfo/info.xml +++ b/apps/encryption/appinfo/info.xml @@ -16,7 +16,7 @@ based on AES 128 or 256 bit keys. More information is available in the Encryption documentation </description> - <name>ownCloud Default Encryption Module</name> + <name>Default encryption module</name> <license>AGPL</license> <author>Bjoern Schiessle, Clark Tomlinson</author> <requiremin>8</requiremin> diff --git a/apps/encryption/l10n/ar.js b/apps/encryption/l10n/ar.js index 3e3d73ead26..a12c571ea46 100644 --- a/apps/encryption/l10n/ar.js +++ b/apps/encryption/l10n/ar.js @@ -10,6 +10,7 @@ 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" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.", "Recovery key password" : "استعادة كلمة مرور المفتاح", "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", "Change Password" : "عدل كلمة السر", diff --git a/apps/encryption/l10n/ar.json b/apps/encryption/l10n/ar.json index 8cb0aa2e3a5..464504b883d 100644 --- a/apps/encryption/l10n/ar.json +++ b/apps/encryption/l10n/ar.json @@ -8,6 +8,7 @@ "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" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.", "Recovery key password" : "استعادة كلمة مرور المفتاح", "Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:", "Change Password" : "عدل كلمة السر", diff --git a/apps/encryption/l10n/ast.js b/apps/encryption/l10n/ast.js index 637a66d178c..94a164ff65d 100644 --- a/apps/encryption/l10n/ast.js +++ b/apps/encryption/l10n/ast.js @@ -10,6 +10,7 @@ OC.L10N.register( "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.", "Recovery key password" : "Contraseña de clave de recuperación", "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", "Change Password" : "Camudar contraseña", diff --git a/apps/encryption/l10n/ast.json b/apps/encryption/l10n/ast.json index 30f3c70aab8..ecd1c2ff2e3 100644 --- a/apps/encryption/l10n/ast.json +++ b/apps/encryption/l10n/ast.json @@ -8,6 +8,7 @@ "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.", "Recovery key password" : "Contraseña de clave de recuperación", "Change recovery key password:" : "Camudar la contraseña de la clave de recuperación", "Change Password" : "Camudar contraseña", diff --git a/apps/encryption/l10n/az.js b/apps/encryption/l10n/az.js index b82034083e9..a8897f9ec18 100644 --- a/apps/encryption/l10n/az.js +++ b/apps/encryption/l10n/az.js @@ -19,6 +19,7 @@ OC.L10N.register( "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu faylı deşifrə etmək olmur və ola bilər ki, bu paylaşımda olan fayldır. Xahiş olunur faylın sahibinə həmin faylı sizinlə yenidən paylaşım etməsini bildirəsiniz. ", "Recovery key password" : "Açar şifrənin bərpa edilməsi", "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:", "Change Password" : "Şifrəni dəyişdir", diff --git a/apps/encryption/l10n/az.json b/apps/encryption/l10n/az.json index 32f59791733..1dae4fbeaf9 100644 --- a/apps/encryption/l10n/az.json +++ b/apps/encryption/l10n/az.json @@ -17,6 +17,7 @@ "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu faylı deşifrə etmək olmur və ola bilər ki, bu paylaşımda olan fayldır. Xahiş olunur faylın sahibinə həmin faylı sizinlə yenidən paylaşım etməsini bildirəsiniz. ", "Recovery key password" : "Açar şifrənin bərpa edilməsi", "Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:", "Change Password" : "Şifrəni dəyişdir", diff --git a/apps/encryption/l10n/bg_BG.js b/apps/encryption/l10n/bg_BG.js index 4683f2c05bc..0a5de0eab85 100644 --- a/apps/encryption/l10n/bg_BG.js +++ b/apps/encryption/l10n/bg_BG.js @@ -19,6 +19,7 @@ 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" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.", "Recovery key password" : "Парола за възстановяане на ключа", "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", "Change Password" : "Промени Паролата", diff --git a/apps/encryption/l10n/bg_BG.json b/apps/encryption/l10n/bg_BG.json index 562dd0d2af5..12729417191 100644 --- a/apps/encryption/l10n/bg_BG.json +++ b/apps/encryption/l10n/bg_BG.json @@ -17,6 +17,7 @@ "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" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.", "Recovery key password" : "Парола за възстановяане на ключа", "Change recovery key password:" : "Промени паролата за въстановяване на ключа:", "Change Password" : "Промени Паролата", diff --git a/apps/encryption/l10n/ca.js b/apps/encryption/l10n/ca.js index d1eff280140..e160a23b722 100644 --- a/apps/encryption/l10n/ca.js +++ b/apps/encryption/l10n/ca.js @@ -10,6 +10,7 @@ OC.L10N.register( "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", "Recovery key password" : "Clau de recuperació de la contrasenya", "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", "Change Password" : "Canvia la contrasenya", diff --git a/apps/encryption/l10n/ca.json b/apps/encryption/l10n/ca.json index 0bb29d59c5a..464c6e86342 100644 --- a/apps/encryption/l10n/ca.json +++ b/apps/encryption/l10n/ca.json @@ -8,6 +8,7 @@ "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.", "Recovery key password" : "Clau de recuperació de la contrasenya", "Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:", "Change Password" : "Canvia la contrasenya", diff --git a/apps/encryption/l10n/cs_CZ.js b/apps/encryption/l10n/cs_CZ.js index 4aeae1741de..e4911abb4ba 100644 --- a/apps/encryption/l10n/cs_CZ.js +++ b/apps/encryption/l10n/cs_CZ.js @@ -23,6 +23,8 @@ 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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Soubor nelze načíst, pravděpodobně se jedná o sdílený soubor. Požádejte prosím vlastníka souboru, aby vám jej znovu sdílel.", "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.", diff --git a/apps/encryption/l10n/cs_CZ.json b/apps/encryption/l10n/cs_CZ.json index bea25e846c1..f71b6803d79 100644 --- a/apps/encryption/l10n/cs_CZ.json +++ b/apps/encryption/l10n/cs_CZ.json @@ -21,6 +21,8 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Soubor nelze načíst, pravděpodobně se jedná o sdílený soubor. Požádejte prosím vlastníka souboru, aby vám jej znovu sdílel.", "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.", diff --git a/apps/encryption/l10n/da.js b/apps/encryption/l10n/da.js index 233c3b7ae68..c1d13396b8a 100644 --- a/apps/encryption/l10n/da.js +++ b/apps/encryption/l10n/da.js @@ -21,6 +21,7 @@ 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi filen er delt. Bed venligst filens ejer om at dele den med dig på ny.", "Recovery key password" : "Gendannelsesnøgle kodeord", "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", "Change Password" : "Skift Kodeord", diff --git a/apps/encryption/l10n/da.json b/apps/encryption/l10n/da.json index a3c69c46a09..0e66abbd862 100644 --- a/apps/encryption/l10n/da.json +++ b/apps/encryption/l10n/da.json @@ -19,6 +19,7 @@ "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke kryptere denne fil, sandsynligvis fordi filen er delt. Bed venligst filens ejer om at dele den med dig på ny.", "Recovery key password" : "Gendannelsesnøgle kodeord", "Change recovery key password:" : "Skift gendannelsesnøgle kodeord:", "Change Password" : "Skift Kodeord", diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js index 5dc4453fd74..d8642129aa9 100644 --- a/apps/encryption/l10n/de.js +++ b/apps/encryption/l10n/de.js @@ -23,6 +23,8 @@ 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", "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.", diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json index abccb4016d1..cb0fc8c80d1 100644 --- a/apps/encryption/l10n/de.json +++ b/apps/encryption/l10n/de.json @@ -21,6 +21,8 @@ "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.", "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.", diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js index 9b8e571518a..8acbe831ced 100644 --- a/apps/encryption/l10n/de_DE.js +++ b/apps/encryption/l10n/de_DE.js @@ -23,9 +23,11 @@ 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.", "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.", + "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 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", diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json index aee9e551163..8b4e6e405a2 100644 --- a/apps/encryption/l10n/de_DE.json +++ b/apps/encryption/l10n/de_DE.json @@ -21,9 +21,11 @@ "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht entschlüsselt werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Die Datei kann nicht gelesen werden, wahrscheinlich handelt es sich um eine freigegebene Datei. Bitte kontaktieren Sie den Dateibesitzer und bitten Sie ihn, die Datei nochmals mit Ihnen zu teilen.", "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.", + "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 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", diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js index ec6491dc055..d2546fff92a 100644 --- a/apps/encryption/l10n/el.js +++ b/apps/encryption/l10n/el.js @@ -23,6 +23,8 @@ 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" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Αδυναμία ανάγνωσης αυτού του αρχείου, πιθανό να είναι διαμοιραζόμενο αρχείο. Παρακαλώ ρωτήστε τον κάτοχο του αρχείου να το διαμοιράσει ξανά μαζί σας.", "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." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.", diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json index a94eac410da..8904aaa8fa3 100644 --- a/apps/encryption/l10n/el.json +++ b/apps/encryption/l10n/el.json @@ -21,6 +21,8 @@ "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" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Αδυναμία ανάγνωσης αυτού του αρχείου, πιθανό να είναι διαμοιραζόμενο αρχείο. Παρακαλώ ρωτήστε τον κάτοχο του αρχείου να το διαμοιράσει ξανά μαζί σας.", "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." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.", diff --git a/apps/encryption/l10n/en_GB.js b/apps/encryption/l10n/en_GB.js index 678c62f982d..823b4305c0e 100644 --- a/apps/encryption/l10n/en_GB.js +++ b/apps/encryption/l10n/en_GB.js @@ -8,11 +8,13 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Could not enable recovery key. Please check your recovery key password!", "Recovery key successfully disabled" : "Recovery key disabled successfully", "Could not disable recovery key. Please check your recovery key password!" : "Could not disable recovery key. Please check your recovery key password!", + "Missing parameters" : "Missing parameters", "Please provide the old recovery password" : "Please provide the old recovery password", "Please provide a new recovery password" : "Please provide a new recovery password", "Please repeat the new recovery password" : "Please repeat the new recovery password", "Password successfully changed." : "Password changed successfully.", "Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.", + "Recovery Key disabled" : "Recovery Key disabled", "Recovery Key enabled" : "Recovery Key enabled", "Could not enable the recovery key, please try again or contact your administrator" : "Could not enable the recovery key, please try again or contact your administrator", "Could not update the private key password." : "Could not update the private key password.", @@ -21,8 +23,17 @@ 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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.", + "Enable recovery key" : "Enable recovery key", + "Disable 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." : "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" : "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.", diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json index 6132868f396..9d5b8b6e6b8 100644 --- a/apps/encryption/l10n/en_GB.json +++ b/apps/encryption/l10n/en_GB.json @@ -6,11 +6,13 @@ "Could not enable recovery key. Please check your recovery key password!" : "Could not enable recovery key. Please check your recovery key password!", "Recovery key successfully disabled" : "Recovery key disabled successfully", "Could not disable recovery key. Please check your recovery key password!" : "Could not disable recovery key. Please check your recovery key password!", + "Missing parameters" : "Missing parameters", "Please provide the old recovery password" : "Please provide the old recovery password", "Please provide a new recovery password" : "Please provide a new recovery password", "Please repeat the new recovery password" : "Please repeat the new recovery password", "Password successfully changed." : "Password changed successfully.", "Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.", + "Recovery Key disabled" : "Recovery Key disabled", "Recovery Key enabled" : "Recovery Key enabled", "Could not enable the recovery key, please try again or contact your administrator" : "Could not enable the recovery key, please try again or contact your administrator", "Could not update the private key password." : "Could not update the private key password.", @@ -19,8 +21,17 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.", + "Enable recovery key" : "Enable recovery key", + "Disable 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." : "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" : "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.", diff --git a/apps/encryption/l10n/es.js b/apps/encryption/l10n/es.js index dd49810f03a..6d6500ac96d 100644 --- a/apps/encryption/l10n/es.js +++ b/apps/encryption/l10n/es.js @@ -16,21 +16,24 @@ OC.L10N.register( "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 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 su administrador", "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.", "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor inténtelo de nuevo.", "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcta, por favor inténtelo de nuevo.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente sea un archivo compartido. Consulte con el propietario del mismo y que lo vuelva a compartir con usted.", "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" : "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 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.", + "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.", diff --git a/apps/encryption/l10n/es.json b/apps/encryption/l10n/es.json index 54811d078c9..29093ab4a59 100644 --- a/apps/encryption/l10n/es.json +++ b/apps/encryption/l10n/es.json @@ -14,21 +14,24 @@ "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 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 su administrador", "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.", "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor inténtelo de nuevo.", "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcta, por favor inténtelo de nuevo.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede leer este archivo, probablemente sea un archivo compartido. Consulte con el propietario del mismo y que lo vuelva a compartir con usted.", "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" : "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 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.", + "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.", diff --git a/apps/encryption/l10n/es_AR.js b/apps/encryption/l10n/es_AR.js index 4b47a49e629..e2fed7c3d38 100644 --- a/apps/encryption/l10n/es_AR.js +++ b/apps/encryption/l10n/es_AR.js @@ -10,6 +10,7 @@ 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." : "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.", "Recovery key password" : "Contraseña de recuperación de clave", "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", "Change Password" : "Cambiar contraseña", diff --git a/apps/encryption/l10n/es_AR.json b/apps/encryption/l10n/es_AR.json index 9c5d2519333..b938c1d6e38 100644 --- a/apps/encryption/l10n/es_AR.json +++ b/apps/encryption/l10n/es_AR.json @@ -8,6 +8,7 @@ "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." : "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.", "Recovery key password" : "Contraseña de recuperación de clave", "Change recovery key password:" : "Cambiar contraseña para recuperar la clave:", "Change Password" : "Cambiar contraseña", diff --git a/apps/encryption/l10n/es_MX.js b/apps/encryption/l10n/es_MX.js index 64bfc291f82..12836faa54d 100644 --- a/apps/encryption/l10n/es_MX.js +++ b/apps/encryption/l10n/es_MX.js @@ -10,6 +10,7 @@ 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 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", "Recovery key password" : "Contraseña de clave de recuperación", "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", "Change Password" : "Cambiar contraseña", diff --git a/apps/encryption/l10n/es_MX.json b/apps/encryption/l10n/es_MX.json index 9115513d7b1..f8332799f15 100644 --- a/apps/encryption/l10n/es_MX.json +++ b/apps/encryption/l10n/es_MX.json @@ -8,6 +8,7 @@ "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 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.", "Recovery key password" : "Contraseña de clave de recuperación", "Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación", "Change Password" : "Cambiar contraseña", diff --git a/apps/encryption/l10n/et_EE.js b/apps/encryption/l10n/et_EE.js index 6e2684058fe..dfd1cdfcb69 100644 --- a/apps/encryption/l10n/et_EE.js +++ b/apps/encryption/l10n/et_EE.js @@ -19,6 +19,7 @@ OC.L10N.register( "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.", "Recovery key password" : "Taastevõtme parool", "Change recovery key password:" : "Muuda taastevõtme parooli:", "Change Password" : "Muuda parooli", diff --git a/apps/encryption/l10n/et_EE.json b/apps/encryption/l10n/et_EE.json index 66839779f67..e5a4bd72482 100644 --- a/apps/encryption/l10n/et_EE.json +++ b/apps/encryption/l10n/et_EE.json @@ -17,6 +17,7 @@ "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.", "Recovery key password" : "Taastevõtme parool", "Change recovery key password:" : "Muuda taastevõtme parooli:", "Change Password" : "Muuda parooli", diff --git a/apps/encryption/l10n/eu.js b/apps/encryption/l10n/eu.js index 083bd125ba9..1e0cffe4662 100644 --- a/apps/encryption/l10n/eu.js +++ b/apps/encryption/l10n/eu.js @@ -19,6 +19,7 @@ OC.L10N.register( "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", "Recovery key password" : "Berreskuratze gako pasahitza", "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", "Change Password" : "Aldatu Pasahitza", diff --git a/apps/encryption/l10n/eu.json b/apps/encryption/l10n/eu.json index 88639331be4..b896698f6d6 100644 --- a/apps/encryption/l10n/eu.json +++ b/apps/encryption/l10n/eu.json @@ -17,6 +17,7 @@ "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", "Recovery key password" : "Berreskuratze gako pasahitza", "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", "Change Password" : "Aldatu Pasahitza", diff --git a/apps/encryption/l10n/fi_FI.js b/apps/encryption/l10n/fi_FI.js index 54b43463199..bfcfb32c178 100644 --- a/apps/encryption/l10n/fi_FI.js +++ b/apps/encryption/l10n/fi_FI.js @@ -23,6 +23,8 @@ 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tämän tiedoston salauksen purkaminen ei onnistu. Kyseessä on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto kanssasi uudelleen.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tiedostoa ei voi lukea, se on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto uudelleen kanssasi.", "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.", diff --git a/apps/encryption/l10n/fi_FI.json b/apps/encryption/l10n/fi_FI.json index c42f9928c6b..95e3523b9af 100644 --- a/apps/encryption/l10n/fi_FI.json +++ b/apps/encryption/l10n/fi_FI.json @@ -21,6 +21,8 @@ "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tämän tiedoston salauksen purkaminen ei onnistu. Kyseessä on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto kanssasi uudelleen.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tiedostoa ei voi lukea, se on luultavasti jaettu tiedosto. Pyydä tiedoston omistajaa jakamaan tiedosto uudelleen kanssasi.", "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.", diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js index 293626e95da..6ac1d0a7a10 100644 --- a/apps/encryption/l10n/fr.js +++ b/apps/encryption/l10n/fr.js @@ -23,9 +23,11 @@ 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier : il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le partager à nouveau avec vous.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de lire ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le repartager avec vous. ", "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.", + "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 s'ils oublient 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 clé de récupération", "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json index c35d5d31296..5e576d1b127 100644 --- a/apps/encryption/l10n/fr.json +++ b/apps/encryption/l10n/fr.json @@ -21,9 +21,11 @@ "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de déchiffrer ce fichier : il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le partager à nouveau avec vous.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de lire ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire du fichier de le repartager avec vous. ", "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.", + "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 s'ils oublient 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 clé de récupération", "Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :", diff --git a/apps/encryption/l10n/gl.js b/apps/encryption/l10n/gl.js index 6cc14cc80e4..d192a0bd8ba 100644 --- a/apps/encryption/l10n/gl.js +++ b/apps/encryption/l10n/gl.js @@ -23,6 +23,8 @@ 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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel ler o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", "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.", diff --git a/apps/encryption/l10n/gl.json b/apps/encryption/l10n/gl.json index df89a75eecd..442688f38cd 100644 --- a/apps/encryption/l10n/gl.json +++ b/apps/encryption/l10n/gl.json @@ -21,6 +21,8 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Non foi posíbel ler o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.", "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.", diff --git a/apps/encryption/l10n/hr.js b/apps/encryption/l10n/hr.js index 40ad26f9daa..f6cf942edfb 100644 --- a/apps/encryption/l10n/hr.js +++ b/apps/encryption/l10n/hr.js @@ -10,6 +10,7 @@ OC.L10N.register( "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", "Recovery key password" : "Lozinka ključa za oporavak", "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", "Change Password" : "Promijenite lozinku", diff --git a/apps/encryption/l10n/hr.json b/apps/encryption/l10n/hr.json index 71f83db1bdf..acfd057ec62 100644 --- a/apps/encryption/l10n/hr.json +++ b/apps/encryption/l10n/hr.json @@ -8,6 +8,7 @@ "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.", "Recovery key password" : "Lozinka ključa za oporavak", "Change recovery key password:" : "Promijenite lozinku ključa za oporavak", "Change Password" : "Promijenite lozinku", diff --git a/apps/encryption/l10n/hu_HU.js b/apps/encryption/l10n/hu_HU.js index be4df724ef8..15611a77d05 100644 --- a/apps/encryption/l10n/hu_HU.js +++ b/apps/encryption/l10n/hu_HU.js @@ -10,6 +10,7 @@ OC.L10N.register( "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.", "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!", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!", "Recovery key password" : "A helyreállítási kulcs jelszava", "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", "Change Password" : "Jelszó megváltoztatása", diff --git a/apps/encryption/l10n/hu_HU.json b/apps/encryption/l10n/hu_HU.json index 260a6ae3342..3214000e1a1 100644 --- a/apps/encryption/l10n/hu_HU.json +++ b/apps/encryption/l10n/hu_HU.json @@ -8,6 +8,7 @@ "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.", "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!", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!", "Recovery key password" : "A helyreállítási kulcs jelszava", "Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:", "Change Password" : "Jelszó megváltoztatása", diff --git a/apps/encryption/l10n/id.js b/apps/encryption/l10n/id.js index 4feb1de4186..7117924864c 100644 --- a/apps/encryption/l10n/id.js +++ b/apps/encryption/l10n/id.js @@ -23,6 +23,7 @@ OC.L10N.register( "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.", "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.", diff --git a/apps/encryption/l10n/id.json b/apps/encryption/l10n/id.json index da2bf575939..5a0466c5f2a 100644 --- a/apps/encryption/l10n/id.json +++ b/apps/encryption/l10n/id.json @@ -21,6 +21,7 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.", "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.", diff --git a/apps/encryption/l10n/it.js b/apps/encryption/l10n/it.js index 23b62b6d544..f093c6e2e50 100644 --- a/apps/encryption/l10n/it.js +++ b/apps/encryption/l10n/it.js @@ -23,6 +23,8 @@ 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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile leggere questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", "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.", diff --git a/apps/encryption/l10n/it.json b/apps/encryption/l10n/it.json index f4a5b12ff6f..ebacb7601c5 100644 --- a/apps/encryption/l10n/it.json +++ b/apps/encryption/l10n/it.json @@ -21,6 +21,8 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossibile leggere questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.", "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.", diff --git a/apps/encryption/l10n/ja.js b/apps/encryption/l10n/ja.js index 1f2cf3cf49d..68149d82800 100644 --- a/apps/encryption/l10n/ja.js +++ b/apps/encryption/l10n/ja.js @@ -21,6 +21,7 @@ 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" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。", "Recovery key password" : "リカバリキーのパスワード", "Change recovery key password:" : "リカバリキーのパスワードを変更:", "Change Password" : "パスワードを変更", diff --git a/apps/encryption/l10n/ja.json b/apps/encryption/l10n/ja.json index 38f8a84d8c7..1ca6304c28f 100644 --- a/apps/encryption/l10n/ja.json +++ b/apps/encryption/l10n/ja.json @@ -19,6 +19,7 @@ "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" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。", "Recovery key password" : "リカバリキーのパスワード", "Change recovery key password:" : "リカバリキーのパスワードを変更:", "Change Password" : "パスワードを変更", diff --git a/apps/encryption/l10n/ko.js b/apps/encryption/l10n/ko.js index b4f9049082d..9e82a7ff266 100644 --- a/apps/encryption/l10n/ko.js +++ b/apps/encryption/l10n/ko.js @@ -23,6 +23,7 @@ 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" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.", "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." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.", diff --git a/apps/encryption/l10n/ko.json b/apps/encryption/l10n/ko.json index 4cb2f35540c..5fcdae4cde3 100644 --- a/apps/encryption/l10n/ko.json +++ b/apps/encryption/l10n/ko.json @@ -21,6 +21,7 @@ "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" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.", "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." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.", diff --git a/apps/encryption/l10n/lt_LT.js b/apps/encryption/l10n/lt_LT.js index 2fd29ca7788..03a825d1e3a 100644 --- a/apps/encryption/l10n/lt_LT.js +++ b/apps/encryption/l10n/lt_LT.js @@ -10,6 +10,7 @@ OC.L10N.register( "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.", "Recovery key password" : "Atkūrimo rakto slaptažodis", "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", "Change Password" : "Pakeisti slaptažodį", diff --git a/apps/encryption/l10n/lt_LT.json b/apps/encryption/l10n/lt_LT.json index 3e97937d60d..fcfee0f3e5e 100644 --- a/apps/encryption/l10n/lt_LT.json +++ b/apps/encryption/l10n/lt_LT.json @@ -8,6 +8,7 @@ "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.", "Recovery key password" : "Atkūrimo rakto slaptažodis", "Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:", "Change Password" : "Pakeisti slaptažodį", diff --git a/apps/encryption/l10n/nb_NO.js b/apps/encryption/l10n/nb_NO.js index 205f9713583..603cf965ef7 100644 --- a/apps/encryption/l10n/nb_NO.js +++ b/apps/encryption/l10n/nb_NO.js @@ -8,20 +8,34 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Klarte ikke å aktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", "Recovery key successfully disabled" : "Gjenopprettingsnøkkel ble deaktivert", "Could not disable recovery key. Please check your recovery key password!" : "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", + "Missing parameters" : "Manglende parametre", "Please provide the old recovery password" : "Oppgi det gamle gjenopprettingspassordet", "Please provide a new recovery password" : "Oppgi et nytt gjenopprettingspassord", "Please repeat the new recovery password" : "Gjenta det nye gjenopprettingspassordet", "Password successfully changed." : "Passordet ble endret.", "Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.", + "Recovery Key disabled" : "Gjenopprettingsnøkkel deaktivert", + "Recovery Key enabled" : "Gjenopprettingsnøkkel aktivert", + "Could not enable the recovery key, please try again or contact your administrator" : "Klarte ikke å aktivere gjenopprettingsnøkkelen. Prøv igjen eller kontakt administratoren.", "Could not update the private key password." : "Klarte ikke å oppdatere privatnøkkelpassordet.", "The old password was not correct, please try again." : "Det gamle passordet var feil. Prøv igjen.", "The current log-in password was not correct, please try again." : "Det nåværende innloggingspassordet var feil. Prøv igjen.", "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke lese denne filen, som sannsynligvis er en delt fil. Be eieren av filen om å dele den med deg på nytt.", + "Enable recovery key" : "Aktiver gjenopprettingsnøkkel", + "Disable recovery key" : "Deaktiver gjenopprettingsnøkkel", + "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." : "Gjenopprettingsnøkkelen er en ekstra krypteringsnøkkel som brukes til å kryptere filer. Den tillater gjenoppretting av en brukers filer i tilfelle brukeren glemmer passordet sitt.", "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", + "ownCloud basic encryption module" : "ownCloud grunnleggende krypteringsmodul", "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke husker det gamle passordet ditt kan du spørre administratoren om å gjenopprette filene dine.", diff --git a/apps/encryption/l10n/nb_NO.json b/apps/encryption/l10n/nb_NO.json index 8f0a09d56b5..3b010aad3bd 100644 --- a/apps/encryption/l10n/nb_NO.json +++ b/apps/encryption/l10n/nb_NO.json @@ -6,20 +6,34 @@ "Could not enable recovery key. Please check your recovery key password!" : "Klarte ikke å aktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", "Recovery key successfully disabled" : "Gjenopprettingsnøkkel ble deaktivert", "Could not disable recovery key. Please check your recovery key password!" : "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.", + "Missing parameters" : "Manglende parametre", "Please provide the old recovery password" : "Oppgi det gamle gjenopprettingspassordet", "Please provide a new recovery password" : "Oppgi et nytt gjenopprettingspassord", "Please repeat the new recovery password" : "Gjenta det nye gjenopprettingspassordet", "Password successfully changed." : "Passordet ble endret.", "Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.", + "Recovery Key disabled" : "Gjenopprettingsnøkkel deaktivert", + "Recovery Key enabled" : "Gjenopprettingsnøkkel aktivert", + "Could not enable the recovery key, please try again or contact your administrator" : "Klarte ikke å aktivere gjenopprettingsnøkkelen. Prøv igjen eller kontakt administratoren.", "Could not update the private key password." : "Klarte ikke å oppdatere privatnøkkelpassordet.", "The old password was not correct, please try again." : "Det gamle passordet var feil. Prøv igjen.", "The current log-in password was not correct, please try again." : "Det nåværende innloggingspassordet var feil. Prøv igjen.", "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke lese denne filen, som sannsynligvis er en delt fil. Be eieren av filen om å dele den med deg på nytt.", + "Enable recovery key" : "Aktiver gjenopprettingsnøkkel", + "Disable recovery key" : "Deaktiver gjenopprettingsnøkkel", + "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." : "Gjenopprettingsnøkkelen er en ekstra krypteringsnøkkel som brukes til å kryptere filer. Den tillater gjenoppretting av en brukers filer i tilfelle brukeren glemmer passordet sitt.", "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", + "ownCloud basic encryption module" : "ownCloud grunnleggende krypteringsmodul", "Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.", "Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:", " If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke husker det gamle passordet ditt kan du spørre administratoren om å gjenopprette filene dine.", diff --git a/apps/encryption/l10n/nl.js b/apps/encryption/l10n/nl.js index d455039cff0..ff0fb844477 100644 --- a/apps/encryption/l10n/nl.js +++ b/apps/encryption/l10n/nl.js @@ -23,6 +23,8 @@ 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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet lezen, waarschijnlijk is het een gedeeld bestand. Vraag de eigenaar om het bestand opnieuw met u te delen.", "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.", diff --git a/apps/encryption/l10n/nl.json b/apps/encryption/l10n/nl.json index 6172a9fa3c8..5fe11c28e3e 100644 --- a/apps/encryption/l10n/nl.json +++ b/apps/encryption/l10n/nl.json @@ -21,6 +21,8 @@ "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan dit bestand niet lezen, waarschijnlijk is het een gedeeld bestand. Vraag de eigenaar om het bestand opnieuw met u te delen.", "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.", diff --git a/apps/encryption/l10n/pl.js b/apps/encryption/l10n/pl.js index dd8ecd2081b..016671e88b7 100644 --- a/apps/encryption/l10n/pl.js +++ b/apps/encryption/l10n/pl.js @@ -19,6 +19,7 @@ OC.L10N.register( "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.", "Recovery key password" : "Hasło klucza odzyskiwania", "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", "Change Password" : "Zmień hasło", diff --git a/apps/encryption/l10n/pl.json b/apps/encryption/l10n/pl.json index 8e40fe41200..3b6e4a18e49 100644 --- a/apps/encryption/l10n/pl.json +++ b/apps/encryption/l10n/pl.json @@ -17,6 +17,7 @@ "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.", "Recovery key password" : "Hasło klucza odzyskiwania", "Change recovery key password:" : "Zmień hasło klucza odzyskiwania", "Change Password" : "Zmień hasło", diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js index 4d25a18c137..c1584ed2335 100644 --- a/apps/encryption/l10n/pt_BR.js +++ b/apps/encryption/l10n/pt_BR.js @@ -23,6 +23,8 @@ 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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Por favor peça ao dono do arquivo para compartilha-lo com você.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível ler este arquivo, provavelmente este é um arquivo compartilhado. Por favor, pergunte o dono do arquivo para recompartilhar o arquivo com você.", "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.", diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json index 1c7b13e2e7d..d3f35f35870 100644 --- a/apps/encryption/l10n/pt_BR.json +++ b/apps/encryption/l10n/pt_BR.json @@ -21,6 +21,8 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Por favor peça ao dono do arquivo para compartilha-lo com você.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível ler este arquivo, provavelmente este é um arquivo compartilhado. Por favor, pergunte o dono do arquivo para recompartilhar o arquivo com você.", "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.", diff --git a/apps/encryption/l10n/pt_PT.js b/apps/encryption/l10n/pt_PT.js index d3055cd4a40..fee7b632671 100644 --- a/apps/encryption/l10n/pt_PT.js +++ b/apps/encryption/l10n/pt_PT.js @@ -8,6 +8,7 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Não foi possível ativar a chave de recuperação. Por favor, verifique a sua senha da chave de recuperação!", "Recovery key successfully disabled" : "A chave de recuperação foi desativada com sucesso", "Could not disable recovery key. Please check your recovery key password!" : "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.", + "Missing parameters" : "Parametros em falta", "Please provide the old recovery password" : "Escreva a palavra-passe de recuperação antiga", "Please provide a new recovery password" : "Escreva a nova palavra-passe de recuperação", "Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação", @@ -21,6 +22,7 @@ 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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.", "Recovery key password" : "Senha da chave de recuperação", "Change recovery key password:" : "Alterar a senha da chave de recuperação:", "Change Password" : "Alterar a Senha", diff --git a/apps/encryption/l10n/pt_PT.json b/apps/encryption/l10n/pt_PT.json index 57baaa64ff1..8ec72faf8d9 100644 --- a/apps/encryption/l10n/pt_PT.json +++ b/apps/encryption/l10n/pt_PT.json @@ -6,6 +6,7 @@ "Could not enable recovery key. Please check your recovery key password!" : "Não foi possível ativar a chave de recuperação. Por favor, verifique a sua senha da chave de recuperação!", "Recovery key successfully disabled" : "A chave de recuperação foi desativada com sucesso", "Could not disable recovery key. Please check your recovery key password!" : "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.", + "Missing parameters" : "Parametros em falta", "Please provide the old recovery password" : "Escreva a palavra-passe de recuperação antiga", "Please provide a new recovery password" : "Escreva a nova palavra-passe de recuperação", "Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação", @@ -19,6 +20,7 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.", "Recovery key password" : "Senha da chave de recuperação", "Change recovery key password:" : "Alterar a senha da chave de recuperação:", "Change Password" : "Alterar a Senha", diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js index 03af392d19e..ec1ace0b4f0 100644 --- a/apps/encryption/l10n/ru.js +++ b/apps/encryption/l10n/ru.js @@ -23,6 +23,7 @@ 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" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.", "Enable recovery key" : "Включить ключ восстановления", "Disable recovery key" : "Отключить ключ восстановления", "Recovery key password" : "Пароль ключа восстановления", diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json index 2e2bcfd0513..bde2b4c2f01 100644 --- a/apps/encryption/l10n/ru.json +++ b/apps/encryption/l10n/ru.json @@ -21,6 +21,7 @@ "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" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удалось расшифровать файл, возможно это опубликованный файл. Попросите владельца файла повторно открыть к нему доступ.", "Enable recovery key" : "Включить ключ восстановления", "Disable recovery key" : "Отключить ключ восстановления", "Recovery key password" : "Пароль ключа восстановления", diff --git a/apps/encryption/l10n/sk_SK.js b/apps/encryption/l10n/sk_SK.js index ff9f5df4b15..727903f5679 100644 --- a/apps/encryption/l10n/sk_SK.js +++ b/apps/encryption/l10n/sk_SK.js @@ -19,6 +19,7 @@ OC.L10N.register( "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.", "Recovery key password" : "Heslo obnovovacieho kľúča", "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", "Change Password" : "Zmeniť heslo", diff --git a/apps/encryption/l10n/sk_SK.json b/apps/encryption/l10n/sk_SK.json index 1dd03e0f9ea..ced78b0931f 100644 --- a/apps/encryption/l10n/sk_SK.json +++ b/apps/encryption/l10n/sk_SK.json @@ -17,6 +17,7 @@ "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.", "Recovery key password" : "Heslo obnovovacieho kľúča", "Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:", "Change Password" : "Zmeniť heslo", diff --git a/apps/encryption/l10n/sl.js b/apps/encryption/l10n/sl.js index fe9f775fbef..ef695af626d 100644 --- a/apps/encryption/l10n/sl.js +++ b/apps/encryption/l10n/sl.js @@ -19,6 +19,7 @@ OC.L10N.register( "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.", "Recovery key password" : "Ključ za obnovitev gesla", "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", "Change Password" : "Spremeni geslo", diff --git a/apps/encryption/l10n/sl.json b/apps/encryption/l10n/sl.json index f650196eac1..7e50e87f41b 100644 --- a/apps/encryption/l10n/sl.json +++ b/apps/encryption/l10n/sl.json @@ -17,6 +17,7 @@ "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.", "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.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.", "Recovery key password" : "Ključ za obnovitev gesla", "Change recovery key password:" : "Spremeni ključ za obnovitev gesla:", "Change Password" : "Spremeni geslo", diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js index b1e0feaa343..fac26d7c953 100644 --- a/apps/encryption/l10n/sr.js +++ b/apps/encryption/l10n/sr.js @@ -23,6 +23,7 @@ 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" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.", "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." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json index f3139af14af..fdf55cf4e00 100644 --- a/apps/encryption/l10n/sr.json +++ b/apps/encryption/l10n/sr.json @@ -21,6 +21,7 @@ "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" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са вама.", "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." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", diff --git a/apps/encryption/l10n/sv.js b/apps/encryption/l10n/sv.js index 9ffea2b937f..d68e3274ad6 100644 --- a/apps/encryption/l10n/sv.js +++ b/apps/encryption/l10n/sv.js @@ -19,6 +19,7 @@ OC.L10N.register( "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.", "Recovery key password" : "Lösenord för återställningsnyckel", "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", "Change Password" : "Byt lösenord", diff --git a/apps/encryption/l10n/sv.json b/apps/encryption/l10n/sv.json index e977107ba21..2ab5025fb25 100644 --- a/apps/encryption/l10n/sv.json +++ b/apps/encryption/l10n/sv.json @@ -17,6 +17,7 @@ "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.", "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.", "Recovery key password" : "Lösenord för återställningsnyckel", "Change recovery key password:" : "Ändra lösenord för återställningsnyckel:", "Change Password" : "Byt lösenord", diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js index f462437912e..0d4327b2e0b 100644 --- a/apps/encryption/l10n/tr.js +++ b/apps/encryption/l10n/tr.js @@ -23,6 +23,7 @@ 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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.", "Enable recovery key" : "Kurtarma anahtarını aktif et", "Disable recovery key" : "Kurtarma anahtarını kapat", "Recovery key password" : "Kurtarma anahtarı parolası", diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json index 1f3dea88d57..3989ebaa515 100644 --- a/apps/encryption/l10n/tr.json +++ b/apps/encryption/l10n/tr.json @@ -21,6 +21,7 @@ "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", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.", "Enable recovery key" : "Kurtarma anahtarını aktif et", "Disable recovery key" : "Kurtarma anahtarını kapat", "Recovery key password" : "Kurtarma anahtarı parolası", diff --git a/apps/encryption/l10n/uk.js b/apps/encryption/l10n/uk.js index de044e5a506..f7b432c2747 100644 --- a/apps/encryption/l10n/uk.js +++ b/apps/encryption/l10n/uk.js @@ -8,12 +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 enabled" : "Ключ відновлення підключено", + "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." : "Старий пароль введено не вірно, спробуйте ще раз.", @@ -21,6 +22,7 @@ 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" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.", "Recovery key password" : "Пароль ключа відновлення", "Change recovery key password:" : "Змінити пароль ключа відновлення:", "Change Password" : "Змінити Пароль", diff --git a/apps/encryption/l10n/uk.json b/apps/encryption/l10n/uk.json index f0ac6b8789a..f5be35d821c 100644 --- a/apps/encryption/l10n/uk.json +++ b/apps/encryption/l10n/uk.json @@ -6,12 +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 enabled" : "Ключ відновлення підключено", + "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." : "Старий пароль введено не вірно, спробуйте ще раз.", @@ -19,6 +20,7 @@ "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" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.", "Recovery key password" : "Пароль ключа відновлення", "Change recovery key password:" : "Змінити пароль ключа відновлення:", "Change Password" : "Змінити Пароль", diff --git a/apps/encryption/l10n/zh_CN.js b/apps/encryption/l10n/zh_CN.js index 05cfcca307c..e38e6f03227 100644 --- a/apps/encryption/l10n/zh_CN.js +++ b/apps/encryption/l10n/zh_CN.js @@ -17,6 +17,7 @@ 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" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。", "Recovery key password" : "恢复密钥密码", "Change recovery key password:" : "更改恢复密钥密码", "Change Password" : "修改密码", diff --git a/apps/encryption/l10n/zh_CN.json b/apps/encryption/l10n/zh_CN.json index 4106228b0d5..0a1c7b5b899 100644 --- a/apps/encryption/l10n/zh_CN.json +++ b/apps/encryption/l10n/zh_CN.json @@ -15,6 +15,7 @@ "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" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。", "Recovery key password" : "恢复密钥密码", "Change recovery key password:" : "更改恢复密钥密码", "Change Password" : "修改密码", diff --git a/apps/encryption/l10n/zh_TW.js b/apps/encryption/l10n/zh_TW.js index 946dc001507..01b35d4661a 100644 --- a/apps/encryption/l10n/zh_TW.js +++ b/apps/encryption/l10n/zh_TW.js @@ -10,6 +10,7 @@ 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" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。", "Recovery key password" : "還原金鑰密碼", "Change recovery key password:" : "變更還原金鑰密碼:", "Change Password" : "變更密碼", diff --git a/apps/encryption/l10n/zh_TW.json b/apps/encryption/l10n/zh_TW.json index 67878ea4bf4..a1617eec761 100644 --- a/apps/encryption/l10n/zh_TW.json +++ b/apps/encryption/l10n/zh_TW.json @@ -8,6 +8,7 @@ "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" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。", "Recovery key password" : "還原金鑰密碼", "Change recovery key password:" : "變更還原金鑰密碼:", "Change Password" : "變更密碼", diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php index c060bb04e53..f527955b496 100644 --- a/apps/encryption/lib/crypto/encryption.php +++ b/apps/encryption/lib/crypto/encryption.php @@ -25,16 +25,18 @@ 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 { const ID = 'OC_DEFAULT_MODULE'; - const DISPLAY_NAME = 'ownCloud Default Encryption'; + const DISPLAY_NAME = 'Default encryption module'; /** * @var Crypt @@ -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,6 +275,7 @@ 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)) { @@ -296,7 +304,7 @@ class Encryption implements IEncryptionModule { */ public function update($path, $uid, array $accessList) { $fileKey = $this->keyManager->getFileKey($path, $uid); - + if (!empty($fileKey)) { $publicKeys = array(); diff --git a/apps/encryption/tests/lib/crypto/encryptionTest.php b/apps/encryption/tests/lib/crypto/encryptionTest.php index 960ed112488..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 ); } @@ -245,4 +256,11 @@ class EncryptionTest extends TestCase { ); } + /** + * @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/controller/apicontroller.php b/apps/files/controller/apicontroller.php index 072265d86d6..0cc222d7ce9 100644 --- a/apps/files/controller/apicontroller.php +++ b/apps/files/controller/apicontroller.php @@ -31,7 +31,6 @@ use OCP\AppFramework\Controller; use OCP\IRequest; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataDisplayResponse; -use OCP\AppFramework\Http\DownloadResponse; use OCA\Files\Service\TagService; use OCP\IPreview; @@ -93,7 +92,6 @@ class ApiController extends Controller { * replace the actual tag selection. * * @NoAdminRequired - * @CORS * * @param string $path path * @param array|string $tags array of tags @@ -127,7 +125,6 @@ class ApiController extends Controller { * Returns a list of all files tagged with the given tag. * * @NoAdminRequired - * @CORS * * @param array|string $tagName tag name to filter by * @return DataResponse diff --git a/apps/files/index.php b/apps/files/index.php index ea0fd0ce2fe..c7a45e54854 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -29,7 +29,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/> * */ -use OCA\Files\Appinfo\Application; // Check if we are a user OCP\User::checkLoggedIn(); diff --git a/apps/files/js/navigation.js b/apps/files/js/navigation.js index be385f21f50..83cd556c89a 100644 --- a/apps/files/js/navigation.js +++ b/apps/files/js/navigation.js @@ -124,7 +124,7 @@ var $target = $(ev.target); var itemId = $target.closest('li').attr('data-id'); this.setActiveItem(itemId); - return false; + ev.preventDefault(); } }; diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js index 5665807da8f..3f76fd9a328 100644 --- a/apps/files/l10n/az.js +++ b/apps/files/l10n/az.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "Sil", "Disconnect storage" : "Daşıyıcını ayır", "Unshare" : "Paylaşımı durdur", + "No permission to delete" : "Silmək üçün yetki yoxdur", "Download" : "Yüklə", "Select" : "Seç", "Pending" : "Gözləmə", @@ -70,6 +71,7 @@ OC.L10N.register( "An error occurred while trying to update the tags" : "Qeydlərin yenilənməsi müddətində səhv baş verdi ", "A new file or folder has been <strong>created</strong>" : "Yeni fayl və ya direktoriya <strong>yaradılmışdır</strong>", "A file or folder has been <strong>changed</strong>" : "Fayl və ya direktoriya <strong>dəyişdirilib</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>sevimli faylların</strong> yaradılması və silinməsi haqqında olan xəbərdarlıqları limitlə <em>(Yalnız axınlar)</em>", "A file or folder has been <strong>deleted</strong>" : "Fayl və ya direktoriya <strong>silinib</strong>", "A file or folder has been <strong>restored</strong>" : "Fayl yada qovluq geriyə <strong>qaytarıldı</strong>", "You created %1$s" : "Siz yaratdınız %1$s", diff --git a/apps/files/l10n/az.json b/apps/files/l10n/az.json index e3f9b6e49cd..ec7c41a00f9 100644 --- a/apps/files/l10n/az.json +++ b/apps/files/l10n/az.json @@ -40,6 +40,7 @@ "Delete" : "Sil", "Disconnect storage" : "Daşıyıcını ayır", "Unshare" : "Paylaşımı durdur", + "No permission to delete" : "Silmək üçün yetki yoxdur", "Download" : "Yüklə", "Select" : "Seç", "Pending" : "Gözləmə", @@ -68,6 +69,7 @@ "An error occurred while trying to update the tags" : "Qeydlərin yenilənməsi müddətində səhv baş verdi ", "A new file or folder has been <strong>created</strong>" : "Yeni fayl və ya direktoriya <strong>yaradılmışdır</strong>", "A file or folder has been <strong>changed</strong>" : "Fayl və ya direktoriya <strong>dəyişdirilib</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>sevimli faylların</strong> yaradılması və silinməsi haqqında olan xəbərdarlıqları limitlə <em>(Yalnız axınlar)</em>", "A file or folder has been <strong>deleted</strong>" : "Fayl və ya direktoriya <strong>silinib</strong>", "A file or folder has been <strong>restored</strong>" : "Fayl yada qovluq geriyə <strong>qaytarıldı</strong>", "You created %1$s" : "Siz yaratdınız %1$s", diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 80515d6890e..4fa680b5c7f 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "Delete", "Disconnect storage" : "Disconnect storage", "Unshare" : "Unshare", + "No permission to delete" : "No permission to delete", "Download" : "Download", "Select" : "Select", "Pending" : "Pending", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index e22b24ca829..417272a5cdb 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -40,6 +40,7 @@ "Delete" : "Delete", "Disconnect storage" : "Disconnect storage", "Unshare" : "Unshare", + "No permission to delete" : "No permission to delete", "Download" : "Download", "Select" : "Select", "Pending" : "Pending", diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index b8f526af5c2..86114d7ddfb 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -16,7 +16,7 @@ OC.L10N.register( "No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue", "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été envoyé avec succès.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Le fichier envoyé dépasse l'instruction upload_max_filesize située dans le fichier php.ini :", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse la valeur MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse la valeur MAX_FILE_SIZE qui était spécifiée dans le formulaire HTML.", "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement envoyé.", "No file was uploaded" : "Pas de fichier envoyé.", "Missing a temporary folder" : "Absence de dossier temporaire", @@ -101,7 +101,7 @@ OC.L10N.register( "Folder" : "Dossier", "Upload" : "Chargement", "Cancel upload" : "Annuler l'envoi", - "No files in here" : "Pas de fichier ici", + "No files in here" : "Aucun fichier ici", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier", "Select all" : "Tout sélectionner", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index c177a4e6840..467aa830ce2 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -14,7 +14,7 @@ "No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue", "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été envoyé avec succès.", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Le fichier envoyé dépasse l'instruction upload_max_filesize située dans le fichier php.ini :", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse la valeur MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier envoyé dépasse la valeur MAX_FILE_SIZE qui était spécifiée dans le formulaire HTML.", "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement envoyé.", "No file was uploaded" : "Pas de fichier envoyé.", "Missing a temporary folder" : "Absence de dossier temporaire", @@ -99,7 +99,7 @@ "Folder" : "Dossier", "Upload" : "Chargement", "Cancel upload" : "Annuler l'envoi", - "No files in here" : "Pas de fichier ici", + "No files in here" : "Aucun fichier ici", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", "No entries found in this folder" : "Aucune entrée trouvée dans ce dossier", "Select all" : "Tout sélectionner", diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js index 56cea9ed363..7e45f374988 100644 --- a/apps/files/l10n/nb_NO.js +++ b/apps/files/l10n/nb_NO.js @@ -42,6 +42,7 @@ OC.L10N.register( "Delete" : "Slett", "Disconnect storage" : "Koble fra lagring", "Unshare" : "Avslutt deling", + "No permission to delete" : "Ikke tillatelse til å slette", "Download" : "Last ned", "Select" : "Velg", "Pending" : "Ventende", @@ -70,6 +71,7 @@ OC.L10N.register( "An error occurred while trying to update the tags" : "En feil oppstod under oppdatering av taggene", "A new file or folder has been <strong>created</strong>" : "En ny fil eller mappe ble <strong>opprettet</strong>", "A file or folder has been <strong>changed</strong>" : "En fil eller mappe ble <strong>endret</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Begrens varsler om oppretting og endringer i dine <strong>favorittfiler</strong> <em>(Kun strøm)</em>", "A file or folder has been <strong>deleted</strong>" : "En fil eller mappe ble <strong>slettet</strong>", "A file or folder has been <strong>restored</strong>" : "En fil eller mappe ble <strong>gjenopprettet</strong>", "You created %1$s" : "Du opprettet %1$s", diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json index 69db79a6695..4e6779e36c8 100644 --- a/apps/files/l10n/nb_NO.json +++ b/apps/files/l10n/nb_NO.json @@ -40,6 +40,7 @@ "Delete" : "Slett", "Disconnect storage" : "Koble fra lagring", "Unshare" : "Avslutt deling", + "No permission to delete" : "Ikke tillatelse til å slette", "Download" : "Last ned", "Select" : "Velg", "Pending" : "Ventende", @@ -68,6 +69,7 @@ "An error occurred while trying to update the tags" : "En feil oppstod under oppdatering av taggene", "A new file or folder has been <strong>created</strong>" : "En ny fil eller mappe ble <strong>opprettet</strong>", "A file or folder has been <strong>changed</strong>" : "En fil eller mappe ble <strong>endret</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Begrens varsler om oppretting og endringer i dine <strong>favorittfiler</strong> <em>(Kun strøm)</em>", "A file or folder has been <strong>deleted</strong>" : "En fil eller mappe ble <strong>slettet</strong>", "A file or folder has been <strong>restored</strong>" : "En fil eller mappe ble <strong>gjenopprettet</strong>", "You created %1$s" : "Du opprettet %1$s", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index a55e0e88b69..70aafce6827 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -64,6 +64,7 @@ OC.L10N.register( "File name cannot be empty." : "O nome do arquivo não pode estar vazio.", "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", "Your storage is almost full ({usedSpacePercent}%)" : "Seu armazenamento está quase cheio ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["coincide com '{filter}'","coincide com '{filter}'"], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Favorito", "Favorite" : "Favorito", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 0129b544ab4..941073fe630 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -62,6 +62,7 @@ "File name cannot be empty." : "O nome do arquivo não pode estar vazio.", "Your storage is full, files can not be updated or synced anymore!" : "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!", "Your storage is almost full ({usedSpacePercent}%)" : "Seu armazenamento está quase cheio ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["coincide com '{filter}'","coincide com '{filter}'"], "{dirs} and {files}" : "{dirs} e {files}", "Favorited" : "Favorito", "Favorite" : "Favorito", diff --git a/apps/files/tests/controller/apicontrollertest.php b/apps/files/tests/controller/apicontrollertest.php index bbab711310c..0ec38e0e2e7 100644 --- a/apps/files/tests/controller/apicontrollertest.php +++ b/apps/files/tests/controller/apicontrollertest.php @@ -25,7 +25,6 @@ namespace OCA\Files\Controller; use OC\Files\FileInfo; use OCP\AppFramework\Http; -use OC\Preview; use OCP\Files\NotFoundException; use OCP\Files\StorageNotAvailableException; use Test\TestCase; diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css index fc78ced0b76..a649ecfe885 100644 --- a/apps/files_sharing/css/public.css +++ b/apps/files_sharing/css/public.css @@ -2,6 +2,7 @@ background: #fff; text-align: center; margin: 45px auto 0; + min-height: 200px; } #preview .notCreatable { diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index 79bd0bb0c47..c5934a4f609 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -144,7 +144,7 @@ OCA.Sharing.PublicApp = { path: path, files: filename }; - return OC.generateUrl('/s/' + token + '/download', params); + return OC.generateUrl('/s/' + token + '/download') + '?' + OC.buildQueryString(params); }; this.fileList.getAjaxUrl = function (action, params) { @@ -277,6 +277,11 @@ OCA.Sharing.PublicApp = { }; $(document).ready(function () { + // FIXME: replace with OC.Plugins.register() + if (window.TESTING) { + return; + } + var App = OCA.Sharing.PublicApp; // defer app init, to give a chance to plugins to register file actions _.defer(function () { diff --git a/apps/files_sharing/l10n/az.js b/apps/files_sharing/l10n/az.js index 957ab4a7306..7c8b2f812fc 100644 --- a/apps/files_sharing/l10n/az.js +++ b/apps/files_sharing/l10n/az.js @@ -21,6 +21,7 @@ OC.L10N.register( "Remote share password" : "Uzaq yayımlanma şifrəsi", "Cancel" : "Dayandır", "Add remote share" : "Uzaq yayımlanmanı əlavə et", + "You can upload into this folder" : "Siz bu qovluğun içinə yükləyə bilərsiniz", "No ownCloud installation (7 or higher) found at {remote}" : "Yüklənmiş (7 yada yuxarı) ownCloud {uzaq} unvanında tapılmadı ", "Invalid ownCloud url" : "Yalnış ownCloud url-i", "Share" : "Yayımla", @@ -56,6 +57,7 @@ OC.L10N.register( "Download %s" : "Endir %s", "Direct link" : "Birbaşa link", "Federated Cloud Sharing" : "Federal Cloud Paylaşım", + "Open documentation" : "Sənədləri aç", "Allow users on this server to send shares to other servers" : "Bu serverdən digər serverlərə istifadəçilər tərəfindən paylaşımın göndərilməsinə izin vermək", "Allow users on this server to receive shares from other servers" : "Digər serverlərdən bu serverə istifadəçilər tərəfindən paylaşımın ötürülməsinə izin vermək" }, diff --git a/apps/files_sharing/l10n/az.json b/apps/files_sharing/l10n/az.json index 6d8bc7fb8dd..4de0b9df5c8 100644 --- a/apps/files_sharing/l10n/az.json +++ b/apps/files_sharing/l10n/az.json @@ -19,6 +19,7 @@ "Remote share password" : "Uzaq yayımlanma şifrəsi", "Cancel" : "Dayandır", "Add remote share" : "Uzaq yayımlanmanı əlavə et", + "You can upload into this folder" : "Siz bu qovluğun içinə yükləyə bilərsiniz", "No ownCloud installation (7 or higher) found at {remote}" : "Yüklənmiş (7 yada yuxarı) ownCloud {uzaq} unvanında tapılmadı ", "Invalid ownCloud url" : "Yalnış ownCloud url-i", "Share" : "Yayımla", @@ -54,6 +55,7 @@ "Download %s" : "Endir %s", "Direct link" : "Birbaşa link", "Federated Cloud Sharing" : "Federal Cloud Paylaşım", + "Open documentation" : "Sənədləri aç", "Allow users on this server to send shares to other servers" : "Bu serverdən digər serverlərə istifadəçilər tərəfindən paylaşımın göndərilməsinə izin vermək", "Allow users on this server to receive shares from other servers" : "Digər serverlərdən bu serverə istifadəçilər tərəfindən paylaşımın ötürülməsinə izin vermək" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files_sharing/l10n/nb_NO.js b/apps/files_sharing/l10n/nb_NO.js index 6a63a856069..2a181e0af49 100644 --- a/apps/files_sharing/l10n/nb_NO.js +++ b/apps/files_sharing/l10n/nb_NO.js @@ -21,6 +21,7 @@ OC.L10N.register( "Remote share password" : "Passord for ekstern deling", "Cancel" : "Avbryt", "Add remote share" : "Legg til ekstern deling", + "You can upload into this folder" : "Du kan laste opp til denne mappen", "No ownCloud installation (7 or higher) found at {remote}" : "Ingen ownCloud-installasjon (7 eller høyere) funnet på {remote}", "Invalid ownCloud url" : "Ugyldig ownCloud-url", "Share" : "Del", @@ -56,6 +57,7 @@ OC.L10N.register( "Download %s" : "Last ned %s", "Direct link" : "Direkte lenke", "Federated Cloud Sharing" : "Sammenknyttet sky-deling", + "Open documentation" : "Åpne dokumentasjonen", "Allow users on this server to send shares to other servers" : "Tillat at brukere på denne serveren sender delinger til andre servere", "Allow users on this server to receive shares from other servers" : "Tillat at brukere på denne serveren mottar delinger fra andre servere" }, diff --git a/apps/files_sharing/l10n/nb_NO.json b/apps/files_sharing/l10n/nb_NO.json index 0710062ba49..0fb0ee46cc6 100644 --- a/apps/files_sharing/l10n/nb_NO.json +++ b/apps/files_sharing/l10n/nb_NO.json @@ -19,6 +19,7 @@ "Remote share password" : "Passord for ekstern deling", "Cancel" : "Avbryt", "Add remote share" : "Legg til ekstern deling", + "You can upload into this folder" : "Du kan laste opp til denne mappen", "No ownCloud installation (7 or higher) found at {remote}" : "Ingen ownCloud-installasjon (7 eller høyere) funnet på {remote}", "Invalid ownCloud url" : "Ugyldig ownCloud-url", "Share" : "Del", @@ -54,6 +55,7 @@ "Download %s" : "Last ned %s", "Direct link" : "Direkte lenke", "Federated Cloud Sharing" : "Sammenknyttet sky-deling", + "Open documentation" : "Åpne dokumentasjonen", "Allow users on this server to send shares to other servers" : "Tillat at brukere på denne serveren sender delinger til andre servere", "Allow users on this server to receive shares from other servers" : "Tillat at brukere på denne serveren mottar delinger fra andre servere" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php index 182342c22e5..da6667e2c8b 100644 --- a/apps/files_sharing/lib/controllers/sharecontroller.php +++ b/apps/files_sharing/lib/controllers/sharecontroller.php @@ -46,7 +46,6 @@ use OCA\Files_Sharing\Helper; use OCP\User; use OCP\Util; use OCA\Files_Sharing\Activity; -use OCP\AppFramework\Http\DataResponse; /** * Class ShareController diff --git a/apps/files_sharing/lib/external/storage.php b/apps/files_sharing/lib/external/storage.php index 7c1dc5aeaf5..39e182feb60 100644 --- a/apps/files_sharing/lib/external/storage.php +++ b/apps/files_sharing/lib/external/storage.php @@ -25,7 +25,6 @@ namespace OCA\Files_Sharing\External; -use OC\Files\Filesystem; use OC\Files\Storage\DAV; use OC\ForbiddenException; use OCA\Files_Sharing\ISharedStorage; diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php index 10a37c7dae9..ee86787c181 100644 --- a/apps/files_sharing/lib/sharedstorage.php +++ b/apps/files_sharing/lib/sharedstorage.php @@ -29,11 +29,8 @@ namespace OC\Files\Storage; -use OC\Files\Cache\ChangePropagator; use OC\Files\Filesystem; use OCA\Files_Sharing\ISharedStorage; -use OCA\Files_Sharing\Propagator; -use OCA\Files_Sharing\SharedMount; /** * Convert target path to source path and pass the function call to the correct storage provider @@ -70,7 +67,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage { * Get the source file path, permissions, and owner for a shared file * * @param string $target Shared target file path - * @return Returns array with the keys path, permissions, and owner or false if not found + * @return array Returns array with the keys path, permissions, and owner or false if not found */ public function getFile($target) { if (!isset($this->files[$target])) { diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php index 3be464c64f0..b70274e6bc0 100644 --- a/apps/files_sharing/publicwebdav.php +++ b/apps/files_sharing/publicwebdav.php @@ -24,10 +24,6 @@ * */ -if (OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled() === false) { - return false; -} - // load needed apps $RUNTIME_APPTYPES = array('filesystem', 'authentication', 'logging'); @@ -48,13 +44,19 @@ $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())); // wait with registering these until auth is handled and the filesystem is setup $server->on('beforeMethod', function () use ($server, $objectTree, $authBackend) { + if (OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled() === false) { + // this is what is thrown when trying to access a non-existing share + throw new \Sabre\DAV\Exception\NotAuthenticated(); + } + $share = $authBackend->getShare(); $rootShare = \OCP\Share::resolveReShare($share); $owner = $rootShare['uid_owner']; diff --git a/apps/files_sharing/tests/controller/sharecontroller.php b/apps/files_sharing/tests/controller/sharecontroller.php index 64ee5b8ce51..eaa7ce7bfde 100644 --- a/apps/files_sharing/tests/controller/sharecontroller.php +++ b/apps/files_sharing/tests/controller/sharecontroller.php @@ -29,7 +29,6 @@ use OC\Files\Filesystem; use OCA\Files_Sharing\AppInfo\Application; use OCP\AppFramework\Http\NotFoundResponse; use OCP\AppFramework\IAppContainer; -use OCP\Files; use OCP\AppFramework\Http\RedirectResponse; use OCP\AppFramework\Http\TemplateResponse; use OCP\Security\ISecureRandom; @@ -78,10 +77,7 @@ class ShareControllerTest extends \Test\TestCase { \OC_User::createUser($this->user, $this->user); \OC_Util::tearDownFS(); - \OC_User::setUserId(''); - Filesystem::tearDown(); - \OC_User::setUserId($this->user); - \OC_Util::setupFS($this->user); + $this->loginAsUser($this->user); // Create a dummy shared file $view = new View('/'. $this->user . '/files'); diff --git a/apps/files_sharing/tests/js/publicAppSpec.js b/apps/files_sharing/tests/js/publicAppSpec.js new file mode 100644 index 00000000000..d496b78acfa --- /dev/null +++ b/apps/files_sharing/tests/js/publicAppSpec.js @@ -0,0 +1,107 @@ +/** +* ownCloud +* +* @author Vincent Petry +* @copyright 2015 Vincent Petry <pvince81@owncloud.com> +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the License, or any later version. +* +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. If not, see <http://www.gnu.org/licenses/>. +* +*/ + +describe('OCA.Sharing.PublicApp tests', function() { + var App = OCA.Sharing.PublicApp; + var $preview; + var fileListIn; + var fileListOut; + + beforeEach(function() { + $preview = $('<div id="preview"></div>'); + $('#testArea').append($preview); + $preview.append( + '<div id="mimetype"></div>' + + '<div id="mimetypeIcon"></div>' + + '<input type="hidden" id="sharingToken" value="sh4tok"></input>' + ); + }); + + describe('File list', function() { + // TODO: this should be moved to a separate file once the PublicFileList is extracted from public.js + beforeEach(function() { + $preview.append( + '<div id="app-content-files">' + + // init horrible parameters + '<input type="hidden" id="dir" value="/subdir"/>' + + '<input type="hidden" id="permissions" value="31"/>' + + // dummy controls + '<div id="controls">' + + ' <div class="actions creatable"></div>' + + ' <div class="notCreatable"></div>' + + '</div>' + + // uploader + '<input type="file" id="file_upload_start" name="files[]" multiple="multiple">' + + // dummy table + // TODO: at some point this will be rendered by the fileList class itself! + '<table id="filestable">' + + '<thead><tr>' + + '<th id="headerName" class="hidden column-name">' + + '<input type="checkbox" id="select_all_files" class="select-all">' + + '<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' + + '<span class="selectedActions hidden">' + + '<a href class="download">Download</a>' + + '</th>' + + '<th class="hidden column-size"><a class="columntitle" data-sort="size"><span class="sort-indicator"></span></a></th>' + + '<th class="hidden column-mtime"><a class="columntitle" data-sort="mtime"><span class="sort-indicator"></span></a></th>' + + '</tr></thead>' + + '<tbody id="fileList"></tbody>' + + '<tfoot></tfoot>' + + '</table>' + + // TODO: move to handlebars template + '<div id="emptycontent"><h2>Empty content message</h2><p class="uploadmessage">Upload message</p></div>' + + '<div class="nofilterresults hidden"></div>' + + '</div>' + ); + + App.initialize($('#preview')); + }); + afterEach(function() { + App._initialized = false; + }); + + describe('Download Url', function() { + var fileList; + + beforeEach(function() { + fileList = App.fileList; + }); + + it('returns correct download URL for single files', function() { + expect(fileList.getDownloadUrl('some file.txt')) + .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fsubdir&files=some%20file.txt'); + expect(fileList.getDownloadUrl('some file.txt', '/anotherpath/abc')) + .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fanotherpath%2Fabc&files=some%20file.txt'); + fileList.changeDirectory('/'); + expect(fileList.getDownloadUrl('some file.txt')) + .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2F&files=some%20file.txt'); + }); + it('returns correct download URL for multiple files', function() { + expect(fileList.getDownloadUrl(['a b c.txt', 'd e f.txt'])) + .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fsubdir&files=%5B%22a%20b%20c.txt%22%2C%22d%20e%20f.txt%22%5D'); + }); + it('returns the correct ajax URL', function() { + expect(fileList.getAjaxUrl('test', {a:1, b:'x y'})) + .toEqual(OC.webroot + '/index.php/apps/files_sharing/ajax/test.php?a=1&b=x%20y&t=sh4tok'); + }); + }); + }); +}); diff --git a/apps/files_sharing/tests/testcase.php b/apps/files_sharing/tests/testcase.php index b9e9f077201..7533b13f79d 100644 --- a/apps/files_sharing/tests/testcase.php +++ b/apps/files_sharing/tests/testcase.php @@ -153,6 +153,7 @@ abstract class TestCase extends \Test\TestCase { \OC::$server->getUserSession()->setUser(null); \OC\Files\Filesystem::tearDown(); \OC::$server->getUserSession()->login($user, $password); + \OC::$server->getUserFolder($user); \OC_Util::setupFS($user); } diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php index 688eaa1f2cb..baa0c4cbe71 100644 --- a/apps/files_trashbin/lib/trashbin.php +++ b/apps/files_trashbin/lib/trashbin.php @@ -37,6 +37,7 @@ namespace OCA\Files_Trashbin; use OC\Files\Filesystem; +use OC\Files\View; use OCA\Files_Trashbin\Command\Expire; class Trashbin { @@ -124,6 +125,7 @@ class Trashbin { /** * copy file to owners trash + * * @param string $sourcePath * @param string $owner * @param string $ownerPath @@ -184,25 +186,32 @@ class Trashbin { // disable proxy to prevent recursive calls $trashPath = '/files_trashbin/files/' . $filename . '.d' . $timestamp; + + /** @var \OC\Files\Storage\Storage $trashStorage */ + list($trashStorage, $trashInternalPath) = $view->resolvePath($trashPath); + /** @var \OC\Files\Storage\Storage $sourceStorage */ + list($sourceStorage, $sourceInternalPath) = $view->resolvePath('/files/' . $file_path); try { - $sizeOfAddedFiles = $view->filesize('/files/' . $file_path); - if ($view->file_exists($trashPath)) { - $view->unlink($trashPath); + $sizeOfAddedFiles = $sourceStorage->filesize($sourceInternalPath); + if ($trashStorage->file_exists($trashInternalPath)) { + $trashStorage->unlink($trashInternalPath); } - $view->rename('/files/' . $file_path, $trashPath); + $trashStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $trashInternalPath); } catch (\OCA\Files_Trashbin\Exceptions\CopyRecursiveException $e) { $sizeOfAddedFiles = false; - if ($view->file_exists($trashPath)) { - $view->deleteAll($trashPath); + if ($trashStorage->file_exists($trashInternalPath)) { + $trashStorage->unlink($trashInternalPath); } \OC_Log::write('files_trashbin', 'Couldn\'t move ' . $file_path . ' to the trash bin', \OC_log::ERROR); } - if ($view->file_exists('/files/' . $file_path)) { // failed to delete the original file, abort - $view->unlink($trashPath); + if ($sourceStorage->file_exists($sourceInternalPath)) { // failed to delete the original file, abort + $sourceStorage->unlink($sourceInternalPath); return false; } + $view->getUpdater()->rename('/files/' . $file_path, $trashPath); + if ($sizeOfAddedFiles !== false) { $size = $sizeOfAddedFiles; $query = \OC_DB::prepare("INSERT INTO `*PREFIX*files_trash` (`id`,`timestamp`,`location`,`user`) VALUES (?,?,?,?)"); @@ -261,14 +270,15 @@ class Trashbin { if ($owner !== $user) { self::copy_recursive($owner . '/files_versions/' . $ownerPath, $owner . '/files_trashbin/versions/' . basename($ownerPath) . '.d' . $timestamp, $rootView); } - $rootView->rename($owner . '/files_versions/' . $ownerPath, $user . '/files_trashbin/versions/' . $filename . '.d' . $timestamp); + self::move($rootView, $owner . '/files_versions/' . $ownerPath, $user . '/files_trashbin/versions/' . $filename . '.d' . $timestamp); } else if ($versions = \OCA\Files_Versions\Storage::getVersions($owner, $ownerPath)) { + foreach ($versions as $v) { - $size += $rootView->filesize($owner . '/files_versions' . $v['path'] . '.v' . $v['version']); + $size += $rootView->filesize($owner . '/files_versions/' . $v['path'] . '.v' . $v['version']); if ($owner !== $user) { - $rootView->copy($owner . '/files_versions' . $v['path'] . '.v' . $v['version'], $owner . '/files_trashbin/versions/' . $v['name'] . '.v' . $v['version'] . '.d' . $timestamp); + self::copy($rootView, $owner . '/files_versions' . $v['path'] . '.v' . $v['version'], $owner . '/files_trashbin/versions/' . $v['name'] . '.v' . $v['version'] . '.d' . $timestamp); } - $rootView->rename($owner . '/files_versions' . $v['path'] . '.v' . $v['version'], $user . '/files_trashbin/versions/' . $filename . '.v' . $v['version'] . '.d' . $timestamp); + self::move($rootView, $owner . '/files_versions' . $v['path'] . '.v' . $v['version'], $user . '/files_trashbin/versions/' . $filename . '.v' . $v['version'] . '.d' . $timestamp); } } } @@ -277,6 +287,50 @@ class Trashbin { } /** + * Move a file or folder on storage level + * + * @param View $view + * @param string $source + * @param string $target + * @return bool + */ + private static function move(View $view, $source, $target) { + /** @var \OC\Files\Storage\Storage $sourceStorage */ + list($sourceStorage, $sourceInternalPath) = $view->resolvePath($source); + /** @var \OC\Files\Storage\Storage $targetStorage */ + list($targetStorage, $targetInternalPath) = $view->resolvePath($target); + /** @var \OC\Files\Storage\Storage $ownerTrashStorage */ + + $result = $targetStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); + if ($result) { + $view->getUpdater()->rename($source, $target); + } + return $result; + } + + /** + * Copy a file or folder on storage level + * + * @param View $view + * @param string $source + * @param string $target + * @return bool + */ + private static function copy(View $view, $source, $target) { + /** @var \OC\Files\Storage\Storage $sourceStorage */ + list($sourceStorage, $sourceInternalPath) = $view->resolvePath($source); + /** @var \OC\Files\Storage\Storage $targetStorage */ + list($targetStorage, $targetInternalPath) = $view->resolvePath($target); + /** @var \OC\Files\Storage\Storage $ownerTrashStorage */ + + $result = $targetStorage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); + if ($result) { + $view->getUpdater()->update($target); + } + return $result; + } + + /** * Restore a file or folder from trash bin * * @param string $file path to the deleted file/folder relative to "files_trashbin/files/", @@ -299,7 +353,7 @@ class Trashbin { // if location no longer exists, restore file in the root directory if ($location !== '/' && (!$view->is_dir('files/' . $location) || - !$view->isCreatable('files/' . $location)) + !$view->isCreatable('files/' . $location)) ) { $location = ''; } @@ -543,6 +597,7 @@ class Trashbin { /** * resize trash bin if necessary after a new file was added to ownCloud + * * @param string $user user id */ public static function resizeTrash($user) { @@ -597,6 +652,7 @@ class Trashbin { /** * if the size limit for the trash bin is reached, we delete the oldest * files in the trash bin until we meet the limit again + * * @param array $files * @param string $user * @param int $availableSpace available disc space @@ -699,7 +755,7 @@ class Trashbin { //force rescan of versions, local storage may not have updated the cache if (!self::$scannedVersions) { /** @var \OC\Files\Storage\Storage $storage */ - list($storage, ) = $view->resolvePath('/'); + list($storage,) = $view->resolvePath('/'); $storage->getScanner()->scan('files_trashbin/versions'); self::$scannedVersions = true; } @@ -762,6 +818,7 @@ class Trashbin { /** * get the size from a given root folder + * * @param \OC\Files\View $view file view on the root folder * @return integer size of the folder */ @@ -773,7 +830,7 @@ class Trashbin { $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($root), \RecursiveIteratorIterator::CHILD_FIRST); $size = 0; - /** + /** * RecursiveDirectoryIterator on an NFS path isn't iterable with foreach * This bug is fixed in PHP 5.5.9 or before * See #8376 @@ -819,6 +876,7 @@ class Trashbin { /** * check if trash bin is empty for a given user + * * @param string $user * @return bool */ diff --git a/apps/files_trashbin/tests/storage.php b/apps/files_trashbin/tests/storage.php index 7415aba09e9..f99bc91dd26 100644 --- a/apps/files_trashbin/tests/storage.php +++ b/apps/files_trashbin/tests/storage.php @@ -23,9 +23,7 @@ namespace OCA\Files_trashbin\Tests\Storage; -use OC\Files\Storage\Home; use OC\Files\Storage\Temporary; -use OC\Files\Mount\MountPoint; use OC\Files\Filesystem; class Storage extends \Test\TestCase { @@ -318,10 +316,16 @@ class Storage extends \Test\TestCase { */ $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary') ->setConstructorArgs([[]]) - ->setMethods(['rename', 'unlink']) + ->setMethods(['rename', 'unlink', 'moveFromStorage']) ->getMock(); $storage->expects($this->any()) + ->method('rename') + ->will($this->returnValue(false)); + $storage->expects($this->any()) + ->method('moveFromStorage') + ->will($this->returnValue(false)); + $storage->expects($this->any()) ->method('unlink') ->will($this->returnValue(false)); diff --git a/apps/files_trashbin/tests/trashbin.php b/apps/files_trashbin/tests/trashbin.php index 12f2900d983..5535b3315bc 100644 --- a/apps/files_trashbin/tests/trashbin.php +++ b/apps/files_trashbin/tests/trashbin.php @@ -646,6 +646,7 @@ class Test_Trashbin extends \Test\TestCase { \OC\Files\Filesystem::tearDown(); \OC_User::setUserId($user); \OC_Util::setupFS($user); + \OC::$server->getUserFolder($user); } } diff --git a/apps/files_versions/command/expire.php b/apps/files_versions/command/expire.php index d6523746525..6cec9f4fac3 100644 --- a/apps/files_versions/command/expire.php +++ b/apps/files_versions/command/expire.php @@ -11,7 +11,6 @@ namespace OCA\Files_Versions\Command; use OC\Command\FileAccess; use OCA\Files_Versions\Storage; use OCP\Command\ICommand; -use OCP\IUser; class Expire implements ICommand { use FileAccess; diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php index 97afcf715cb..685bf48d652 100644 --- a/apps/files_versions/tests/versions.php +++ b/apps/files_versions/tests/versions.php @@ -753,6 +753,7 @@ class Test_Files_Versioning extends \Test\TestCase { \OC\Files\Filesystem::tearDown(); \OC_User::setUserId($user); \OC_Util::setupFS($user); + \OC::$server->getUserFolder($user); } } diff --git a/apps/provisioning_api/lib/users.php b/apps/provisioning_api/lib/users.php index 43cf22b071b..b709e09726d 100644 --- a/apps/provisioning_api/lib/users.php +++ b/apps/provisioning_api/lib/users.php @@ -27,6 +27,7 @@ use \OC_SubAdmin; use \OC_User; use \OC_Group; use \OC_Helper; +use OCP\Files\NotFoundException; class Users { @@ -92,16 +93,8 @@ class Users { $config = \OC::$server->getConfig(); // Find the data - $data = array(); - \OC_Util::tearDownFS(); - \OC_Util::setupFS($userId); - $storage = OC_Helper::getStorageInfo('/'); - $data['quota'] = array( - 'free' => $storage['free'], - 'used' => $storage['used'], - 'total' => $storage['total'], - 'relative' => $storage['relative'], - ); + $data = []; + $data = self::fillStorageInfo($userId, $data); $data['enabled'] = $config->getUserValue($userId, 'core', 'enabled', 'true'); $data['email'] = $config->getUserValue($userId, 'settings', 'email'); $data['displayname'] = OC_User::getDisplayName($parameters['userid']); @@ -350,4 +343,27 @@ class Users { return new OC_OCS_Result($groups); } } + + /** + * @param $userId + * @param $data + * @return mixed + * @throws \OCP\Files\NotFoundException + */ + private static function fillStorageInfo($userId, $data) { + try { + \OC_Util::tearDownFS(); + \OC_Util::setupFS($userId); + $storage = OC_Helper::getStorageInfo('/'); + $data['quota'] = [ + 'free' => $storage['free'], + 'used' => $storage['used'], + 'total' => $storage['total'], + 'relative' => $storage['relative'], + ]; + } catch (NotFoundException $ex) { + $data['quota'] = []; + } + return $data; + } } diff --git a/apps/provisioning_api/tests/appstest.php b/apps/provisioning_api/tests/appstest.php index 140dd287a0e..94bff8bbf5b 100644 --- a/apps/provisioning_api/tests/appstest.php +++ b/apps/provisioning_api/tests/appstest.php @@ -44,7 +44,7 @@ class AppsTest extends TestCase { $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $result = \OCA\provisioning_API\Apps::getApps(array()); diff --git a/apps/provisioning_api/tests/groupstest.php b/apps/provisioning_api/tests/groupstest.php index 94bde52c392..cb677d9b512 100644 --- a/apps/provisioning_api/tests/groupstest.php +++ b/apps/provisioning_api/tests/groupstest.php @@ -27,7 +27,7 @@ class GroupsTest extends TestCase { public function testGetGroupAsUser() { $users = $this->generateUsers(2); - \OC_User::setUserId($users[0]); + self::loginAsUser($users[0]); $group = $this->getUniqueID(); \OC_Group::createGroup($group); @@ -46,7 +46,7 @@ class GroupsTest extends TestCase { public function testGetGroupAsSubadmin() { $users = $this->generateUsers(2); - \OC_User::setUserId($users[0]); + self::loginAsUser($users[0]); $group = $this->getUniqueID(); \OC_Group::createGroup($group); @@ -75,7 +75,7 @@ class GroupsTest extends TestCase { public function testGetGroupAsIrrelevantSubadmin() { $users = $this->generateUsers(2); - \OC_User::setUserId($users[0]); + self::loginAsUser($users[0]); $group = $this->getUniqueID(); \OC_Group::createGroup($group); @@ -99,7 +99,7 @@ class GroupsTest extends TestCase { public function testGetGroupAsAdmin() { $users = $this->generateUsers(2); - \OC_User::setUserId($users[0]); + self::loginAsUser($users[0]); $group = $this->getUniqueID(); \OC_Group::createGroup($group); @@ -120,7 +120,7 @@ class GroupsTest extends TestCase { public function testGetSubAdminsOfGroup() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -135,7 +135,7 @@ class GroupsTest extends TestCase { \OC_Group::deleteGroup($group1); $user1 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $result = \OCA\provisioning_api\Groups::getSubAdminsOfGroup(array( 'groupid' => $this->getUniqueID(), diff --git a/apps/provisioning_api/tests/userstest.php b/apps/provisioning_api/tests/userstest.php index c6a6133b7d2..0ba76355d58 100644 --- a/apps/provisioning_api/tests/userstest.php +++ b/apps/provisioning_api/tests/userstest.php @@ -81,7 +81,7 @@ class UsersTest extends TestCase { public function testGetUserOnSelf() { $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $params['userid'] = $user; $result = \OCA\provisioning_API\Users::getUser($params); $this->assertInstanceOf('OC_OCS_Result', $result); @@ -92,7 +92,7 @@ class UsersTest extends TestCase { public function testGetUserOnNonExistingUser() { $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $params = array(); $params['userid'] = $this->getUniqueID(); while(\OC_User::userExists($params['userid'])) { @@ -108,7 +108,7 @@ class UsersTest extends TestCase { public function testGetUserOnOtherUser() { $users = $this->generateUsers(2); $params['userid'] = $users[0]; - \OC_User::setUserId($users[1]); + self::loginAsUser($users[1]); $result = \OCA\provisioning_API\Users::getUser($params); $this->assertInstanceOf('OC_OCS_Result', $result); $this->assertFalse($result->succeeded()); @@ -116,8 +116,10 @@ class UsersTest extends TestCase { // Now as as admin $users = $this->generateUsers(2); $params['userid'] = $users[0]; + // login to generate home + self::loginAsUser($users[0]); \OC_Group::addToGroup($users[1], 'admin'); - \OC_User::setUserId($users[1]); + self::loginAsUser($users[1]); $result = \OCA\provisioning_API\Users::getUser($params); $this->assertInstanceOf('OC_OCS_Result', $result); $this->assertTrue($result->succeeded()); @@ -129,7 +131,7 @@ class UsersTest extends TestCase { // Test editing own name $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $result = \OCA\provisioning_API\Users::editUser( array( 'userid' => $user, @@ -150,7 +152,7 @@ class UsersTest extends TestCase { // Test admin editing users name $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $result = \OCA\provisioning_API\Users::editUser( array( @@ -171,7 +173,7 @@ class UsersTest extends TestCase { // Test editing other users name $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $result = \OCA\provisioning_API\Users::editUser( array( @@ -195,7 +197,7 @@ class UsersTest extends TestCase { public function testEditOwnQuota($expected, $quota) { $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $result = \OCA\provisioning_API\Users::editUser( [ 'userid' => $user, @@ -222,7 +224,7 @@ class UsersTest extends TestCase { public function testAdminEditOwnQuota() { $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $result = \OCA\provisioning_API\Users::editUser( array( 'userid' => $user, @@ -239,7 +241,7 @@ class UsersTest extends TestCase { public function testAdminEditOtherUserQuota() { $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $result = \OCA\provisioning_API\Users::editUser( array( @@ -256,7 +258,7 @@ class UsersTest extends TestCase { public function testUserEditOtherUserQuota() { $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $result = \OCA\provisioning_API\Users::editUser( array( @@ -274,7 +276,7 @@ class UsersTest extends TestCase { public function testUserEditOwnEmail() { $user = $this->generateUsers(); $email = 'test@example.com'; - \OC_User::setUserId($user); + self::loginAsUser($user); $result = \OCA\provisioning_API\Users::editUser( array( 'userid' => $user, @@ -292,7 +294,7 @@ class UsersTest extends TestCase { public function testUserEditOtherUserEmailAsUser() { $users = $this->generateUsers(2); $email = 'test@example.com'; - \OC_User::setUserId($users[0]); + self::loginAsUser($users[0]); $result = \OCA\provisioning_API\Users::editUser( array( 'userid' => $users[1], @@ -309,7 +311,7 @@ class UsersTest extends TestCase { public function testUserEditOtherUserEmailAsAdmin() { $users = $this->generateUsers(2); $email = 'test@example.com'; - \OC_User::setUserId($users[0]); + self::loginAsUser($users[0]); \OC_Group::addToGroup($users[0], 'admin'); $result = \OCA\provisioning_API\Users::editUser( array( @@ -327,7 +329,7 @@ class UsersTest extends TestCase { public function testDeleteSelf() { $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $result = \OCA\provisioning_API\Users::deleteUser(array( 'userid' => $user, )); @@ -337,7 +339,7 @@ class UsersTest extends TestCase { public function testDeleteOtherAsUser() { $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $result = \OCA\provisioning_API\Users::deleteUser(array( 'userid' => $user2, @@ -348,7 +350,7 @@ class UsersTest extends TestCase { public function testDeleteOtherAsSubAdmin() { $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $group = $this->getUniqueID(); \OC_Group::createGroup($group); @@ -365,7 +367,7 @@ class UsersTest extends TestCase { public function testDeleteOtherAsIrelevantSubAdmin() { $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $group = $this->getUniqueID(); $group2 = $this->getUniqueID(); @@ -386,7 +388,7 @@ class UsersTest extends TestCase { public function testDeleteOtherAsAdmin() { $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $user2 = $this->generateUsers(); $result = \OCA\provisioning_API\Users::deleteUser(array( 'userid' => $user2, @@ -398,7 +400,7 @@ class UsersTest extends TestCase { public function testDeleteSelfAsAdmin() { $user = $this->generateUsers(); \OC_Group::addToGroup($user, 'admin'); - \OC_User::setUserId($user); + self::loginAsUser($user); $result = \OCA\provisioning_API\Users::deleteUser(array( 'userid' => $user, )); @@ -408,7 +410,7 @@ class UsersTest extends TestCase { public function testGetUsersGroupsOnSelf() { $user = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $group = $this->getUniqueID(); \OC_Group::createGroup($group); \OC_Group::addToGroup($user, $group); @@ -426,7 +428,7 @@ class UsersTest extends TestCase { public function testGetUsersGroupOnOther() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group = $this->getUniqueID(); \OC_Group::createGroup($group); \OC_Group::addToGroup($user2, $group); @@ -442,7 +444,7 @@ class UsersTest extends TestCase { $user1 = $this->generateUsers(); \OC_Group::addToGroup($user1, 'admin'); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group = $this->getUniqueID(); \OC_Group::createGroup($group); \OC_Group::addToGroup($user2, $group); @@ -460,7 +462,7 @@ class UsersTest extends TestCase { public function testGetUsersGroupsOnOtherAsSubAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group1 = $this->getUniqueID(); $group2 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -484,7 +486,7 @@ class UsersTest extends TestCase { public function testGetUsersGroupsOnOtherAsIrelevantSubAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group1 = $this->getUniqueID(); $group2 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -505,7 +507,7 @@ class UsersTest extends TestCase { $user = $this->generateUsers(); $group = $this->getUniqueID(); \OC_Group::createGroup($group); - \OC_User::setUserId($user); + self::loginAsUser($user); $_POST['groupid'] = $group; $result = \OCA\provisioning_API\Users::addToGroup(array( 'userid' => $user, @@ -522,7 +524,7 @@ class UsersTest extends TestCase { $group = $this->getUniqueID(); \OC_Group::createGroup($group); $user2 = $this->generateUsers(); - \OC_User::setUserId($user); + self::loginAsUser($user); $_POST['groupid'] = $group; $result = \OCA\provisioning_API\Users::addToGroup(array( 'userid' => $user2, @@ -536,7 +538,7 @@ class UsersTest extends TestCase { public function testAddToGroupAsSubAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); \OC_SubAdmin::createSubAdmin($user1, $group1); @@ -553,7 +555,7 @@ class UsersTest extends TestCase { public function testAddToGroupAsIrelevantSubAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group1 = $this->getUniqueID(); $group2 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -573,7 +575,7 @@ class UsersTest extends TestCase { // test delete /cloud/users/{userid}/groups public function testRemoveFromGroupAsSelf() { $user1 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); \OC_Group::addToGroup($user1, $group1); @@ -592,7 +594,7 @@ class UsersTest extends TestCase { public function testRemoveFromGroupAsAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); \OC_Group::addToGroup($user2, $group1); @@ -611,7 +613,7 @@ class UsersTest extends TestCase { public function testRemoveFromGroupAsSubAdmin() { $user1 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $user2 = $this->generateUsers(); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -632,7 +634,7 @@ class UsersTest extends TestCase { public function testRemoveFromGroupAsIrelevantSubAdmin() { $user1 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); $user2 = $this->generateUsers(); $group1 = $this->getUniqueID(); $group2 = $this->getUniqueID(); @@ -657,7 +659,7 @@ class UsersTest extends TestCase { public function testCreateSubAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -674,7 +676,7 @@ class UsersTest extends TestCase { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $_POST['groupid'] = 'admin'; $result = \OCA\provisioning_api\Users::addSubAdmin(array( @@ -687,7 +689,7 @@ class UsersTest extends TestCase { $this->resetParams(); $user1 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -704,7 +706,7 @@ class UsersTest extends TestCase { public function testRemoveSubAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -721,7 +723,7 @@ class UsersTest extends TestCase { \OC_Group::deleteGroup($group1); $user1 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $result = \OCA\provisioning_api\Users::removeSubAdmin(array( 'userid' => $this->getUniqueID(), @@ -737,7 +739,7 @@ class UsersTest extends TestCase { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -757,7 +759,7 @@ class UsersTest extends TestCase { public function testGetSubAdminGroups() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); @@ -772,7 +774,7 @@ class UsersTest extends TestCase { \OC_Group::deleteGroup($group1); $user1 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); $result = \OCA\provisioning_api\Users::getUserSubAdminGroups(array( @@ -786,7 +788,7 @@ class UsersTest extends TestCase { public function testSubAdminOfGroupAlreadySubAdmin() { $user1 = $this->generateUsers(); $user2 = $this->generateUsers(); - \OC_User::setUserId($user1); + self::loginAsUser($user1); \OC_Group::addToGroup($user1, 'admin'); $group1 = $this->getUniqueID(); \OC_Group::createGroup($group1); 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/command/setconfig.php b/apps/user_ldap/command/setconfig.php index 31fb4ac9127..53de5317207 100644 --- a/apps/user_ldap/command/setconfig.php +++ b/apps/user_ldap/command/setconfig.php @@ -26,7 +26,6 @@ namespace OCA\user_ldap\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use \OCA\user_ldap\lib\Helper; use \OCA\user_ldap\lib\Configuration; diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php index 8f56e01bf3d..4c5c01743aa 100644 --- a/apps/user_ldap/group_ldap.php +++ b/apps/user_ldap/group_ldap.php @@ -292,12 +292,13 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface { public function getUsersInPrimaryGroup($groupDN, $search = '', $limit = -1, $offset = 0) { try { $filter = $this->prepareFilterForUsersInPrimaryGroup($groupDN, $search); - return $this->access->fetchListOfUsers( + $users = $this->access->fetchListOfUsers( $filter, array($this->access->connection->ldapUserDisplayName, 'dn'), $limit, $offset ); + return $this->access->ownCloudUserNames($users); } catch (\Exception $e) { return array(); } @@ -476,8 +477,9 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface { return array(); } + $primaryUsers = $this->getUsersInPrimaryGroup($groupDN, $search, $limit, $offset); $members = array_keys($this->_groupMembers($groupDN)); - if(!$members) { + if(!$members && empty($primaryUsers)) { //in case users could not be retrieved, return empty result set $this->access->connection->writeToCache($cacheKey, array()); return array(); @@ -514,13 +516,11 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface { } } + $groupUsers = array_unique(array_merge($groupUsers, $primaryUsers)); natsort($groupUsers); $this->access->connection->writeToCache('usersInGroup-'.$gid.'-'.$search, $groupUsers); $groupUsers = array_slice($groupUsers, $offset, $limit); - //and get users that have the group as primary - $primaryUsers = $this->getUsersInPrimaryGroup($groupDN, $search, $limit, $offset); - $groupUsers = array_unique(array_merge($groupUsers, $primaryUsers)); $this->access->connection->writeToCache($cacheKey, $groupUsers); @@ -551,16 +551,15 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface { } $members = array_keys($this->_groupMembers($groupDN)); - if(!$members) { + $primaryUserCount = $this->countUsersInPrimaryGroup($groupDN, ''); + if(!$members && $primaryUserCount === 0) { //in case users could not be retrieved, return empty result set $this->access->connection->writeToCache($cacheKey, false); return false; } if(empty($search)) { - $primaryUsers = $this->countUsersInPrimaryGroup($groupDN, ''); - $groupUsers = count($members) + $primaryUsers; - + $groupUsers = count($members) + $primaryUserCount; $this->access->connection->writeToCache($cacheKey, $groupUsers); return $groupUsers; } diff --git a/apps/user_ldap/js/wizard/view.js b/apps/user_ldap/js/wizard/view.js index 7743c277d61..7dedfab75f0 100644 --- a/apps/user_ldap/js/wizard/view.js +++ b/apps/user_ldap/js/wizard/view.js @@ -168,6 +168,26 @@ OCA = OCA || {}; }, /** + * Base DN test results will arrive here + * + * @param {WizardTabElementary} view + * @param {FeaturePayload} payload + */ + onDetectionTestCompleted: function(view, payload) { + if(payload.feature === 'TestBaseDN') { + if(payload.data.status === 'success') { + var objectsFound = parseInt(payload.data.changes.ldap_test_base, 10); + if(objectsFound > 0) { + view._updateStatusIndicator(view.STATUS_SUCCESS); + return; + } + } + view._updateStatusIndicator(view.STATUS_ERROR); + OC.Notification.showTemporary(t('user_ldap', 'The Base DN appears to be wrong')); + } + }, + + /** * updates the status indicator based on the configuration test result * * @param {WizardView} [view] @@ -176,7 +196,7 @@ OCA = OCA || {}; */ onTestCompleted: function(view, result) { if(result.isSuccess) { - view._updateStatusIndicator(view.STATUS_SUCCESS); + view.configModel.requestWizard('ldap_test_base'); } else { view._updateStatusIndicator(view.STATUS_ERROR); } @@ -272,6 +292,7 @@ OCA = OCA || {}; this.configModel.on('setRequested', this.onSetRequested, this); this.configModel.on('setCompleted', this.onSetRequestDone, this); this.configModel.on('configurationTested', this.onTestCompleted, this); + this.configModel.on('receivedLdapFeature', this.onDetectionTestCompleted, this); }, /** diff --git a/apps/user_ldap/js/wizard/wizardTabElementary.js b/apps/user_ldap/js/wizard/wizardTabElementary.js index b8ab367dfd1..7c1a550c097 100644 --- a/apps/user_ldap/js/wizard/wizardTabElementary.js +++ b/apps/user_ldap/js/wizard/wizardTabElementary.js @@ -17,6 +17,8 @@ OCA = OCA || {}; /** @property {number} */ _configChooserNextServerNumber: 1, + baseDNTestTriggered: false, + /** * initializes the instance. Always call it after initialization. * @@ -165,6 +167,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') { @@ -192,8 +200,8 @@ OCA = OCA || {}; * @param {Object} configuration */ onConfigSwitch: function(view, configuration) { + this.baseDNTestTriggered = false; view.disableElement(view.managedItems.ldap_port.$relatedElements); - view.onConfigLoaded(view, configuration); }, @@ -255,7 +263,8 @@ OCA = OCA || {}; * @param {FeaturePayload} payload */ onTestResultReceived: function(view, payload) { - if(payload.feature === 'TestBaseDN') { + if(view.baseDNTestTriggered && payload.feature === 'TestBaseDN') { + view.enableElement(view.managedItems.ldap_base.$testButton); var message; if(payload.data.status === 'success') { var objectsFound = parseInt(payload.data.changes.ldap_test_base, 10); @@ -267,7 +276,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); } @@ -303,7 +313,9 @@ OCA = OCA || {}; */ onBaseDNTestButtonClick: function(event) { event.preventDefault(); + this.baseDNTestTriggered = true; this.configModel.requestWizard('ldap_test_base'); + this.disableElement(this.managedItems.ldap_base.$testButton); }, /** 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/cs_CZ.js b/apps/user_ldap/l10n/cs_CZ.js index a5eb704c3e6..26243f689c4 100644 --- a/apps/user_ldap/l10n/cs_CZ.js +++ b/apps/user_ldap/l10n/cs_CZ.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Selhalo zrušení mapování.", "Failed to delete the server configuration" : "Selhalo smazání nastavení serveru", + "The configuration is invalid: anonymous bind is not allowed." : "Tato konfigurace není platná: anonymní bind není povolen.", "The configuration is valid and the connection could be established!" : "Nastavení je v pořádku a spojení bylo navázáno.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Konfigurace je v pořádku, ale spojení selhalo. Zkontrolujte, prosím, nastavení serveru a přihlašovací údaje.", "The configuration is invalid. Please have a look at the logs for further details." : "Konfigurace je neplatná. Pro bližší informace se podívejte do logu.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Neurčena žádná data", " Could not set configuration %s" : "Nelze nastavit konfiguraci %s", "Action does not exist" : "Tato akce neexistuje", + "The Base DN appears to be wrong" : "Base DN nevypadá být v pořádku", "Configuration incorrect" : "Nesprávná konfigurace", "Configuration incomplete" : "Nekompletní konfigurace", "Configuration OK" : "Konfigurace v pořádku", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Potvrdit smazání", "Mappings cleared successfully!" : "Mapování úspěšně vyčištěno!", "Error while clearing the mappings." : "Chyba při čištění mapování.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymní bind není povolen. Zadejte prosím User DN a Heslo.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Chyba LDAP operace. Anonymní bind nejspíše není povolen.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Ukládání selhalo. Ujistěte se, že databáze funguje. Načtěte znovu, než budete pokračovat.", "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?" : "Přepnutí módu povolí automatické LDAP dotazy. V závislosti na velikosti vašeho LDAP může vyhledávání chvíli trvat. Opravdu si přejete přepnout mód?", "Mode switch" : "Přepnutí módu", diff --git a/apps/user_ldap/l10n/cs_CZ.json b/apps/user_ldap/l10n/cs_CZ.json index dbe157bb1ba..bc7feb157d9 100644 --- a/apps/user_ldap/l10n/cs_CZ.json +++ b/apps/user_ldap/l10n/cs_CZ.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Selhalo zrušení mapování.", "Failed to delete the server configuration" : "Selhalo smazání nastavení serveru", + "The configuration is invalid: anonymous bind is not allowed." : "Tato konfigurace není platná: anonymní bind není povolen.", "The configuration is valid and the connection could be established!" : "Nastavení je v pořádku a spojení bylo navázáno.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Konfigurace je v pořádku, ale spojení selhalo. Zkontrolujte, prosím, nastavení serveru a přihlašovací údaje.", "The configuration is invalid. Please have a look at the logs for further details." : "Konfigurace je neplatná. Pro bližší informace se podívejte do logu.", @@ -9,6 +10,7 @@ "No data specified" : "Neurčena žádná data", " Could not set configuration %s" : "Nelze nastavit konfiguraci %s", "Action does not exist" : "Tato akce neexistuje", + "The Base DN appears to be wrong" : "Base DN nevypadá být v pořádku", "Configuration incorrect" : "Nesprávná konfigurace", "Configuration incomplete" : "Nekompletní konfigurace", "Configuration OK" : "Konfigurace v pořádku", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Potvrdit smazání", "Mappings cleared successfully!" : "Mapování úspěšně vyčištěno!", "Error while clearing the mappings." : "Chyba při čištění mapování.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymní bind není povolen. Zadejte prosím User DN a Heslo.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Chyba LDAP operace. Anonymní bind nejspíše není povolen.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Ukládání selhalo. Ujistěte se, že databáze funguje. Načtěte znovu, než budete pokračovat.", "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?" : "Přepnutí módu povolí automatické LDAP dotazy. V závislosti na velikosti vašeho LDAP může vyhledávání chvíli trvat. Opravdu si přejete přepnout mód?", "Mode switch" : "Přepnutí módu", diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index c06922818ca..a415f9e9eb2 100644 --- a/apps/user_ldap/l10n/de.js +++ b/apps/user_ldap/l10n/de.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Löschen der Zuordnungen fehlgeschlagen.", "Failed to delete the server configuration" : "Löschen der Serverkonfiguration fehlgeschlagen", + "The configuration is invalid: anonymous bind is not allowed." : "Die Konfiguration ist ungültig: anonymes binden ist nicht erlaubt.", "The configuration is valid and the connection could be established!" : "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Die Konfiguration ist gültig, aber der LDAP-Bind ist fehlgeschlagen. Bitte überprüfe die Servereinstellungen und Anmeldeinformationen.", "The configuration is invalid. Please have a look at the logs for further details." : "Die Konfiguration ist ungültig. Weitere Details kannst Du in den Logdateien nachlesen.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Keine Daten angegeben", " Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden", "Action does not exist" : "Aktion existiert nicht", + "The Base DN appears to be wrong" : "Die Base-DN scheint falsch zu sein", "Configuration incorrect" : "Konfiguration nicht korrekt", "Configuration incomplete" : "Konfiguration nicht vollständig", "Configuration OK" : "Konfiguration OK", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Löschen bestätigen", "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymes binden ist nicht erlaubt. Bitte eine Nutzer-DN und ein Passwort angeben.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stelle sicher, dass die Datenbank in Betrieb ist. Bitte lade vor dem Fortfahren neu.", "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?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Deiner LDAP-Größe können diese einige Zeit in Anspruch nehmen. Willst Du immer noch den Modus wechseln?", "Mode switch" : "Modus umschalten", diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json index 7c6cb120559..cda8c70b9cf 100644 --- a/apps/user_ldap/l10n/de.json +++ b/apps/user_ldap/l10n/de.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Löschen der Zuordnungen fehlgeschlagen.", "Failed to delete the server configuration" : "Löschen der Serverkonfiguration fehlgeschlagen", + "The configuration is invalid: anonymous bind is not allowed." : "Die Konfiguration ist ungültig: anonymes binden ist nicht erlaubt.", "The configuration is valid and the connection could be established!" : "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Die Konfiguration ist gültig, aber der LDAP-Bind ist fehlgeschlagen. Bitte überprüfe die Servereinstellungen und Anmeldeinformationen.", "The configuration is invalid. Please have a look at the logs for further details." : "Die Konfiguration ist ungültig. Weitere Details kannst Du in den Logdateien nachlesen.", @@ -9,6 +10,7 @@ "No data specified" : "Keine Daten angegeben", " Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden", "Action does not exist" : "Aktion existiert nicht", + "The Base DN appears to be wrong" : "Die Base-DN scheint falsch zu sein", "Configuration incorrect" : "Konfiguration nicht korrekt", "Configuration incomplete" : "Konfiguration nicht vollständig", "Configuration OK" : "Konfiguration OK", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Löschen bestätigen", "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymes binden ist nicht erlaubt. Bitte eine Nutzer-DN und ein Passwort angeben.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymes binden ist scheinbar nicht erlaubt.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stelle sicher, dass die Datenbank in Betrieb ist. Bitte lade vor dem Fortfahren neu.", "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?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Deiner LDAP-Größe können diese einige Zeit in Anspruch nehmen. Willst Du immer noch den Modus wechseln?", "Mode switch" : "Modus umschalten", diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index 7f36fe64be0..78ff7c4ebc8 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Löschen der Zuordnungen fehlgeschlagen.", "Failed to delete the server configuration" : "Löschen der Serverkonfiguration fehlgeschlagen", + "The configuration is invalid: anonymous bind is not allowed." : "Die Konfiguration ist ungültig: Anonymous Bind ist nicht erlaubt.", "The configuration is valid and the connection could be established!" : "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Die Konfiguration ist gültig, aber der LDAP-Bind ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen.", "The configuration is invalid. Please have a look at the logs for further details." : "Die Konfiguration ist ungültig. Weitere Details können Sie in den Logdateien nachlesen.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Keine Daten angegeben", " Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden", "Action does not exist" : "Aktion existiert nicht", + "The Base DN appears to be wrong" : "Die Base-DN scheint falsch zu sein", "Configuration incorrect" : "Konfiguration nicht korrekt", "Configuration incomplete" : "Konfiguration nicht vollständig", "Configuration OK" : "Konfiguration OK", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Löschen bestätigen", "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine User-DN und ein Passwort angeben.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stellen Sie sicher, dass die Datenbank in Betrieb ist. Bitte laden Sie vor dem Fortfahren neu.", "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?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Ihrer LDAP-Größe können diese einige Zeit in Anspruch nehmen. Wollen Sie immer noch den Modus wechseln?", "Mode switch" : "Modus umschalten", diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 27190826a20..5a4cd5555ea 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Löschen der Zuordnungen fehlgeschlagen.", "Failed to delete the server configuration" : "Löschen der Serverkonfiguration fehlgeschlagen", + "The configuration is invalid: anonymous bind is not allowed." : "Die Konfiguration ist ungültig: Anonymous Bind ist nicht erlaubt.", "The configuration is valid and the connection could be established!" : "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Die Konfiguration ist gültig, aber der LDAP-Bind ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen.", "The configuration is invalid. Please have a look at the logs for further details." : "Die Konfiguration ist ungültig. Weitere Details können Sie in den Logdateien nachlesen.", @@ -9,6 +10,7 @@ "No data specified" : "Keine Daten angegeben", " Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden", "Action does not exist" : "Aktion existiert nicht", + "The Base DN appears to be wrong" : "Die Base-DN scheint falsch zu sein", "Configuration incorrect" : "Konfiguration nicht korrekt", "Configuration incomplete" : "Konfiguration nicht vollständig", "Configuration OK" : "Konfiguration OK", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Löschen bestätigen", "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!", "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous Bind ist nicht erlaubt. Bitte geben Sie eine User-DN und ein Passwort angeben.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Fehler in den LDAP-Operationen. Anonymous Bind ist anscheinend nicht erlaubt.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stellen Sie sicher, dass die Datenbank in Betrieb ist. Bitte laden Sie vor dem Fortfahren neu.", "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?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Ihrer LDAP-Größe können diese einige Zeit in Anspruch nehmen. Wollen Sie immer noch den Modus wechseln?", "Mode switch" : "Modus umschalten", diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js index 939edd4d045..371d1a4e783 100644 --- a/apps/user_ldap/l10n/el.js +++ b/apps/user_ldap/l10n/el.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Αποτυχία εκκαθάρισης των αντιστοιχιών.", "Failed to delete the server configuration" : "Αποτυχία διαγραφής ρυθμίσεων διακομιστή", + "The configuration is invalid: anonymous bind is not allowed." : "Η διαμόρφωση δεν είναι έγκυρη: δεν επιτρέπεται ανώνυμη δέσμευση.", "The configuration is valid and the connection could be established!" : "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια.", "The configuration is invalid. Please have a look at the logs for further details." : "Η διαμόρφωση είναι άκυρη. Παρακαλώ ελέγξτε τα αρχεία σφαλμάτων για περαιτέρω λεπτομέρειες.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Δεν προσδιορίστηκαν δεδομένα", " Could not set configuration %s" : "Αδυναμία ρύθμισης %s", "Action does not exist" : "Η ενέργεια δεν υπάρχει", + "The Base DN appears to be wrong" : "Το Base DN φαίνεται να είναι εσφαλμένο", "Configuration incorrect" : "Η διαμόρφωση είναι λανθασμένη", "Configuration incomplete" : "Η διαμόρφωση είναι ελλιπής", "Configuration OK" : "Η διαμόρφωση είναι εντάξει", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Επιβεβαίωση Διαγραφής", "Mappings cleared successfully!" : "Η εκκαθάριση αντιστοιχιών ήταν επιτυχής!", "Error while clearing the mappings." : "Σφάλμα κατά την εκκαθάριση των αντιστοιχιών.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Η ανώνυμη δέσμευση δεν επιτρέπεται. Παρακαλούμε δώστε ένα DN χρήστη και Κωδικό Πρόσβασης.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Σφάλμα ενεργειών LDAP. Η ανώνυμη δέσμευση μπορεί να μην επιτρέπεται.", "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" : "Αλλαγή κατάστασης", diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json index 1e0add9ee44..7a863409b7d 100644 --- a/apps/user_ldap/l10n/el.json +++ b/apps/user_ldap/l10n/el.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Αποτυχία εκκαθάρισης των αντιστοιχιών.", "Failed to delete the server configuration" : "Αποτυχία διαγραφής ρυθμίσεων διακομιστή", + "The configuration is invalid: anonymous bind is not allowed." : "Η διαμόρφωση δεν είναι έγκυρη: δεν επιτρέπεται ανώνυμη δέσμευση.", "The configuration is valid and the connection could be established!" : "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια.", "The configuration is invalid. Please have a look at the logs for further details." : "Η διαμόρφωση είναι άκυρη. Παρακαλώ ελέγξτε τα αρχεία σφαλμάτων για περαιτέρω λεπτομέρειες.", @@ -9,6 +10,7 @@ "No data specified" : "Δεν προσδιορίστηκαν δεδομένα", " Could not set configuration %s" : "Αδυναμία ρύθμισης %s", "Action does not exist" : "Η ενέργεια δεν υπάρχει", + "The Base DN appears to be wrong" : "Το Base DN φαίνεται να είναι εσφαλμένο", "Configuration incorrect" : "Η διαμόρφωση είναι λανθασμένη", "Configuration incomplete" : "Η διαμόρφωση είναι ελλιπής", "Configuration OK" : "Η διαμόρφωση είναι εντάξει", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Επιβεβαίωση Διαγραφής", "Mappings cleared successfully!" : "Η εκκαθάριση αντιστοιχιών ήταν επιτυχής!", "Error while clearing the mappings." : "Σφάλμα κατά την εκκαθάριση των αντιστοιχιών.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Η ανώνυμη δέσμευση δεν επιτρέπεται. Παρακαλούμε δώστε ένα DN χρήστη και Κωδικό Πρόσβασης.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Σφάλμα ενεργειών LDAP. Η ανώνυμη δέσμευση μπορεί να μην επιτρέπεται.", "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" : "Αλλαγή κατάστασης", diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js index 86c93e972d7..6c4be9ec3f0 100644 --- a/apps/user_ldap/l10n/en_GB.js +++ b/apps/user_ldap/l10n/en_GB.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Failed to clear the mappings.", "Failed to delete the server configuration" : "Failed to delete the server configuration", + "The configuration is invalid: anonymous bind is not allowed." : "The configuration is invalid: anonymous bind is not allowed.", "The configuration is valid and the connection could be established!" : "The configuration is valid and the connection could be established!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "The configuration is valid, but the Bind failed. Please check the server settings and credentials.", "The configuration is invalid. Please have a look at the logs for further details." : "The configuration is invalid. Please have a look at the logs for further details.", @@ -22,12 +23,15 @@ OC.L10N.register( "Could not detect Base DN, please enter it manually." : "Could not detect Base DN, please enter it manually.", "{nthServer}. Server" : "{nthServer}. Server", "No object found in the given Base DN. Please revise." : "No object found in the given Base DN. Please revise.", + "More than 1.000 directory entries available." : "More than 1,000 directory entries available.", " entries available within the provided Base DN" : " entries available within the provided Base DN", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "An error occurred. Please check the Base DN, as well as connection settings and credentials.", "Do you really want to delete the current Server Configuration?" : "Do you really want to delete the current Server Configuration?", "Confirm Deletion" : "Confirm Deletion", "Mappings cleared successfully!" : "Mappings cleared successfully!", "Error while clearing the mappings." : "Error whilst clearing the mappings.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous bind is not allowed. Please provide a User DN and Password.", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP Operations error. Anonymous bind might not be allowed.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "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?" : "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?", "Mode switch" : "Mode switch", diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json index 39366fd146b..4b8bf5fc163 100644 --- a/apps/user_ldap/l10n/en_GB.json +++ b/apps/user_ldap/l10n/en_GB.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Failed to clear the mappings.", "Failed to delete the server configuration" : "Failed to delete the server configuration", + "The configuration is invalid: anonymous bind is not allowed." : "The configuration is invalid: anonymous bind is not allowed.", "The configuration is valid and the connection could be established!" : "The configuration is valid and the connection could be established!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "The configuration is valid, but the Bind failed. Please check the server settings and credentials.", "The configuration is invalid. Please have a look at the logs for further details." : "The configuration is invalid. Please have a look at the logs for further details.", @@ -20,12 +21,15 @@ "Could not detect Base DN, please enter it manually." : "Could not detect Base DN, please enter it manually.", "{nthServer}. Server" : "{nthServer}. Server", "No object found in the given Base DN. Please revise." : "No object found in the given Base DN. Please revise.", + "More than 1.000 directory entries available." : "More than 1,000 directory entries available.", " entries available within the provided Base DN" : " entries available within the provided Base DN", "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "An error occurred. Please check the Base DN, as well as connection settings and credentials.", "Do you really want to delete the current Server Configuration?" : "Do you really want to delete the current Server Configuration?", "Confirm Deletion" : "Confirm Deletion", "Mappings cleared successfully!" : "Mappings cleared successfully!", "Error while clearing the mappings." : "Error whilst clearing the mappings.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonymous bind is not allowed. Please provide a User DN and Password.", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP Operations error. Anonymous bind might not be allowed.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "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?" : "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?", "Mode switch" : "Mode switch", diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js index fd90625352b..007730546ae 100644 --- a/apps/user_ldap/l10n/es.js +++ b/apps/user_ldap/l10n/es.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Ocurrió un fallo al borrar las asignaciones.", "Failed to delete the server configuration" : "No se pudo borrar la configuración del servidor", + "The configuration is invalid: anonymous bind is not allowed." : "La configuración no es válida: enlaces anónimos no están permitido.", "The configuration is valid and the connection could be established!" : "¡La configuración es válida y la conexión puede establecerse!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuración es válida, pero falló el nexo. Por favor, compruebe la configuración del servidor y las credenciales.", "The configuration is invalid. Please have a look at the logs for further details." : "La configuración no es válida. Por favor, revise el registro para más detalles.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "No se han especificado los datos", " Could not set configuration %s" : "No se pudo establecer la configuración %s", "Action does not exist" : "La acción no existe.", + "The Base DN appears to be wrong" : "La Base DN parece estar mal", "Configuration incorrect" : "Configuración Incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Confirmar eliminación", "Mappings cleared successfully!" : "¡Asignaciones borradas exitosamente!", "Error while clearing the mappings." : "Error mientras se borraban las asignaciones.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Enlace anónimo no está permitido. Por favor suministre un DN de usuario y contraseña ", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de operaciones LDAP. Enlace anónimo puede no estar permitido.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese de que la base de datos está en Operación. Actualizar antes de continuar.", "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?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. ¿Desea cambiar el modo?", "Mode switch" : "Modo interruptor", diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json index 3e939e07de2..2ad26941d48 100644 --- a/apps/user_ldap/l10n/es.json +++ b/apps/user_ldap/l10n/es.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Ocurrió un fallo al borrar las asignaciones.", "Failed to delete the server configuration" : "No se pudo borrar la configuración del servidor", + "The configuration is invalid: anonymous bind is not allowed." : "La configuración no es válida: enlaces anónimos no están permitido.", "The configuration is valid and the connection could be established!" : "¡La configuración es válida y la conexión puede establecerse!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuración es válida, pero falló el nexo. Por favor, compruebe la configuración del servidor y las credenciales.", "The configuration is invalid. Please have a look at the logs for further details." : "La configuración no es válida. Por favor, revise el registro para más detalles.", @@ -9,6 +10,7 @@ "No data specified" : "No se han especificado los datos", " Could not set configuration %s" : "No se pudo establecer la configuración %s", "Action does not exist" : "La acción no existe.", + "The Base DN appears to be wrong" : "La Base DN parece estar mal", "Configuration incorrect" : "Configuración Incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Confirmar eliminación", "Mappings cleared successfully!" : "¡Asignaciones borradas exitosamente!", "Error while clearing the mappings." : "Error mientras se borraban las asignaciones.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Enlace anónimo no está permitido. Por favor suministre un DN de usuario y contraseña ", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de operaciones LDAP. Enlace anónimo puede no estar permitido.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese de que la base de datos está en Operación. Actualizar antes de continuar.", "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?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. ¿Desea cambiar el modo?", "Mode switch" : "Modo interruptor", diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js index eeb890c70c5..d44e8067488 100644 --- a/apps/user_ldap/l10n/fr.js +++ b/apps/user_ldap/l10n/fr.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Erreur lors de la suppression des associations.", "Failed to delete the server configuration" : "Échec de la suppression de la configuration du serveur", + "The configuration is invalid: anonymous bind is not allowed." : "La configuration n'est pas valide : le lien anonyme n'est pas autorisé.", "The configuration is valid and the connection could be established!" : "La configuration est valide et la connexion peut être établie !", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuration est valable, mais le bind a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.", "The configuration is invalid. Please have a look at the logs for further details." : "La configuration n'est pas valable. Veuillez consulter les logs pour plus de détails.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Aucune donnée spécifiée", " Could not set configuration %s" : "Impossible de spécifier la configuration %s", "Action does not exist" : "L'action n'existe pas", + "The Base DN appears to be wrong" : "Le DN de base est erroné", "Configuration incorrect" : "Configuration incorrecte", "Configuration incomplete" : "Configuration incomplète", "Configuration OK" : "Configuration OK", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Confirmer la suppression", "Mappings cleared successfully!" : "Associations supprimées avec succès !", "Error while clearing the mappings." : "Erreur lors de la suppression des associations.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Le lien anonyme n'est pas autorisé. Merci de fournir le DN d'un utilisateur et un mot de passe.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Erreur d'opérations LDAP. Les liens anonymes peuvent ne pas être acceptés.", "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 ?", "Mode switch" : "Changer de mode", diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json index b6c1c9e9985..22580e2cd9b 100644 --- a/apps/user_ldap/l10n/fr.json +++ b/apps/user_ldap/l10n/fr.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Erreur lors de la suppression des associations.", "Failed to delete the server configuration" : "Échec de la suppression de la configuration du serveur", + "The configuration is invalid: anonymous bind is not allowed." : "La configuration n'est pas valide : le lien anonyme n'est pas autorisé.", "The configuration is valid and the connection could be established!" : "La configuration est valide et la connexion peut être établie !", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuration est valable, mais le bind a échoué. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.", "The configuration is invalid. Please have a look at the logs for further details." : "La configuration n'est pas valable. Veuillez consulter les logs pour plus de détails.", @@ -9,6 +10,7 @@ "No data specified" : "Aucune donnée spécifiée", " Could not set configuration %s" : "Impossible de spécifier la configuration %s", "Action does not exist" : "L'action n'existe pas", + "The Base DN appears to be wrong" : "Le DN de base est erroné", "Configuration incorrect" : "Configuration incorrecte", "Configuration incomplete" : "Configuration incomplète", "Configuration OK" : "Configuration OK", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Confirmer la suppression", "Mappings cleared successfully!" : "Associations supprimées avec succès !", "Error while clearing the mappings." : "Erreur lors de la suppression des associations.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Le lien anonyme n'est pas autorisé. Merci de fournir le DN d'un utilisateur et un mot de passe.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Erreur d'opérations LDAP. Les liens anonymes peuvent ne pas être acceptés.", "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 ?", "Mode switch" : "Changer de mode", diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js index 63f7a2cdaf1..201f09ddab6 100644 --- a/apps/user_ldap/l10n/gl.js +++ b/apps/user_ldap/l10n/gl.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Non foi posíbel limpar as asignacións.", "Failed to delete the server configuration" : "Non foi posíbel eliminar a configuración do servidor", + "The configuration is invalid: anonymous bind is not allowed." : "A configuración é incorrecta: o vínculo anónimo non está permitido.", "The configuration is valid and the connection could be established!" : "A configuración é correcta e pode estabelecerse a conexión.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "A configuración é correcta, mais a ligazón non. Comprobe a configuración do servidor e as credenciais.", "The configuration is invalid. Please have a look at the logs for further details." : "A configuración non é correcta. Vexa o rexistro de ownCloud para máis detalles", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Non se especificaron datos", " Could not set configuration %s" : "Non foi posíbel estabelecer a configuración %s", "Action does not exist" : "Non existe esta acción", + "The Base DN appears to be wrong" : "O DN base semella ser erróneo", "Configuration incorrect" : "Configuración incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Confirmar a eliminación", "Mappings cleared successfully!" : "Limpáronse satisfactoriamente as asignacións!", "Error while clearing the mappings." : "Produciuse un erro ao limpar as asignacións.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "O vínculo anónimo non está permitido. Forneza un DN de usuario e un contrasinal.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Produciuse un erro de operacións do LDAP. O vínculo anónimo podería non estar permitido.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Non foi posíbel gardar. Asegúrese de que a base de datos está en funcionamento. Volva a cargar antes de continuar.", "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?" : "O cambio do modo permitirá consultas LDAP automáticas. Dependendo do tamaño de LDAP pode levarlle un chisco. Quere cambiar de modo aínda así?", "Mode switch" : "Cambio de modo", diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json index bcbef5d530e..a7258b69243 100644 --- a/apps/user_ldap/l10n/gl.json +++ b/apps/user_ldap/l10n/gl.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Non foi posíbel limpar as asignacións.", "Failed to delete the server configuration" : "Non foi posíbel eliminar a configuración do servidor", + "The configuration is invalid: anonymous bind is not allowed." : "A configuración é incorrecta: o vínculo anónimo non está permitido.", "The configuration is valid and the connection could be established!" : "A configuración é correcta e pode estabelecerse a conexión.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "A configuración é correcta, mais a ligazón non. Comprobe a configuración do servidor e as credenciais.", "The configuration is invalid. Please have a look at the logs for further details." : "A configuración non é correcta. Vexa o rexistro de ownCloud para máis detalles", @@ -9,6 +10,7 @@ "No data specified" : "Non se especificaron datos", " Could not set configuration %s" : "Non foi posíbel estabelecer a configuración %s", "Action does not exist" : "Non existe esta acción", + "The Base DN appears to be wrong" : "O DN base semella ser erróneo", "Configuration incorrect" : "Configuración incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Confirmar a eliminación", "Mappings cleared successfully!" : "Limpáronse satisfactoriamente as asignacións!", "Error while clearing the mappings." : "Produciuse un erro ao limpar as asignacións.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "O vínculo anónimo non está permitido. Forneza un DN de usuario e un contrasinal.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Produciuse un erro de operacións do LDAP. O vínculo anónimo podería non estar permitido.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Non foi posíbel gardar. Asegúrese de que a base de datos está en funcionamento. Volva a cargar antes de continuar.", "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?" : "O cambio do modo permitirá consultas LDAP automáticas. Dependendo do tamaño de LDAP pode levarlle un chisco. Quere cambiar de modo aínda así?", "Mode switch" : "Cambio de modo", diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js index 342808994e4..92d64b72b74 100644 --- a/apps/user_ldap/l10n/it.js +++ b/apps/user_ldap/l10n/it.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Cancellazione delle associazioni non riuscita.", "Failed to delete the server configuration" : "Eliminazione della configurazione del server non riuscita", + "The configuration is invalid: anonymous bind is not allowed." : "La configurazione non è valida: l'associazione anonima non è consentita.", "The configuration is valid and the connection could be established!" : "La configurazione è valida e la connessione può essere stabilita.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configurazione è valida, ma il Bind non è riuscito. Controlla le impostazioni del server e le credenziali.", "The configuration is invalid. Please have a look at the logs for further details." : "La configurazione non è valida. Controlla i log per ulteriori dettagli.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Nessun dato specificato", " Could not set configuration %s" : "Impossibile impostare la configurazione %s", "Action does not exist" : "L'azione non esiste", + "The Base DN appears to be wrong" : "Il DN base sembra essere errato", "Configuration incorrect" : "Configurazione non corretta", "Configuration incomplete" : "Configurazione incompleta", "Configuration OK" : "Configurazione corretta", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Conferma l'eliminazione", "Mappings cleared successfully!" : "Associazioni cancellate correttamente!", "Error while clearing the mappings." : "Errore durante la cancellazione delle associazioni.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "L'associazione anonima non è consentita. Fornisci un DN utente e la password.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Errore delle operazioni LDAP. L'associazione anonima potrebbe non essere consentita.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Salvataggio non riuscito. Assicurati che il database sia operativo. Ricarica prima di continuare.", "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?" : "Il cambio di modalità abiliterà le query LDAP automatiche. In base alla dimensione di LDAP, potrebbero richiedere del tempo. Vuoi ancora cambiare modalità?", "Mode switch" : "Cambio modalità", diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json index 42ab5158a28..53425d04435 100644 --- a/apps/user_ldap/l10n/it.json +++ b/apps/user_ldap/l10n/it.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Cancellazione delle associazioni non riuscita.", "Failed to delete the server configuration" : "Eliminazione della configurazione del server non riuscita", + "The configuration is invalid: anonymous bind is not allowed." : "La configurazione non è valida: l'associazione anonima non è consentita.", "The configuration is valid and the connection could be established!" : "La configurazione è valida e la connessione può essere stabilita.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configurazione è valida, ma il Bind non è riuscito. Controlla le impostazioni del server e le credenziali.", "The configuration is invalid. Please have a look at the logs for further details." : "La configurazione non è valida. Controlla i log per ulteriori dettagli.", @@ -9,6 +10,7 @@ "No data specified" : "Nessun dato specificato", " Could not set configuration %s" : "Impossibile impostare la configurazione %s", "Action does not exist" : "L'azione non esiste", + "The Base DN appears to be wrong" : "Il DN base sembra essere errato", "Configuration incorrect" : "Configurazione non corretta", "Configuration incomplete" : "Configurazione incompleta", "Configuration OK" : "Configurazione corretta", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Conferma l'eliminazione", "Mappings cleared successfully!" : "Associazioni cancellate correttamente!", "Error while clearing the mappings." : "Errore durante la cancellazione delle associazioni.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "L'associazione anonima non è consentita. Fornisci un DN utente e la password.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Errore delle operazioni LDAP. L'associazione anonima potrebbe non essere consentita.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Salvataggio non riuscito. Assicurati che il database sia operativo. Ricarica prima di continuare.", "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?" : "Il cambio di modalità abiliterà le query LDAP automatiche. In base alla dimensione di LDAP, potrebbero richiedere del tempo. Vuoi ancora cambiare modalità?", "Mode switch" : "Cambio modalità", diff --git a/apps/user_ldap/l10n/nb_NO.js b/apps/user_ldap/l10n/nb_NO.js index 146efa56dfc..86e96ee6981 100644 --- a/apps/user_ldap/l10n/nb_NO.js +++ b/apps/user_ldap/l10n/nb_NO.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Klarte ikke å nullstille tilknytningene.", "Failed to delete the server configuration" : "Klarte ikke å slette tjener-konfigurasjonen.", + "The configuration is invalid: anonymous bind is not allowed." : "Konfigurasjonen er ugyldig: Anonym binding er ikke tillatt.", "The configuration is valid and the connection could be established!" : "Konfigurasjonen er i orden og tilkoblingen skal være etablert!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Konfigurasjonen er i orden, men Bind mislyktes. Vennligst sjekk tjener-konfigurasjonen og påloggingsinformasjonen.", "The configuration is invalid. Please have a look at the logs for further details." : "Konfigurasjonen er ikke gyldig. Sjekk loggene for flere detaljer.", @@ -10,15 +11,41 @@ OC.L10N.register( "No configuration specified" : "Ingen konfigurasjon spesifisert", "No data specified" : "Ingen data spesifisert", " Could not set configuration %s" : "Klarte ikke å sette konfigurasjon %s", + "Action does not exist" : "Aksjonen eksisterer ikke", + "The Base DN appears to be wrong" : "Basis-DN ser ut til å være feil", "Configuration incorrect" : "Konfigurasjon feil", "Configuration incomplete" : "Konfigurasjon ufullstendig", "Configuration OK" : "Konfigurasjon OK", "Select groups" : "Velg grupper", "Select object classes" : "Velg objektklasser", + "Please check the credentials, they seem to be wrong." : "Sjekk påloggingsdetaljene; de ser ut til å være feil.", + "Please specify the port, it could not be auto-detected." : "Vennligst spesifiser porten. Den kunne ikke påvises automatisk.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Basis-DN kunne ikke påvises automatisk. Se igjennom pålogginsdetaljer, vertsnavn og portnummer.", + "Could not detect Base DN, please enter it manually." : "Klarte ikke å påvise basis-DN. Det må skrives inn manuelt.", "{nthServer}. Server" : "{nthServer}. server", + "No object found in the given Base DN. Please revise." : "Intet objekt funnet i angitt basis-DN. Revider oppsettet.", + "More than 1.000 directory entries available." : "Mer enn 1000 katalogoppføringer tilgjengelig.", + " entries available within the provided Base DN" : "oppføringer tilgjengelig innenfor angitt basis-DN", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Det oppstod en feil. Sjekk basis-DN, tilkoblingsoppsett og påloggingsdetaljer.", "Do you really want to delete the current Server Configuration?" : "Er du sikker på at du vil slette aktiv tjener-konfigurasjon?", "Confirm Deletion" : "Bekreft sletting", + "Mappings cleared successfully!" : "Tilknytningene ble nullstilt!", + "Error while clearing the mappings." : "Feil ved nullstilling av tilknytningene.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym binding er ikke tillatt. Oppgi en bruker-DN og passord.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Feil ved LDAP-operasjon. Anonym binding er kanskje ikke tillatt.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lagring fellet. Forsikre deg om at database er i gang. Last på nytt før du fortsetter.", + "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?" : "Endring av modus vil aktivere automatiske LDAP-spørringer. Avhengig av din LDAP-størrelse kan de ta litt tid. Vil du likevel endre modus?", + "Mode switch" : "Endring av modus", "Select attributes" : "Velg attributter", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Bruker ikke funnet. Sjekk påloggingsattributtene og brukernavnet. Virksomt filter (kopier og lim inn for validering på kommandolinjen): <br/>", + "User found and settings verified." : "Bruker funnet og innstillingene sjekket.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Innstillinger sjekket, men en bruker funnet. Kun den første vil kunne logge inn. Vurder et smalere filter.", + "An unspecified error occurred. Please check the settings and the log." : "En uspesifisert feil oppstod. Sjekk innstillingene og loggen.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søkefilteret er ugyldig, antakelig pga. syntaksproblemer som ulikt antall start- og sluttparenteser. Vennligst sjekk.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Det oppstod en feil ved tilkobling til LDAP / AD. Sjekk vertsnavn, portnummer og påloggingsdetaljer.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Plassholder %uid mangler. Den erstattes av påloggingsnavnet ved spørring mot LDAP / AD.", + "Please provide a login name to test against" : "Vennligst oppgi et påloggingsnavn å teste mot", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Gruppeboksen ble deaktivert fordi LDAP- / AD-serveren ikke støtter memberOf.", "_%s group found_::_%s groups found_" : ["%s gruppe funnet","%s grupper funnet"], "_%s user found_::_%s users found_" : ["%s bruker funnet","%s brukere funnet"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Kunne ikke påvise attributt for brukers visningsnavn. Du må selv spesifisere det i avanserte LDAP-innstillinger.", @@ -26,28 +53,49 @@ OC.L10N.register( "Invalid Host" : "Ugyldig tjener", "Server" : "Server", "Users" : "Brukere", + "Login Attributes" : "Påloggingsattributter", "Groups" : "Grupper", "Test Configuration" : "Test konfigurasjonen", "Help" : "Hjelp", "Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:", + "Only these object classes:" : "Kun disse objektklassene:", + "Only from these groups:" : "Kun fra disse gruppene:", + "Search groups" : "Søk i grupper", + "Available groups" : "Tilgjengelige grupper", + "Selected groups" : "Valgte grupper", + "Edit LDAP Query" : "Rediger LDAP-spørring", + "LDAP Filter:" : "LDAP-filter:", "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.", + "Verify settings and count groups" : "Sjekk innstillinger og tell grupper", + "When logging in, %s will find the user based on the following attributes:" : "Ved pålogging vil %s finne brukeren basert på følgende attributter:", + "LDAP / AD Username:" : "LDAP / AD brukernavn:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillater pålogging med LDAP / AD brukernavn, som er enten uid eller samaccountname og vil bli oppdaget.", + "LDAP / AD Email Address:" : "LDAP / AD Epost-adresse:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Log alltid på med en epost-attributt. Mail og mailPrimaryAddress vil være tillatt.", "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\"", + "Test Loginname" : "Test påloggingsnavn", + "Verify settings" : "Sjekk innstillinger", "1. Server" : "1. server", "%s. Server:" : "%s. server:", "Host" : "Tjener", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kan utelate protokollen, men du er påkrevd å bruke SSL. Deretter starte med ldaps://", "Port" : "Port", + "Detect Port" : "Påvis port", "User DN" : "Bruker 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 nummeret til klienten som skal bindes til, f.eks. uid=agent,dc=example,dc=com. For anonym tilgang, la DN- og passord-feltet stå tomt.", + "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 for klientbrukeren som binding skal gjøres med, f.eks. uid=agent,dc=example,dc=com. For anonym tilgang, la DN- og passord-feltet stå tomt.", "Password" : "Passord", "For anonymous access, leave DN and Password empty." : "For anonym tilgang, la DN- og passord-feltet stå tomt.", - "One Base DN per line" : "En hoved-DN pr. linje", - "You can specify Base DN for users and groups in the Advanced tab" : "Du kan spesifisere hoved-DN for brukere og grupper under Avansert fanen", + "One Base DN per line" : "En basis-DN pr. linje", + "You can specify Base DN for users and groups in the Advanced tab" : "Du kan spesifisere basis-DN for brukere og grupper under Avansert fanen", + "Detect Base DN" : "Påvis basis-DN", + "Test Base DN" : "Test basis-DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Unngår automatiske LDAP-forespørsler. Bedre for store oppsett men krever litt LDAP-kunnskap.", "Manually enter LDAP filters (recommended for large directories)" : "Legg inn LDAP-filtre manuelt (anbefalt for store kataloger)", "Limit %s access to users meeting these criteria:" : "Begrens %s-tilgang til brukere som tilfredsstiller disse kriteriene:", + "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." : "De mest vanlige objektklassene for brukere er organizationalPerson, person, user og inetOrgPerson. Kontakt katalogadministratoren hvis du er usikker på hvilken objektklasse du skal velge.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-brukere som skal ha tilgang til %s-instansen.", + "Verify settings and count users" : "Sjekk innstillinger og tell brukere", "Saving" : "Lagrer", "Back" : "Tilbake", "Continue" : "Fortsett", diff --git a/apps/user_ldap/l10n/nb_NO.json b/apps/user_ldap/l10n/nb_NO.json index 82950c884cb..8f2e2f2046f 100644 --- a/apps/user_ldap/l10n/nb_NO.json +++ b/apps/user_ldap/l10n/nb_NO.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Klarte ikke å nullstille tilknytningene.", "Failed to delete the server configuration" : "Klarte ikke å slette tjener-konfigurasjonen.", + "The configuration is invalid: anonymous bind is not allowed." : "Konfigurasjonen er ugyldig: Anonym binding er ikke tillatt.", "The configuration is valid and the connection could be established!" : "Konfigurasjonen er i orden og tilkoblingen skal være etablert!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Konfigurasjonen er i orden, men Bind mislyktes. Vennligst sjekk tjener-konfigurasjonen og påloggingsinformasjonen.", "The configuration is invalid. Please have a look at the logs for further details." : "Konfigurasjonen er ikke gyldig. Sjekk loggene for flere detaljer.", @@ -8,15 +9,41 @@ "No configuration specified" : "Ingen konfigurasjon spesifisert", "No data specified" : "Ingen data spesifisert", " Could not set configuration %s" : "Klarte ikke å sette konfigurasjon %s", + "Action does not exist" : "Aksjonen eksisterer ikke", + "The Base DN appears to be wrong" : "Basis-DN ser ut til å være feil", "Configuration incorrect" : "Konfigurasjon feil", "Configuration incomplete" : "Konfigurasjon ufullstendig", "Configuration OK" : "Konfigurasjon OK", "Select groups" : "Velg grupper", "Select object classes" : "Velg objektklasser", + "Please check the credentials, they seem to be wrong." : "Sjekk påloggingsdetaljene; de ser ut til å være feil.", + "Please specify the port, it could not be auto-detected." : "Vennligst spesifiser porten. Den kunne ikke påvises automatisk.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Basis-DN kunne ikke påvises automatisk. Se igjennom pålogginsdetaljer, vertsnavn og portnummer.", + "Could not detect Base DN, please enter it manually." : "Klarte ikke å påvise basis-DN. Det må skrives inn manuelt.", "{nthServer}. Server" : "{nthServer}. server", + "No object found in the given Base DN. Please revise." : "Intet objekt funnet i angitt basis-DN. Revider oppsettet.", + "More than 1.000 directory entries available." : "Mer enn 1000 katalogoppføringer tilgjengelig.", + " entries available within the provided Base DN" : "oppføringer tilgjengelig innenfor angitt basis-DN", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Det oppstod en feil. Sjekk basis-DN, tilkoblingsoppsett og påloggingsdetaljer.", "Do you really want to delete the current Server Configuration?" : "Er du sikker på at du vil slette aktiv tjener-konfigurasjon?", "Confirm Deletion" : "Bekreft sletting", + "Mappings cleared successfully!" : "Tilknytningene ble nullstilt!", + "Error while clearing the mappings." : "Feil ved nullstilling av tilknytningene.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym binding er ikke tillatt. Oppgi en bruker-DN og passord.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Feil ved LDAP-operasjon. Anonym binding er kanskje ikke tillatt.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lagring fellet. Forsikre deg om at database er i gang. Last på nytt før du fortsetter.", + "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?" : "Endring av modus vil aktivere automatiske LDAP-spørringer. Avhengig av din LDAP-størrelse kan de ta litt tid. Vil du likevel endre modus?", + "Mode switch" : "Endring av modus", "Select attributes" : "Velg attributter", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Bruker ikke funnet. Sjekk påloggingsattributtene og brukernavnet. Virksomt filter (kopier og lim inn for validering på kommandolinjen): <br/>", + "User found and settings verified." : "Bruker funnet og innstillingene sjekket.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Innstillinger sjekket, men en bruker funnet. Kun den første vil kunne logge inn. Vurder et smalere filter.", + "An unspecified error occurred. Please check the settings and the log." : "En uspesifisert feil oppstod. Sjekk innstillingene og loggen.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søkefilteret er ugyldig, antakelig pga. syntaksproblemer som ulikt antall start- og sluttparenteser. Vennligst sjekk.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Det oppstod en feil ved tilkobling til LDAP / AD. Sjekk vertsnavn, portnummer og påloggingsdetaljer.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Plassholder %uid mangler. Den erstattes av påloggingsnavnet ved spørring mot LDAP / AD.", + "Please provide a login name to test against" : "Vennligst oppgi et påloggingsnavn å teste mot", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Gruppeboksen ble deaktivert fordi LDAP- / AD-serveren ikke støtter memberOf.", "_%s group found_::_%s groups found_" : ["%s gruppe funnet","%s grupper funnet"], "_%s user found_::_%s users found_" : ["%s bruker funnet","%s brukere funnet"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Kunne ikke påvise attributt for brukers visningsnavn. Du må selv spesifisere det i avanserte LDAP-innstillinger.", @@ -24,28 +51,49 @@ "Invalid Host" : "Ugyldig tjener", "Server" : "Server", "Users" : "Brukere", + "Login Attributes" : "Påloggingsattributter", "Groups" : "Grupper", "Test Configuration" : "Test konfigurasjonen", "Help" : "Hjelp", "Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:", + "Only these object classes:" : "Kun disse objektklassene:", + "Only from these groups:" : "Kun fra disse gruppene:", + "Search groups" : "Søk i grupper", + "Available groups" : "Tilgjengelige grupper", + "Selected groups" : "Valgte grupper", + "Edit LDAP Query" : "Rediger LDAP-spørring", + "LDAP Filter:" : "LDAP-filter:", "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.", + "Verify settings and count groups" : "Sjekk innstillinger og tell grupper", + "When logging in, %s will find the user based on the following attributes:" : "Ved pålogging vil %s finne brukeren basert på følgende attributter:", + "LDAP / AD Username:" : "LDAP / AD brukernavn:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillater pålogging med LDAP / AD brukernavn, som er enten uid eller samaccountname og vil bli oppdaget.", + "LDAP / AD Email Address:" : "LDAP / AD Epost-adresse:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Log alltid på med en epost-attributt. Mail og mailPrimaryAddress vil være tillatt.", "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\"", + "Test Loginname" : "Test påloggingsnavn", + "Verify settings" : "Sjekk innstillinger", "1. Server" : "1. server", "%s. Server:" : "%s. server:", "Host" : "Tjener", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kan utelate protokollen, men du er påkrevd å bruke SSL. Deretter starte med ldaps://", "Port" : "Port", + "Detect Port" : "Påvis port", "User DN" : "Bruker 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 nummeret til klienten som skal bindes til, f.eks. uid=agent,dc=example,dc=com. For anonym tilgang, la DN- og passord-feltet stå tomt.", + "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 for klientbrukeren som binding skal gjøres med, f.eks. uid=agent,dc=example,dc=com. For anonym tilgang, la DN- og passord-feltet stå tomt.", "Password" : "Passord", "For anonymous access, leave DN and Password empty." : "For anonym tilgang, la DN- og passord-feltet stå tomt.", - "One Base DN per line" : "En hoved-DN pr. linje", - "You can specify Base DN for users and groups in the Advanced tab" : "Du kan spesifisere hoved-DN for brukere og grupper under Avansert fanen", + "One Base DN per line" : "En basis-DN pr. linje", + "You can specify Base DN for users and groups in the Advanced tab" : "Du kan spesifisere basis-DN for brukere og grupper under Avansert fanen", + "Detect Base DN" : "Påvis basis-DN", + "Test Base DN" : "Test basis-DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Unngår automatiske LDAP-forespørsler. Bedre for store oppsett men krever litt LDAP-kunnskap.", "Manually enter LDAP filters (recommended for large directories)" : "Legg inn LDAP-filtre manuelt (anbefalt for store kataloger)", "Limit %s access to users meeting these criteria:" : "Begrens %s-tilgang til brukere som tilfredsstiller disse kriteriene:", + "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." : "De mest vanlige objektklassene for brukere er organizationalPerson, person, user og inetOrgPerson. Kontakt katalogadministratoren hvis du er usikker på hvilken objektklasse du skal velge.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-brukere som skal ha tilgang til %s-instansen.", + "Verify settings and count users" : "Sjekk innstillinger og tell brukere", "Saving" : "Lagrer", "Back" : "Tilbake", "Continue" : "Fortsett", diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js index 4600b251564..7d86e9d558c 100644 --- a/apps/user_ldap/l10n/nl.js +++ b/apps/user_ldap/l10n/nl.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Niet gelukt de vertalingen leeg te maken.", "Failed to delete the server configuration" : "Verwijderen serverconfiguratie mislukt", + "The configuration is invalid: anonymous bind is not allowed." : "De configuratie is ongeldig: anonieme bind is niet toegestaan.", "The configuration is valid and the connection could be established!" : "De configuratie is geldig en de verbinding is geslaagd!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "De configuratie is geldig, maar Bind mislukte. Controleer de serverinstellingen en inloggegevens.", "The configuration is invalid. Please have a look at the logs for further details." : "De configuratie is ongeldig. Bekijk de logbestanden voor meer details.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Geen gegevens verstrekt", " Could not set configuration %s" : "Kon configuratie %s niet instellen", "Action does not exist" : "Actie bestaat niet", + "The Base DN appears to be wrong" : "De Basis DN lijkt onjuist", "Configuration incorrect" : "Configuratie onjuist", "Configuration incomplete" : "Configuratie incompleet", "Configuration OK" : "Configuratie OK", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Bevestig verwijderen", "Mappings cleared successfully!" : "Mappings succesvol schoongemaakt!", "Error while clearing the mappings." : "Fout bij opschonen mappings.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonieme bind is niet toegestaan. Geef een gebruikers DN en wachrwoord op.", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP operatie fout. Anonieme bind is misschien niet toegstaan.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Opslaan mislukt. Verifieer dat de database draait. Herlaad voordat u verder gaat.", "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?" : "Omschakelen van de modus schakelt automatische LDAP opvragingen in. Afhankelijk van uw LDAP omvang kan dat even duren. Wilt u nog steeds omschakelen?", "Mode switch" : "Omschakelen modus", diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json index 63d8720555d..fc23b39df64 100644 --- a/apps/user_ldap/l10n/nl.json +++ b/apps/user_ldap/l10n/nl.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Niet gelukt de vertalingen leeg te maken.", "Failed to delete the server configuration" : "Verwijderen serverconfiguratie mislukt", + "The configuration is invalid: anonymous bind is not allowed." : "De configuratie is ongeldig: anonieme bind is niet toegestaan.", "The configuration is valid and the connection could be established!" : "De configuratie is geldig en de verbinding is geslaagd!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "De configuratie is geldig, maar Bind mislukte. Controleer de serverinstellingen en inloggegevens.", "The configuration is invalid. Please have a look at the logs for further details." : "De configuratie is ongeldig. Bekijk de logbestanden voor meer details.", @@ -9,6 +10,7 @@ "No data specified" : "Geen gegevens verstrekt", " Could not set configuration %s" : "Kon configuratie %s niet instellen", "Action does not exist" : "Actie bestaat niet", + "The Base DN appears to be wrong" : "De Basis DN lijkt onjuist", "Configuration incorrect" : "Configuratie onjuist", "Configuration incomplete" : "Configuratie incompleet", "Configuration OK" : "Configuratie OK", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Bevestig verwijderen", "Mappings cleared successfully!" : "Mappings succesvol schoongemaakt!", "Error while clearing the mappings." : "Fout bij opschonen mappings.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonieme bind is niet toegestaan. Geef een gebruikers DN en wachrwoord op.", + "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP operatie fout. Anonieme bind is misschien niet toegstaan.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Opslaan mislukt. Verifieer dat de database draait. Herlaad voordat u verder gaat.", "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?" : "Omschakelen van de modus schakelt automatische LDAP opvragingen in. Afhankelijk van uw LDAP omvang kan dat even duren. Wilt u nog steeds omschakelen?", "Mode switch" : "Omschakelen modus", diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js index 37d5de96d38..2f6e9226b16 100644 --- a/apps/user_ldap/l10n/pt_BR.js +++ b/apps/user_ldap/l10n/pt_BR.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Falha ao limpar os mapeamentos.", "Failed to delete the server configuration" : "Falha ao deletar a configuração do servidor", + "The configuration is invalid: anonymous bind is not allowed." : "A configuração é inválida: vínculo anônimo não é permitido.", "The configuration is valid and the connection could be established!" : "A configuração é válida e a conexão foi estabelecida!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "A configuração é válida, mas o Bind falhou. Confira as configurações do servidor e as credenciais.", "The configuration is invalid. Please have a look at the logs for further details." : "Configuração inválida. Por favor, dê uma olhada nos logs para mais detalhes.", @@ -11,6 +12,7 @@ OC.L10N.register( "No data specified" : "Não há dados especificados", " Could not set configuration %s" : "Não foi possível definir a configuração %s", "Action does not exist" : "A ação não existe", + "The Base DN appears to be wrong" : "O DN de base parece estar errado", "Configuration incorrect" : "Configuração incorreta", "Configuration incomplete" : "Configuração incompleta", "Configuration OK" : "Configuração OK", @@ -29,6 +31,8 @@ OC.L10N.register( "Confirm Deletion" : "Confirmar Exclusão", "Mappings cleared successfully!" : "Limpeza do mapeamento feita com sucesso!", "Error while clearing the mappings." : "Erro enquanto limpava os mapeamentos.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Vínculo anônimo não é permitido. Por favor, forneça um DN do usuário e senha.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Erro Operações LDAP. Vínculo anônimo pode não ser permitido.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Falha ao gravar. Por favor, verifique se o banco de dados está em operação. Atualize antes de continuar.", "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?" : "Mudar o modo irá permitir consultas LDAP automáticas. Dependendo do tamanho do LDAP isso pode demorar um pouco. Você ainda quer mudar o modo?", "Mode switch" : "Troca de modo", diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json index 5980b372c8b..aed3f713a05 100644 --- a/apps/user_ldap/l10n/pt_BR.json +++ b/apps/user_ldap/l10n/pt_BR.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Falha ao limpar os mapeamentos.", "Failed to delete the server configuration" : "Falha ao deletar a configuração do servidor", + "The configuration is invalid: anonymous bind is not allowed." : "A configuração é inválida: vínculo anônimo não é permitido.", "The configuration is valid and the connection could be established!" : "A configuração é válida e a conexão foi estabelecida!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "A configuração é válida, mas o Bind falhou. Confira as configurações do servidor e as credenciais.", "The configuration is invalid. Please have a look at the logs for further details." : "Configuração inválida. Por favor, dê uma olhada nos logs para mais detalhes.", @@ -9,6 +10,7 @@ "No data specified" : "Não há dados especificados", " Could not set configuration %s" : "Não foi possível definir a configuração %s", "Action does not exist" : "A ação não existe", + "The Base DN appears to be wrong" : "O DN de base parece estar errado", "Configuration incorrect" : "Configuração incorreta", "Configuration incomplete" : "Configuração incompleta", "Configuration OK" : "Configuração OK", @@ -27,6 +29,8 @@ "Confirm Deletion" : "Confirmar Exclusão", "Mappings cleared successfully!" : "Limpeza do mapeamento feita com sucesso!", "Error while clearing the mappings." : "Erro enquanto limpava os mapeamentos.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Vínculo anônimo não é permitido. Por favor, forneça um DN do usuário e senha.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Erro Operações LDAP. Vínculo anônimo pode não ser permitido.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Falha ao gravar. Por favor, verifique se o banco de dados está em operação. Atualize antes de continuar.", "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?" : "Mudar o modo irá permitir consultas LDAP automáticas. Dependendo do tamanho do LDAP isso pode demorar um pouco. Você ainda quer mudar o modo?", "Mode switch" : "Troca de modo", diff --git a/apps/user_ldap/l10n/pt_PT.js b/apps/user_ldap/l10n/pt_PT.js index 55cccb28022..34fa399e686 100644 --- a/apps/user_ldap/l10n/pt_PT.js +++ b/apps/user_ldap/l10n/pt_PT.js @@ -11,14 +11,26 @@ OC.L10N.register( "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", + "The Base DN appears to be wrong" : "O ND de base parece estar errado", "Configuration incorrect" : "Configuração incorreta", "Configuration incomplete" : "Configuração incompleta", "Configuration OK" : "Configuração OK", "Select groups" : "Seleccionar grupos", "Select object classes" : "Selecionar classes de objetos", + "Please check the credentials, they seem to be wrong." : "Por favor verifique as credenciais, parecem estar erradas.", + "Please specify the port, it could not be auto-detected." : "Por favor especifique a porta, não pode ser detetada automaticamente.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "O ND de base não pode ser detetado automaticamente, por favor verifique as credenciais, host e porta.", + "Could not detect Base DN, please enter it manually." : "Não foi possível detetar o ND de base, por favor introduza-o manualmente.", "{nthServer}. Server" : "{nthServer}. Servidor", + "More than 1.000 directory entries available." : "Mais de 1,000 entradas de diretório disponíveis.", + " entries available within the provided Base DN" : "entradas disponíveis no ND de base fornecido", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ocorreu um erro. Por favor verifique o ND de base, bem como as definições de ligação e as credenciais.", "Do you really want to delete the current Server Configuration?" : "Deseja realmente apagar as configurações de servidor actuais?", "Confirm Deletion" : "Confirmar a operação de apagar", + "Mappings cleared successfully!" : "Mapas limpos com sucesso!", + "Error while clearing the mappings." : "Erro a limpar os mapas.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Ligação anónima não permitida. Por favor forneça um ND de utilizador e password.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Erro de operações LDAP. Ligação anónima pode não ser permitida.", "Select attributes" : "Selecionar atributos", "_%s group found_::_%s groups found_" : ["%s grupo encontrado","%s grupos encontrados"], "_%s user found_::_%s users found_" : ["%s utilizador encontrado","%s utilizadores encontrados"], @@ -34,11 +46,13 @@ OC.L10N.register( "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.", "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\"", + "Verify settings" : "Verificar definições", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servvidor", "Host" : "Anfitrião", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://", "Port" : "Porto", + "Detect Port" : "Detetar porta", "User DN" : "DN do utilizador", "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." : "O DN to cliente ", "Password" : "Password", diff --git a/apps/user_ldap/l10n/pt_PT.json b/apps/user_ldap/l10n/pt_PT.json index 2b0c81a96f4..920ceea7d60 100644 --- a/apps/user_ldap/l10n/pt_PT.json +++ b/apps/user_ldap/l10n/pt_PT.json @@ -9,14 +9,26 @@ "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", + "The Base DN appears to be wrong" : "O ND de base parece estar errado", "Configuration incorrect" : "Configuração incorreta", "Configuration incomplete" : "Configuração incompleta", "Configuration OK" : "Configuração OK", "Select groups" : "Seleccionar grupos", "Select object classes" : "Selecionar classes de objetos", + "Please check the credentials, they seem to be wrong." : "Por favor verifique as credenciais, parecem estar erradas.", + "Please specify the port, it could not be auto-detected." : "Por favor especifique a porta, não pode ser detetada automaticamente.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "O ND de base não pode ser detetado automaticamente, por favor verifique as credenciais, host e porta.", + "Could not detect Base DN, please enter it manually." : "Não foi possível detetar o ND de base, por favor introduza-o manualmente.", "{nthServer}. Server" : "{nthServer}. Servidor", + "More than 1.000 directory entries available." : "Mais de 1,000 entradas de diretório disponíveis.", + " entries available within the provided Base DN" : "entradas disponíveis no ND de base fornecido", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ocorreu um erro. Por favor verifique o ND de base, bem como as definições de ligação e as credenciais.", "Do you really want to delete the current Server Configuration?" : "Deseja realmente apagar as configurações de servidor actuais?", "Confirm Deletion" : "Confirmar a operação de apagar", + "Mappings cleared successfully!" : "Mapas limpos com sucesso!", + "Error while clearing the mappings." : "Erro a limpar os mapas.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Ligação anónima não permitida. Por favor forneça um ND de utilizador e password.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Erro de operações LDAP. Ligação anónima pode não ser permitida.", "Select attributes" : "Selecionar atributos", "_%s group found_::_%s groups found_" : ["%s grupo encontrado","%s grupos encontrados"], "_%s user found_::_%s users found_" : ["%s utilizador encontrado","%s utilizadores encontrados"], @@ -32,11 +44,13 @@ "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.", "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\"", + "Verify settings" : "Verificar definições", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servvidor", "Host" : "Anfitrião", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://", "Port" : "Porto", + "Detect Port" : "Detetar porta", "User DN" : "DN do utilizador", "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." : "O DN to cliente ", "Password" : "Password", diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js index 038657a5065..96c4ab9a413 100644 --- a/apps/user_ldap/l10n/uk.js +++ b/apps/user_ldap/l10n/uk.js @@ -30,6 +30,9 @@ OC.L10N.register( "Test Configuration" : "Тестове налаштування", "Help" : "Допомога", "Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:", + "Search groups" : "Пошук груп", + "Available groups" : "Доступні групи", + "Selected groups" : "Обрані групи", "The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.", "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\"", @@ -38,6 +41,7 @@ OC.L10N.register( "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/uk.json b/apps/user_ldap/l10n/uk.json index bfd877a1892..6d448e27799 100644 --- a/apps/user_ldap/l10n/uk.json +++ b/apps/user_ldap/l10n/uk.json @@ -28,6 +28,9 @@ "Test Configuration" : "Тестове налаштування", "Help" : "Допомога", "Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:", + "Search groups" : "Пошук груп", + "Available groups" : "Доступні групи", + "Selected groups" : "Обрані групи", "The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.", "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\"", @@ -36,6 +39,7 @@ "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/lib/ldap.php b/apps/user_ldap/lib/ldap.php index 74df3dd8ae7..4d45db2e155 100644 --- a/apps/user_ldap/lib/ldap.php +++ b/apps/user_ldap/lib/ldap.php @@ -287,6 +287,10 @@ class LDAP implements ILDAPWrapper { //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/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php index 5bcd5953075..d91f1503abd 100644 --- a/apps/user_ldap/tests/group_ldap.php +++ b/apps/user_ldap/tests/group_ldap.php @@ -313,4 +313,74 @@ class Test_Group_Ldap extends \Test\TestCase { $this->assertSame(2, count($groups)); } + /** + * tests that a user listing is complete, if all it's members have the group + * as their primary. + */ + public function testUsersInGroupPrimaryMembersOnly() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $access->connection->expects($this->any()) + ->method('getFromCache') + ->will($this->returnValue(null)); + + $access->expects($this->any()) + ->method('readAttribute') + ->will($this->returnCallback(function($dn, $attr) { + if($attr === 'primaryGroupToken') { + return array(1337); + } + return array(); + })); + + $access->expects($this->any()) + ->method('groupname2dn') + ->will($this->returnValue('cn=foobar,dc=foo,dc=bar')); + + $access->expects($this->once()) + ->method('ownCloudUserNames') + ->will($this->returnValue(array('lisa', 'bart', 'kira', 'brad'))); + + $groupBackend = new GroupLDAP($access); + $users = $groupBackend->usersInGroup('foobar'); + + $this->assertSame(4, count($users)); + } + + /** + * tests that a user counting is complete, if all it's members have the group + * as their primary. + */ + public function testCountUsersInGroupPrimaryMembersOnly() { + $access = $this->getAccessMock(); + $this->enableGroups($access); + + $access->connection->expects($this->any()) + ->method('getFromCache') + ->will($this->returnValue(null)); + + $access->expects($this->any()) + ->method('readAttribute') + ->will($this->returnCallback(function($dn, $attr) { + if($attr === 'primaryGroupToken') { + return array(1337); + } + return array(); + })); + + $access->expects($this->any()) + ->method('groupname2dn') + ->will($this->returnValue('cn=foobar,dc=foo,dc=bar')); + + $access->expects($this->once()) + ->method('countUsers') + ->will($this->returnValue(4)); + + $groupBackend = new GroupLDAP($access); + $users = $groupBackend->countUsersInGroup('foobar'); + + $this->assertSame(4, $users); + } + } diff --git a/config/config.sample.php b/config/config.sample.php index 45aaf6a107d..9a40f82252a 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -487,6 +487,27 @@ $CONFIG = array( 'loglevel' => 2, /** + * Log condition for log level increase based on conditions. Once one of these + * conditions is met, the required log level is set to debug. This allows to + * debug specific requests, users or apps + * + * Supported conditions: + * - ``shared_secret``: if a request parameter with the name `log_secret` is set to + * this value the condition is met + * - ``users``: if the current request is done by one of the specified users, + * this condition is met + * - ``apps``: if the log message is invoked by one of the specified apps, + * this condition is met + * + * Defaults to an empty array. + */ +'log.condition' => [ + 'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9', + 'users' => ['sample-user'], + 'apps' => ['files'], +], + +/** * This uses PHP.date formatting; see http://php.net/manual/en/function.date.php */ 'logdateformat' => 'F d, Y H:i:s', diff --git a/core/ajax/share.php b/core/ajax/share.php index a0db77fd1f9..e78d274815d 100644 --- a/core/ajax/share.php +++ b/core/ajax/share.php @@ -281,8 +281,10 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo $users = array(); $limit = 0; $offset = 0; - while ($count < 15 && count($users) == $limit) { - $limit = 15 - $count; + // limit defaults to 15 if not specified via request parameter and can be no larger than 500 + $request_limit = min((int)$_GET['limit'] ?: 15, 500); + while ($count < $request_limit && count($users) == $limit) { + $limit = $request_limit - $count; if ($shareWithinGroupOnly) { $users = OC_Group::displayNamesInGroups($usergroups, (string)$_GET['search'], $limit, $offset); } else { @@ -319,7 +321,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo continue; } - if ($count < 15) { + if ($count < $request_limit) { if (!isset($_GET['itemShares']) || !isset($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]) || !is_array((string)$_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]) diff --git a/core/command/db/converttype.php b/core/command/db/converttype.php index f8ded69e865..e6c0f5caa35 100644 --- a/core/command/db/converttype.php +++ b/core/command/db/converttype.php @@ -30,7 +30,6 @@ namespace OC\Core\Command\Db; use \OCP\IConfig; use OC\DB\Connection; use OC\DB\ConnectionFactory; - use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; diff --git a/core/command/upgrade.php b/core/command/upgrade.php index 7f5d943bb8b..85bd430db58 100644 --- a/core/command/upgrade.php +++ b/core/command/upgrade.php @@ -70,6 +70,12 @@ class Upgrade extends Command { null, InputOption::VALUE_NONE, 'only runs the database schema migration simulation, do not actually update' + ) + ->addOption( + '--no-app-disable', + null, + InputOption::VALUE_NONE, + 'skips the disable of third party apps' ); } @@ -83,6 +89,7 @@ class Upgrade extends Command { $simulateStepEnabled = true; $updateStepEnabled = true; + $skip3rdPartyAppsDisable = false; if ($input->getOption('skip-migration-test')) { $simulateStepEnabled = false; @@ -90,6 +97,9 @@ class Upgrade extends Command { if ($input->getOption('dry-run')) { $updateStepEnabled = false; } + if ($input->getOption('no-app-disable')) { + $skip3rdPartyAppsDisable = true; + } if (!$simulateStepEnabled && !$updateStepEnabled) { $output->writeln( @@ -106,6 +116,7 @@ class Upgrade extends Command { $updater->setSimulateStepEnabled($simulateStepEnabled); $updater->setUpdateStepEnabled($updateStepEnabled); + $updater->setSkip3rdPartyAppsDisable($skip3rdPartyAppsDisable); $updater->listen('\OC\Updater', 'maintenanceStart', function () use($output) { $output->writeln('<info>Turned on maintenance mode</info>'); @@ -127,7 +138,7 @@ class Upgrade extends Command { $updater->listen('\OC\Updater', 'incompatibleAppDisabled', function ($app) use($output) { $output->writeln('<info>Disabled incompatible app: ' . $app . '</info>'); }); - $updater->listen('\OC\Updater', 'thirdPartyAppDisabled', function ($app) use($output) { + $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) { @@ -145,7 +156,6 @@ class Upgrade extends Command { $updater->listen('\OC\Updater', 'appUpgrade', function ($app, $version) use ($output) { $output->writeln("<info>Updated <$app> to $version</info>"); }); - $updater->listen('\OC\Updater', 'failure', function ($message) use($output, $self) { $output->writeln("<error>$message</error>"); $self->upgradeFailed = true; diff --git a/core/css/styles.css b/core/css/styles.css index c8704066cf1..e019b874f61 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -40,6 +40,10 @@ body { height: 32px; display: none; } +#body-login .float-spinner { + margin-top: -32px; + padding-top: 32px; +} #nojavascript { position: fixed; @@ -638,6 +642,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; @@ -1065,4 +1072,3 @@ fieldset.warning legend + p, fieldset.update legend + p { @-ms-viewport { width: device-width; } - diff --git a/core/js/placeholder.js b/core/js/placeholder.js index 47cff780d2f..74bb9b1881d 100644 --- a/core/js/placeholder.js +++ b/core/js/placeholder.js @@ -59,7 +59,7 @@ // CSS rules this.css('color', '#fff'); - this.css('font-weight', 'bold'); + this.css('font-weight', 'normal'); this.css('text-align', 'center'); // calculate the height 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/setupchecks.js b/core/js/setupchecks.js index 9bb3face751..5d9f1863ef7 100644 --- a/core/js/setupchecks.js +++ b/core/js/setupchecks.js @@ -64,6 +64,11 @@ t('core', '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>.', {docLink: data.memcacheDocs}) ); } + if(!data.isUrandomAvailable) { + messages.push( + t('core', '/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a href="{docLink}">documentation</a>.', {docLink: data.securityDocs}) + ); + } } else { messages.push(t('core', 'Error occurred while checking server setup')); } diff --git a/core/js/share.js b/core/js/share.js index 121ee97d17f..415fe41ef5f 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -491,7 +491,7 @@ OC.Share={ $('#shareWith').autocomplete({minLength: 2, delay: 750, source: function(search, response) { var $loading = $('#dropdown .shareWithLoading'); $loading.removeClass('hidden'); - $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term.trim(), itemShares: OC.Share.itemShares, itemType: itemType }, function(result) { + $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term.trim(), limit: 200, itemShares: OC.Share.itemShares, itemType: itemType }, function(result) { $loading.addClass('hidden'); if (result.status == 'success' && result.data.length > 0) { $( "#shareWith" ).autocomplete( "option", "autoFocus", true ); diff --git a/core/js/tests/specs/setupchecksSpec.js b/core/js/tests/specs/setupchecksSpec.js index 3e6382603f5..65de3d0321d 100644 --- a/core/js/tests/specs/setupchecksSpec.js +++ b/core/js/tests/specs/setupchecksSpec.js @@ -66,7 +66,7 @@ describe('OC.SetupChecks tests', function() { { 'Content-Type': 'application/json' }, - JSON.stringify({serverHasInternetConnection: false, memcacheDocs: 'https://doc.owncloud.org/server/go.php?to=admin-performance'}) + JSON.stringify({isUrandomAvailable: true, serverHasInternetConnection: false, memcacheDocs: 'https://doc.owncloud.org/server/go.php?to=admin-performance'}) ); async.done(function( data, s, x ){ @@ -83,7 +83,7 @@ describe('OC.SetupChecks tests', function() { { 'Content-Type': 'application/json' }, - JSON.stringify({serverHasInternetConnection: false, dataDirectoryProtected: false, memcacheDocs: 'https://doc.owncloud.org/server/go.php?to=admin-performance'}) + JSON.stringify({isUrandomAvailable: true, serverHasInternetConnection: false, dataDirectoryProtected: false, memcacheDocs: 'https://doc.owncloud.org/server/go.php?to=admin-performance'}) ); async.done(function( data, s, x ){ @@ -100,7 +100,7 @@ describe('OC.SetupChecks tests', function() { { 'Content-Type': 'application/json', }, - JSON.stringify({serverHasInternetConnection: false, dataDirectoryProtected: false, isMemcacheConfigured: true}) + JSON.stringify({isUrandomAvailable: true, serverHasInternetConnection: false, dataDirectoryProtected: false, isMemcacheConfigured: true}) ); async.done(function( data, s, x ){ @@ -109,6 +109,22 @@ describe('OC.SetupChecks tests', function() { }); }); + it('should return an error if /dev/urandom is not accessible', function(done) { + var async = OC.SetupChecks.checkSetup(); + + suite.server.requests[0].respond( + 200, + { + 'Content-Type': 'application/json', + }, + JSON.stringify({isUrandomAvailable: false, securityDocs: 'https://docs.owncloud.org/myDocs.html', serverHasInternetConnection: true, dataDirectoryProtected: true, isMemcacheConfigured: true}) + ); + + async.done(function( data, s, x ){ + expect(data).toEqual(['/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a href="https://docs.owncloud.org/myDocs.html">documentation</a>.']); + done(); + }); + }); it('should return an error if the response has no statuscode 200', function(done) { var async = OC.SetupChecks.checkSetup(); diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js index c075351b9f5..33090bbda74 100644 --- a/core/js/tests/specs/shareSpec.js +++ b/core/js/tests/specs/shareSpec.js @@ -110,6 +110,86 @@ describe('OC.Share tests', function() { describe('Share with link', function() { // TODO: test ajax calls // TODO: test password field visibility (whenever enforced or not) + it('update password on focus out', function() { + $('#allowShareWithLink').val('yes'); + + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + 31, + 'shared_file_name.txt' + ); + + // Toggle linkshare + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[0].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + // Enable password, enter password and focusout + $('#dropdown [name=showPassword]').click(); + $('#dropdown #linkPassText').focus(); + $('#dropdown #linkPassText').val('foo'); + $('#dropdown #linkPassText').focusout(); + + expect(fakeServer.requests[1].method).toEqual('POST'); + var body = OC.parseQueryString(fakeServer.requests[1].requestBody); + expect(body['shareWith']).toEqual('foo'); + + // Set password response + fakeServer.requests[1].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + expect($('#dropdown #linkPassText').val()).toEqual(''); + expect($('#dropdown #linkPassText').attr('placeholder')).toEqual('Password protected'); + }); + it('update password on enter', function() { + $('#allowShareWithLink').val('yes'); + + OC.Share.showDropDown( + 'file', + 123, + $container, + true, + 31, + 'shared_file_name.txt' + ); + + // Toggle linkshare + $('#dropdown [name=linkCheckbox]').click(); + fakeServer.requests[0].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + // Enable password and enter password + $('#dropdown [name=showPassword]').click(); + $('#dropdown #linkPassText').focus(); + $('#dropdown #linkPassText').val('foo'); + $('#dropdown #linkPassText').trigger(new $.Event('keyup', {keyCode: 13})); + + expect(fakeServer.requests[1].method).toEqual('POST'); + var body = OC.parseQueryString(fakeServer.requests[1].requestBody); + expect(body['shareWith']).toEqual('foo'); + + // Set password response + fakeServer.requests[1].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + expect($('#dropdown #linkPassText').val()).toEqual(''); + expect($('#dropdown #linkPassText').attr('placeholder')).toEqual('Password protected'); + }); it('shows share with link checkbox when allowed', function() { $('#allowShareWithLink').val('yes'); OC.Share.showDropDown( diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js index 283f97c3be1..1df630bf26d 100644 --- a/core/l10n/cs_CZ.js +++ b/core/l10n/cs_CZ.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Složka s daty", "Configure the database" : "Nastavit databázi", "Only %s is available." : "Pouze %s je dostupný.", + "Install and activate additional PHP modules to choose other database types." : "Pro výběr jiných typů databáze je třeba nainstalovat a povolit dodatečné PHP moduly.", + "For more details check out the documentation." : "Více informací lze nalézt v dokumentaci.", "Database user" : "Uživatel databáze", "Database password" : "Heslo databáze", "Database name" : "Název databáze", diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json index a2ff9f9dda1..616028fa31a 100644 --- a/core/l10n/cs_CZ.json +++ b/core/l10n/cs_CZ.json @@ -189,6 +189,8 @@ "Data folder" : "Složka s daty", "Configure the database" : "Nastavit databázi", "Only %s is available." : "Pouze %s je dostupný.", + "Install and activate additional PHP modules to choose other database types." : "Pro výběr jiných typů databáze je třeba nainstalovat a povolit dodatečné PHP moduly.", + "For more details check out the documentation." : "Více informací lze nalézt v dokumentaci.", "Database user" : "Uživatel databáze", "Database password" : "Heslo databáze", "Database name" : "Název databáze", diff --git a/core/l10n/de.js b/core/l10n/de.js index 4177a028cd4..2ded2a0a800 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Datenverzeichnis", "Configure the database" : "Datenbank einrichten", "Only %s is available." : "Es ist nur %s verfügbar.", + "Install and activate additional PHP modules to choose other database types." : "Installiere und aktiviere zusätzliche PHP-Module, um andere Datenbank-Typen auswählen zu können.", + "For more details check out the documentation." : "Schau für weitere Informationen in die Dokumentation.", "Database user" : "Datenbank-Benutzer", "Database password" : "Datenbank-Passwort", "Database name" : "Datenbank-Name", diff --git a/core/l10n/de.json b/core/l10n/de.json index 9959c62385c..651c5886cac 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -189,6 +189,8 @@ "Data folder" : "Datenverzeichnis", "Configure the database" : "Datenbank einrichten", "Only %s is available." : "Es ist nur %s verfügbar.", + "Install and activate additional PHP modules to choose other database types." : "Installiere und aktiviere zusätzliche PHP-Module, um andere Datenbank-Typen auswählen zu können.", + "For more details check out the documentation." : "Schau für weitere Informationen in die Dokumentation.", "Database user" : "Datenbank-Benutzer", "Database password" : "Datenbank-Passwort", "Database name" : "Datenbank-Name", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 61cd7869768..5f97e1b90fe 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -190,7 +190,9 @@ OC.L10N.register( "Storage & database" : "Speicher & Datenbank", "Data folder" : "Datenverzeichnis", "Configure the database" : "Datenbank einrichten", - "Only %s is available." : "Es sind nur %s verfügbar.", + "Only %s is available." : "Es ist nur %s verfügbar.", + "Install and activate additional PHP modules to choose other database types." : "Installieren und aktivieren Sie zusätzliche PHP-Module, um andere Datenbank-Typen auswählen zu können.", + "For more details check out the documentation." : "Schauen Sie für weitere Informationen in die Dokumentation.", "Database user" : "Datenbank-Benutzer", "Database password" : "Datenbank-Passwort", "Database name" : "Datenbank-Name", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 86ec7e75b02..0c03c1bc241 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -188,7 +188,9 @@ "Storage & database" : "Speicher & Datenbank", "Data folder" : "Datenverzeichnis", "Configure the database" : "Datenbank einrichten", - "Only %s is available." : "Es sind nur %s verfügbar.", + "Only %s is available." : "Es ist nur %s verfügbar.", + "Install and activate additional PHP modules to choose other database types." : "Installieren und aktivieren Sie zusätzliche PHP-Module, um andere Datenbank-Typen auswählen zu können.", + "For more details check out the documentation." : "Schauen Sie für weitere Informationen in die Dokumentation.", "Database user" : "Datenbank-Benutzer", "Database password" : "Datenbank-Passwort", "Database name" : "Datenbank-Name", diff --git a/core/l10n/el.js b/core/l10n/el.js index 4c9cf8e018d..fe567209a33 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Φάκελος δεδομένων", "Configure the database" : "Ρύθμιση της βάσης δεδομένων", "Only %s is available." : "Μόνο %s είναι διαθέσιμο.", + "Install and activate additional PHP modules to choose other database types." : "Εγκαταστήστε και ενεργοποιείστε επιπλέον αρθρώματα PHP για να επιλέξετε άλλους τύπους βάσεων δεδομένων.", + "For more details check out the documentation." : "Για περισσότερες πληροφορίες ανατρέξτε στην τεκμηρίωση.", "Database user" : "Χρήστης της βάσης δεδομένων", "Database password" : "Συνθηματικό βάσης δεδομένων", "Database name" : "Όνομα βάσης δεδομένων", diff --git a/core/l10n/el.json b/core/l10n/el.json index 3cf513b2e9a..2c512da3f4a 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -189,6 +189,8 @@ "Data folder" : "Φάκελος δεδομένων", "Configure the database" : "Ρύθμιση της βάσης δεδομένων", "Only %s is available." : "Μόνο %s είναι διαθέσιμο.", + "Install and activate additional PHP modules to choose other database types." : "Εγκαταστήστε και ενεργοποιείστε επιπλέον αρθρώματα PHP για να επιλέξετε άλλους τύπους βάσεων δεδομένων.", + "For more details check out the documentation." : "Για περισσότερες πληροφορίες ανατρέξτε στην τεκμηρίωση.", "Database user" : "Χρήστης της βάσης δεδομένων", "Database password" : "Συνθηματικό βάσης δεδομένων", "Database name" : "Όνομα βάσης δεδομένων", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index 910419fc498..4cb9072218d 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -134,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hello {name}, the weather is {weather}", "Hello {name}" : "Hello {name}", "_download %n file_::_download %n files_" : ["download %n file","download %n files"], + "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.", "Updating {productName} to version {version}, this may take a while." : "Updating {productName} to version {version}, this may take a while.", "Please reload the page." : "Please reload the page.", "The update was unsuccessful. " : "The update was unsuccessful. ", @@ -190,6 +191,8 @@ OC.L10N.register( "Data folder" : "Data folder", "Configure the database" : "Configure the database", "Only %s is available." : "Only %s is available.", + "Install and activate additional PHP modules to choose other database types." : "Install and activate additional PHP modules to choose other database types.", + "For more details check out the documentation." : "For more details check out the documentation.", "Database user" : "Database user", "Database password" : "Database password", "Database name" : "Database name", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 6087dfcf4eb..011f700c87c 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -132,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hello {name}, the weather is {weather}", "Hello {name}" : "Hello {name}", "_download %n file_::_download %n files_" : ["download %n file","download %n files"], + "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.", "Updating {productName} to version {version}, this may take a while." : "Updating {productName} to version {version}, this may take a while.", "Please reload the page." : "Please reload the page.", "The update was unsuccessful. " : "The update was unsuccessful. ", @@ -188,6 +189,8 @@ "Data folder" : "Data folder", "Configure the database" : "Configure the database", "Only %s is available." : "Only %s is available.", + "Install and activate additional PHP modules to choose other database types." : "Install and activate additional PHP modules to choose other database types.", + "For more details check out the documentation." : "For more details check out the documentation.", "Database user" : "Database user", "Database password" : "Database password", "Database name" : "Database name", diff --git a/core/l10n/es.js b/core/l10n/es.js index 0f6239bac2f..7d4e8319553 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Directorio de datos", "Configure the database" : "Configurar la base de datos", "Only %s is available." : "Solo %s está disponible.", + "Install and activate additional PHP modules to choose other database types." : "Instalar y activar módulos PHP adicionales para elegir otros formatos de base de datos.", + "For more details check out the documentation." : "Para más detalles revisar la documentación.", "Database user" : "Usuario de la base de datos", "Database password" : "Contraseña de la base de datos", "Database name" : "Nombre de la base de datos", diff --git a/core/l10n/es.json b/core/l10n/es.json index f978e29c713..c6acbfb8f1a 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -189,6 +189,8 @@ "Data folder" : "Directorio de datos", "Configure the database" : "Configurar la base de datos", "Only %s is available." : "Solo %s está disponible.", + "Install and activate additional PHP modules to choose other database types." : "Instalar y activar módulos PHP adicionales para elegir otros formatos de base de datos.", + "For more details check out the documentation." : "Para más detalles revisar la documentación.", "Database user" : "Usuario de la base de datos", "Database password" : "Contraseña de la base de datos", "Database name" : "Nombre de la base de datos", diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js index 47edd9464bf..cffe48dbc43 100644 --- a/core/l10n/fi_FI.js +++ b/core/l10n/fi_FI.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Datakansio", "Configure the database" : "Muokkaa tietokantaa", "Only %s is available." : "Vain %s on käytettävissä.", + "Install and activate additional PHP modules to choose other database types." : "Asenna ja aktivoi erillisiä PHP-moduuleja valitaksesi muita tietokantatyyppejä.", + "For more details check out the documentation." : "Lisätietoja on saatavilla dokumentaatiossa.", "Database user" : "Tietokannan käyttäjä", "Database password" : "Tietokannan salasana", "Database name" : "Tietokannan nimi", diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json index 198bec2f9fb..58788a8421e 100644 --- a/core/l10n/fi_FI.json +++ b/core/l10n/fi_FI.json @@ -189,6 +189,8 @@ "Data folder" : "Datakansio", "Configure the database" : "Muokkaa tietokantaa", "Only %s is available." : "Vain %s on käytettävissä.", + "Install and activate additional PHP modules to choose other database types." : "Asenna ja aktivoi erillisiä PHP-moduuleja valitaksesi muita tietokantatyyppejä.", + "For more details check out the documentation." : "Lisätietoja on saatavilla dokumentaatiossa.", "Database user" : "Tietokannan käyttäjä", "Database password" : "Tietokannan salasana", "Database name" : "Tietokannan nimi", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index 8f5bff70d4e..12e6ce8ea29 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Répertoire des données", "Configure the database" : "Configurer la base de données", "Only %s is available." : "%s seulement est disponible.", + "Install and activate additional PHP modules to choose other database types." : "Installez et activez les modules PHP additionnels pour choisir d'autres types de base de données.", + "For more details check out the documentation." : "Consultez la documentation pour des détails supplémentaires.", "Database user" : "Utilisateur de la base de données", "Database password" : "Mot de passe de la base de données", "Database name" : "Nom de la base de données", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 6e0e9f4aa18..7a46ccce15c 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -189,6 +189,8 @@ "Data folder" : "Répertoire des données", "Configure the database" : "Configurer la base de données", "Only %s is available." : "%s seulement est disponible.", + "Install and activate additional PHP modules to choose other database types." : "Installez et activez les modules PHP additionnels pour choisir d'autres types de base de données.", + "For more details check out the documentation." : "Consultez la documentation pour des détails supplémentaires.", "Database user" : "Utilisateur de la base de données", "Database password" : "Mot de passe de la base de données", "Database name" : "Nom de la base de données", diff --git a/core/l10n/gl.js b/core/l10n/gl.js index 79119d32ce2..66fa87c9ad6 100644 --- a/core/l10n/gl.js +++ b/core/l10n/gl.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Cartafol de datos", "Configure the database" : "Configurar a base de datos", "Only %s is available." : "Só está dispoñíbel %s.", + "Install and activate additional PHP modules to choose other database types." : "Instale e active os módulos de PHP adicionais para seleccionar outros tipos de bases de datos.", + "For more details check out the documentation." : "Para obter máis detalles revise a documentación.", "Database user" : "Usuario da base de datos", "Database password" : "Contrasinal da base de datos", "Database name" : "Nome da base de datos", diff --git a/core/l10n/gl.json b/core/l10n/gl.json index c1d17291e45..e888d689551 100644 --- a/core/l10n/gl.json +++ b/core/l10n/gl.json @@ -189,6 +189,8 @@ "Data folder" : "Cartafol de datos", "Configure the database" : "Configurar a base de datos", "Only %s is available." : "Só está dispoñíbel %s.", + "Install and activate additional PHP modules to choose other database types." : "Instale e active os módulos de PHP adicionais para seleccionar outros tipos de bases de datos.", + "For more details check out the documentation." : "Para obter máis detalles revise a documentación.", "Database user" : "Usuario da base de datos", "Database password" : "Contrasinal da base de datos", "Database name" : "Nome da base de datos", diff --git a/core/l10n/it.js b/core/l10n/it.js index eba7161cbea..bcfc4950788 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Cartella dati", "Configure the database" : "Configura il database", "Only %s is available." : "È disponibile solo %s.", + "Install and activate additional PHP modules to choose other database types." : "Installa e attiva i moduli PHP aggiuntivi per scegliere gli altri tipi di database.", + "For more details check out the documentation." : "Per ulteriori dettagli, leggi la documentazione.", "Database user" : "Utente del database", "Database password" : "Password del database", "Database name" : "Nome del database", diff --git a/core/l10n/it.json b/core/l10n/it.json index 361bf4b0d28..430d893966e 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -189,6 +189,8 @@ "Data folder" : "Cartella dati", "Configure the database" : "Configura il database", "Only %s is available." : "È disponibile solo %s.", + "Install and activate additional PHP modules to choose other database types." : "Installa e attiva i moduli PHP aggiuntivi per scegliere gli altri tipi di database.", + "For more details check out the documentation." : "Per ulteriori dettagli, leggi la documentazione.", "Database user" : "Utente del database", "Database password" : "Password del database", "Database name" : "Nome del database", diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js index 707fd56605b..5b5465fb357 100644 --- a/core/l10n/nb_NO.js +++ b/core/l10n/nb_NO.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-serveren din er ikke satt opp til å tillate synkronisering av filer ennå, fordi WebDAV-grensesnittet ikke ser ut til å virke.", "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." : "Denne serveren har ingen fungerende internett-forbindelse. Dette betyr at noen funksjoner, som tilknytning av eksterne lagre, varslinger om oppdateringer eller installering av tredjeparts apper ikke vil virke. Fjerntilgang til filer og utsending av varsler på e-post vil kanskje ikke virke heller. Vi anbefaler å aktivere en internett-forbindelse for denne serveren hvis du vil ha full funksjonalitet.", "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." : "Datamappen og filene dine er sannsynligvis tilgjengelige fra Internett. .htaccess-filen fungerer ikke. Vi anbefaler sterkt at du konfigurerer web-serveren slik at datamappen ikke kan aksesseres eller at du flytter datamappen ut av web-serverens dokumentrot.", + "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>." : "Intet minne-cache er konfigurert. For å forbedre ytelsen, installer et minne-cache hvis tilgjengelig. Mer informasjon finnes i vår <a href=\"{docLink}\">documentasjon</a>.", "Error occurred while checking server setup" : "Feil oppstod ved sjekking av server-oppsett", "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 \"{header}\" er ikke konfigurert lik \"{expected}\". Dette kan være en sikkerhetsrisiko og vi anbefaler at denne innstillingen endres.", "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." : "HTTP-header \"Strict-Transport-Security\" er ikke konfigurert til minst \"2,678,400\" sekunder. Dette kan være en sikkerhetsrisiko og vi anbefaler at denne innstillingen endres.", @@ -85,6 +86,9 @@ OC.L10N.register( "Error while changing permissions" : "Feil ved endring av tillatelser", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", + "Share with users or groups …" : "Del med brukere eller grupper ...", + "Share with users, groups or remote users …" : "Del med brukere, grupper eller eksterne brukere ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Del med personer på andre ownCloud-installasjoner med syntaksen brukernavn@example.com/owncloud", "Share link" : "Del lenke", "The public link will expire no later than {days} days after it is created" : "Den offentlige lenken vil utløpe senest {days} dager etter at den lages", "Link" : "Lenke", @@ -97,6 +101,7 @@ OC.L10N.register( "Set expiration date" : "Sett utløpsdato", "Expiration" : "Utløpsdato", "Expiration date" : "Utløpsdato", + "An error occured. Please try again" : "Det oppstod en feil. Prøv igjen", "Adding user..." : "Legger til bruker...", "group" : "gruppe", "remote" : "ekstern", @@ -129,6 +134,7 @@ OC.L10N.register( "Hello {name}, the weather is {weather}" : "Hallo {name}, været er {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["last ned %n fil","last ned %n filer"], + "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere.", "Updating {productName} to version {version}, this may take a while." : "Oppdaterer {productName} til versjon {version}. Dette kan ta litt tid.", "Please reload the page." : "Vennligst last siden på nytt.", "The update was unsuccessful. " : "Oppdateringen var mislykket.", @@ -176,6 +182,7 @@ OC.L10N.register( "File: %s" : "Fil: %s", "Line: %s" : "Linje: %s", "Trace" : "Trace", + "Security warning" : "Sikkerhetsadvarsel", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Datamappen og filene dine er sannsynligvis tilgjengelig fra Internett fordi .htaccess-filen ikke fungerer.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "For informasjon om hvordan du setter opp serveren din riktig, se <a href=\"%s\" target=\"_blank\">dokumentasjonen</a>.", "Create an <strong>admin account</strong>" : "Opprett en <strong>administrator-konto</strong>", @@ -184,21 +191,28 @@ OC.L10N.register( "Data folder" : "Datamappe", "Configure the database" : "Konfigurer databasen", "Only %s is available." : "Kun %s er tilgjengelig.", + "Install and activate additional PHP modules to choose other database types." : "Installer og aktiver flere PHP-moduler for å velge andre databasetyper.", + "For more details check out the documentation." : "Sjekk dokumentasjonen for flere detaljer.", "Database user" : "Databasebruker", "Database password" : "Databasepassord", "Database name" : "Databasenavn", "Database tablespace" : "Database tabellområde", "Database host" : "Databasevert", + "Performance warning" : "Ytelsesadvarsel", "SQLite will be used as database." : "SQLite vil bli brukt som database.", "For larger installations we recommend to choose a different database backend." : "For større installasjoner anbefaler vi å velge en annen database.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "SQLite er spesielt frarådet om man bruker desktopklienten til filsynkronisering", "Finish setup" : "Fullfør oppsetting", "Finishing …" : "Ferdigstiller ...", + "Need help?" : "Trenger du hjelp?", + "See the documentation" : "Se documentasjonen", "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.", "Log out" : "Logg ut", "Search" : "Søk", "Server side authentication failed!" : "Autentisering feilet på serveren!", "Please contact your administrator." : "Vennligst kontakt administratoren din.", + "An internal error occured." : "Det oppstod en intern feil.", + "Please try again or contact your administrator." : "Prøv igjen eller kontakt en administrator.", "Forgot your password? Reset it!" : "Glemt passordet ditt? Tilbakestill det!", "remember" : "husk", "Log in" : "Logg inn", diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json index b53af891bbf..5bd8cf12a32 100644 --- a/core/l10n/nb_NO.json +++ b/core/l10n/nb_NO.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-serveren din er ikke satt opp til å tillate synkronisering av filer ennå, fordi WebDAV-grensesnittet ikke ser ut til å virke.", "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." : "Denne serveren har ingen fungerende internett-forbindelse. Dette betyr at noen funksjoner, som tilknytning av eksterne lagre, varslinger om oppdateringer eller installering av tredjeparts apper ikke vil virke. Fjerntilgang til filer og utsending av varsler på e-post vil kanskje ikke virke heller. Vi anbefaler å aktivere en internett-forbindelse for denne serveren hvis du vil ha full funksjonalitet.", "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." : "Datamappen og filene dine er sannsynligvis tilgjengelige fra Internett. .htaccess-filen fungerer ikke. Vi anbefaler sterkt at du konfigurerer web-serveren slik at datamappen ikke kan aksesseres eller at du flytter datamappen ut av web-serverens dokumentrot.", + "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>." : "Intet minne-cache er konfigurert. For å forbedre ytelsen, installer et minne-cache hvis tilgjengelig. Mer informasjon finnes i vår <a href=\"{docLink}\">documentasjon</a>.", "Error occurred while checking server setup" : "Feil oppstod ved sjekking av server-oppsett", "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 \"{header}\" er ikke konfigurert lik \"{expected}\". Dette kan være en sikkerhetsrisiko og vi anbefaler at denne innstillingen endres.", "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." : "HTTP-header \"Strict-Transport-Security\" er ikke konfigurert til minst \"2,678,400\" sekunder. Dette kan være en sikkerhetsrisiko og vi anbefaler at denne innstillingen endres.", @@ -83,6 +84,9 @@ "Error while changing permissions" : "Feil ved endring av tillatelser", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", + "Share with users or groups …" : "Del med brukere eller grupper ...", + "Share with users, groups or remote users …" : "Del med brukere, grupper eller eksterne brukere ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Del med personer på andre ownCloud-installasjoner med syntaksen brukernavn@example.com/owncloud", "Share link" : "Del lenke", "The public link will expire no later than {days} days after it is created" : "Den offentlige lenken vil utløpe senest {days} dager etter at den lages", "Link" : "Lenke", @@ -95,6 +99,7 @@ "Set expiration date" : "Sett utløpsdato", "Expiration" : "Utløpsdato", "Expiration date" : "Utløpsdato", + "An error occured. Please try again" : "Det oppstod en feil. Prøv igjen", "Adding user..." : "Legger til bruker...", "group" : "gruppe", "remote" : "ekstern", @@ -127,6 +132,7 @@ "Hello {name}, the weather is {weather}" : "Hallo {name}, været er {weather}", "Hello {name}" : "Hallo {name}", "_download %n file_::_download %n files_" : ["last ned %n fil","last ned %n filer"], + "{version} is available. Get more information on how to update." : "{version} er tilgjengelig. Få mer informasjon om å oppdatere.", "Updating {productName} to version {version}, this may take a while." : "Oppdaterer {productName} til versjon {version}. Dette kan ta litt tid.", "Please reload the page." : "Vennligst last siden på nytt.", "The update was unsuccessful. " : "Oppdateringen var mislykket.", @@ -174,6 +180,7 @@ "File: %s" : "Fil: %s", "Line: %s" : "Linje: %s", "Trace" : "Trace", + "Security warning" : "Sikkerhetsadvarsel", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Datamappen og filene dine er sannsynligvis tilgjengelig fra Internett fordi .htaccess-filen ikke fungerer.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "For informasjon om hvordan du setter opp serveren din riktig, se <a href=\"%s\" target=\"_blank\">dokumentasjonen</a>.", "Create an <strong>admin account</strong>" : "Opprett en <strong>administrator-konto</strong>", @@ -182,21 +189,28 @@ "Data folder" : "Datamappe", "Configure the database" : "Konfigurer databasen", "Only %s is available." : "Kun %s er tilgjengelig.", + "Install and activate additional PHP modules to choose other database types." : "Installer og aktiver flere PHP-moduler for å velge andre databasetyper.", + "For more details check out the documentation." : "Sjekk dokumentasjonen for flere detaljer.", "Database user" : "Databasebruker", "Database password" : "Databasepassord", "Database name" : "Databasenavn", "Database tablespace" : "Database tabellområde", "Database host" : "Databasevert", + "Performance warning" : "Ytelsesadvarsel", "SQLite will be used as database." : "SQLite vil bli brukt som database.", "For larger installations we recommend to choose a different database backend." : "For større installasjoner anbefaler vi å velge en annen database.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "SQLite er spesielt frarådet om man bruker desktopklienten til filsynkronisering", "Finish setup" : "Fullfør oppsetting", "Finishing …" : "Ferdigstiller ...", + "Need help?" : "Trenger du hjelp?", + "See the documentation" : "Se documentasjonen", "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.", "Log out" : "Logg ut", "Search" : "Søk", "Server side authentication failed!" : "Autentisering feilet på serveren!", "Please contact your administrator." : "Vennligst kontakt administratoren din.", + "An internal error occured." : "Det oppstod en intern feil.", + "Please try again or contact your administrator." : "Prøv igjen eller kontakt en administrator.", "Forgot your password? Reset it!" : "Glemt passordet ditt? Tilbakestill det!", "remember" : "husk", "Log in" : "Logg inn", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index 53cd4ce633f..7182ad3a1e9 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -191,6 +191,8 @@ OC.L10N.register( "Data folder" : "Gegevensmap", "Configure the database" : "Configureer de database", "Only %s is available." : "Alleen %s is beschikbaar.", + "Install and activate additional PHP modules to choose other database types." : "Installeer en activeer aanvullende PHP modules om andere soorten databases te kiezen.", + "For more details check out the documentation." : "Voor meer informatie wordt u verwezen naar de documentatie.", "Database user" : "Gebruiker database", "Database password" : "Wachtwoord database", "Database name" : "Naam database", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index ebc4cf4d3a2..ba0d7657c2a 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -189,6 +189,8 @@ "Data folder" : "Gegevensmap", "Configure the database" : "Configureer de database", "Only %s is available." : "Alleen %s is beschikbaar.", + "Install and activate additional PHP modules to choose other database types." : "Installeer en activeer aanvullende PHP modules om andere soorten databases te kiezen.", + "For more details check out the documentation." : "Voor meer informatie wordt u verwezen naar de documentatie.", "Database user" : "Gebruiker database", "Database password" : "Wachtwoord database", "Database name" : "Naam database", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 00dd9989021..b2b92bdf449 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -149,6 +149,7 @@ OC.L10N.register( "Reset password" : "Redefinir senha", "Searching other places" : "Pesquisando em outros lugares", "No search result in other places" : "Nenhum resultado da pesquisa em outros lugares", + "_{count} search result in other places_::_{count} search results in other places_" : ["{count} resultados da pesquisa em outros lugares","{count} resultados da pesquisa em outros lugares"], "Personal" : "Pessoal", "Users" : "Usuários", "Apps" : "Aplicações", @@ -190,6 +191,8 @@ OC.L10N.register( "Data folder" : "Pasta de dados", "Configure the database" : "Configurar o banco de dados", "Only %s is available." : "Somente %s está disponível.", + "Install and activate additional PHP modules to choose other database types." : "Instalar e ativar os módulos adicionais do PHP para escolher outros tipos de banco de dados.", + "For more details check out the documentation." : "Para mais informações consulte a documentação.", "Database user" : "Usuário do banco de dados", "Database password" : "Senha do banco de dados", "Database name" : "Nome do banco de dados", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index 6991f703840..f8de63cde27 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -147,6 +147,7 @@ "Reset password" : "Redefinir senha", "Searching other places" : "Pesquisando em outros lugares", "No search result in other places" : "Nenhum resultado da pesquisa em outros lugares", + "_{count} search result in other places_::_{count} search results in other places_" : ["{count} resultados da pesquisa em outros lugares","{count} resultados da pesquisa em outros lugares"], "Personal" : "Pessoal", "Users" : "Usuários", "Apps" : "Aplicações", @@ -188,6 +189,8 @@ "Data folder" : "Pasta de dados", "Configure the database" : "Configurar o banco de dados", "Only %s is available." : "Somente %s está disponível.", + "Install and activate additional PHP modules to choose other database types." : "Instalar e ativar os módulos adicionais do PHP para escolher outros tipos de banco de dados.", + "For more details check out the documentation." : "Para mais informações consulte a documentação.", "Database user" : "Usuário do banco de dados", "Database password" : "Senha do banco de dados", "Database name" : "Nome do banco de dados", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index 6a0da0710c9..cb11b5809bb 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -218,7 +218,7 @@ OC.L10N.register( "The theme %s has been disabled." : "%s 主题已被禁用。", "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:" : "为避免更大的安装演示,你能在你的安装目录下面运行这些命令:", + "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 再次可用时这个页面将刷新。" }, diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index a6d48105721..3321f61c072 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -216,7 +216,7 @@ "The theme %s has been disabled." : "%s 主题已被禁用。", "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:" : "为避免更大的安装演示,你能在你的安装目录下面运行这些命令:", + "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;" 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/l10n/ast.js b/lib/l10n/ast.js index ed653ec5566..9d51e3f82b3 100644 --- a/lib/l10n/ast.js +++ b/lib/l10n/ast.js @@ -102,7 +102,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Instala ún d'estos locales nel to sistema y reanicia'l sirvidor web", "Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.", "PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?", "Please ask your server administrator to restart the web server." : "Por favor, entruga al to alministrador pa reaniciar el sirvidor web.", diff --git a/lib/l10n/ast.json b/lib/l10n/ast.json index 0f6cfa91c59..788455ab179 100644 --- a/lib/l10n/ast.json +++ b/lib/l10n/ast.json @@ -100,7 +100,6 @@ "Please install one of these locales on your system and restart your webserver." : "Instala ún d'estos locales nel to sistema y reanicia'l sirvidor web", "Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.", "PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?", "Please ask your server administrator to restart the web server." : "Por favor, entruga al to alministrador pa reaniciar el sirvidor web.", diff --git a/lib/l10n/az.js b/lib/l10n/az.js index b69c06a6a8a..fa7a457a1c2 100644 --- a/lib/l10n/az.js +++ b/lib/l10n/az.js @@ -39,7 +39,6 @@ OC.L10N.register( "Share type %s is not valid for %s" : "Yayımlanma tipi %s etibarlı deyil %s üçün", "A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir", "A valid password must be provided" : "Düzgün şifrə daxil edilməlidir", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP göründüyü kimi, daxili doc bloklarının ayrılması işini görəcək. Bu bəzi özək proqramlarını əlçatılmaz edə bilər.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu ola bilər ki, cache/accelerator such tərəfindən cağırılıb hansi ki, Zend OPcache və eAccelerator-da olduğu kimidir." }, "nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/az.json b/lib/l10n/az.json index 66c3e77e931..0b10e9b3794 100644 --- a/lib/l10n/az.json +++ b/lib/l10n/az.json @@ -37,7 +37,6 @@ "Share type %s is not valid for %s" : "Yayımlanma tipi %s etibarlı deyil %s üçün", "A valid username must be provided" : "Düzgün istifadəçi adı daxil edilməlidir", "A valid password must be provided" : "Düzgün şifrə daxil edilməlidir", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP göründüyü kimi, daxili doc bloklarının ayrılması işini görəcək. Bu bəzi özək proqramlarını əlçatılmaz edə bilər.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu ola bilər ki, cache/accelerator such tərəfindən cağırılıb hansi ki, Zend OPcache və eAccelerator-da olduğu kimidir." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js index 1320491be01..986884d7310 100644 --- a/lib/l10n/bg_BG.js +++ b/lib/l10n/bg_BG.js @@ -113,7 +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 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 модулите са инсталирани, но все още се обявяват като липсващи?", "Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.", diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json index 60f21770939..6db0d8894e8 100644 --- a/lib/l10n/bg_BG.json +++ b/lib/l10n/bg_BG.json @@ -111,7 +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 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 модулите са инсталирани, но все още се обявяват като липсващи?", "Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.", diff --git a/lib/l10n/bs.js b/lib/l10n/bs.js index 83ddd6624d7..004d5cd2aac 100644 --- a/lib/l10n/bs.js +++ b/lib/l10n/bs.js @@ -13,7 +13,6 @@ OC.L10N.register( "For the best results, please consider using a GNU/Linux server instead." : "Umjesto toga, za najbolje rezultate, molimo razmislite o mogućnosti korištenje GNU/Linux servera.", "A valid username must be provided" : "Nužno je navesti valjano korisničko ime", "A valid password must be provided" : "Nužno je navesti valjanu lozinku", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen da se skine inline doc blokova. To će nekoliko osnovnih aplikacija učiniti nedostupnim.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemorisanja kao što je Zend OPcache ili eAccelerator." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/lib/l10n/bs.json b/lib/l10n/bs.json index c6abd080fd9..f4da9911f97 100644 --- a/lib/l10n/bs.json +++ b/lib/l10n/bs.json @@ -11,7 +11,6 @@ "For the best results, please consider using a GNU/Linux server instead." : "Umjesto toga, za najbolje rezultate, molimo razmislite o mogućnosti korištenje GNU/Linux servera.", "A valid username must be provided" : "Nužno je navesti valjano korisničko ime", "A valid password must be provided" : "Nužno je navesti valjanu lozinku", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen da se skine inline doc blokova. To će nekoliko osnovnih aplikacija učiniti nedostupnim.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemorisanja kao što je Zend OPcache ili eAccelerator." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js index 136751f1f7b..d7c908fee30 100644 --- a/lib/l10n/ca.js +++ b/lib/l10n/ca.js @@ -101,7 +101,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.", "Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.", "PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?", "Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.", diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json index 822bf14e36c..0622ea4e2eb 100644 --- a/lib/l10n/ca.json +++ b/lib/l10n/ca.json @@ -99,7 +99,6 @@ "Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.", "Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.", "PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?", "Please ask your server administrator to restart the web server." : "Demaneu a l'administrador que reinici el servidor web.", diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js index d19306a6d3f..01817f5cde5 100644 --- a/lib/l10n/cs_CZ.js +++ b/lib/l10n/cs_CZ.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "Jméno souboru je rezervované slovo", "File name contains at least one invalid character" : "Jméno souboru obsahuje nejméně jeden neplatný znak", "File name is too long" : "Jméno souboru je moc dlouhé", + "Can't read file" : "Nelze přečíst soubor", "App directory already exists" : "Adresář aplikace již existuje", "Can't create app folder. Please fix permissions. %s" : "Nelze vytvořit složku aplikace. Opravte práva souborů. %s", "No source specified when installing app" : "Nebyl zadán zdroj při instalaci aplikace", @@ -131,9 +132,9 @@ OC.L10N.register( "PHP module %s not installed." : "PHP modul %s není nainstalován.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP hodnota \"%s\" není nastavena na \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload je nastaven 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 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í.", + "PHP is apparently set up 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 znepřístupnění mnoha důležitý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í?", "Please ask your server administrator to restart the web server." : "Požádejte svého správce systému o restart webového serveru.", diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json index 3b4e01fefd1..ab5e4662633 100644 --- a/lib/l10n/cs_CZ.json +++ b/lib/l10n/cs_CZ.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "Jméno souboru je rezervované slovo", "File name contains at least one invalid character" : "Jméno souboru obsahuje nejméně jeden neplatný znak", "File name is too long" : "Jméno souboru je moc dlouhé", + "Can't read file" : "Nelze přečíst soubor", "App directory already exists" : "Adresář aplikace již existuje", "Can't create app folder. Please fix permissions. %s" : "Nelze vytvořit složku aplikace. Opravte práva souborů. %s", "No source specified when installing app" : "Nebyl zadán zdroj při instalaci aplikace", @@ -129,9 +130,9 @@ "PHP module %s not installed." : "PHP modul %s není nainstalován.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP hodnota \"%s\" není nastavena na \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload je nastaven 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 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í.", + "PHP is apparently set up 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 znepřístupnění mnoha důležitý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í?", "Please ask your server administrator to restart the web server." : "Požádejte svého správce systému o restart webového serveru.", diff --git a/lib/l10n/da.js b/lib/l10n/da.js index 0647d110366..4916287c2dc 100644 --- a/lib/l10n/da.js +++ b/lib/l10n/da.js @@ -131,7 +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 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?", "Please ask your server administrator to restart the web server." : "Du bedes anmode din serveradministrator om at genstarte webserveren.", diff --git a/lib/l10n/da.json b/lib/l10n/da.json index 0fd2986f905..92667d548c0 100644 --- a/lib/l10n/da.json +++ b/lib/l10n/da.json @@ -129,7 +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 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?", "Please ask your server administrator to restart the web server." : "Du bedes anmode din serveradministrator om at genstarte webserveren.", diff --git a/lib/l10n/de.js b/lib/l10n/de.js index f501a65da8a..39ee0169d7c 100644 --- a/lib/l10n/de.js +++ b/lib/l10n/de.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", "File name contains at least one invalid character" : "Der Dateiname enthält mindestens ein ungültiges Zeichen", "File name is too long" : "Dateiname ist zu lang", + "Can't read file" : "Datei kann nicht gelesen werden", "App directory already exists" : "Das Applikationsverzeichnis existiert bereits", "Can't create app folder. Please fix permissions. %s" : "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s", "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben", @@ -131,9 +132,9 @@ 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", - "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", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt", "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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Bitte kontaktiere Deinen Server-Administrator und bitte um den Neustart des Webservers.", diff --git a/lib/l10n/de.json b/lib/l10n/de.json index 2d384d00a48..513c75fc94a 100644 --- a/lib/l10n/de.json +++ b/lib/l10n/de.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", "File name contains at least one invalid character" : "Der Dateiname enthält mindestens ein ungültiges Zeichen", "File name is too long" : "Dateiname ist zu lang", + "Can't read file" : "Datei kann nicht gelesen werden", "App directory already exists" : "Das Applikationsverzeichnis existiert bereits", "Can't create app folder. Please fix permissions. %s" : "Es kann kein Applikationsordner erstellt werden. Bitte passe die Berechtigungen an. %s", "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben", @@ -129,9 +130,9 @@ "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", - "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", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt", "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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Bitte kontaktiere Deinen Server-Administrator und bitte um den Neustart des Webservers.", diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index a813a654e35..bbc3919647f 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", "File name contains at least one invalid character" : "Der Dateiname enthält mindestens ein ungültiges Zeichen", "File name is too long" : "Dateiname ist zu lang", + "Can't read file" : "Datei kann nicht gelesen werden", "App directory already exists" : "Der Ordner für die App ist bereits vorhanden.", "Can't create app folder. Please fix permissions. %s" : "Der Ordner für die App konnte nicht angelegt werden. Bitte überprüfen Sie die Ordner- und Dateirechte und passen Sie diese entsprechend an. %s", "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben", @@ -131,9 +132,9 @@ 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", - "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", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt", "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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Bitte kontaktieren Sie Ihren Server-Administrator und bitten Sie um den Neustart des Webservers.", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index c92e972bdbb..e1433fb5339 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "Der Dateiname ist ein reserviertes Wort", "File name contains at least one invalid character" : "Der Dateiname enthält mindestens ein ungültiges Zeichen", "File name is too long" : "Dateiname ist zu lang", + "Can't read file" : "Datei kann nicht gelesen werden", "App directory already exists" : "Der Ordner für die App ist bereits vorhanden.", "Can't create app folder. Please fix permissions. %s" : "Der Ordner für die App konnte nicht angelegt werden. Bitte überprüfen Sie die Ordner- und Dateirechte und passen Sie diese entsprechend an. %s", "No source specified when installing app" : "Für die Installation der Applikation wurde keine Quelle angegeben", @@ -129,9 +130,9 @@ "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", - "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", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload ist nicht auf den erwarteten Wert „0“, sondern stattdessen auf „%s“ gesetzt", "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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Bitte kontaktieren Sie Ihren Server-Administrator und bitten Sie um den Neustart des Webservers.", diff --git a/lib/l10n/el.js b/lib/l10n/el.js index 9b15850dbdb..9d05e40e533 100644 --- a/lib/l10n/el.js +++ b/lib/l10n/el.js @@ -41,6 +41,7 @@ OC.L10N.register( "File name is a reserved word" : "Το όνομα αρχείου είναι λέξη που έχει δεσμευτεί", "File name contains at least one invalid character" : "Το όνομα αρχείου περιέχει έναν τουλάχιστον μη έγκυρο χαρακτήρα", "File name is too long" : "Το όνομα αρχείου είνια πολύ μεγάλο", + "Can't read file" : "Αδυναμία ανάγνωσης αρχείου", "App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη", "Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s", "No source specified when installing app" : "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής", @@ -128,9 +129,9 @@ 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 να επαναλειτουργήσει", - "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"", + "mbstring.func_overload is set to \"%s\" instead of 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). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Η PHP φαίνεται να είναι ρυθμισμένη ώστε να αφαιρεί inline doc blocks. Αυτό θα καταστήσει πολλές βασικές εφαρμογές μη διαθέσιμες.", "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 έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;", "Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.", diff --git a/lib/l10n/el.json b/lib/l10n/el.json index 45a39a98096..84d2b8f4925 100644 --- a/lib/l10n/el.json +++ b/lib/l10n/el.json @@ -39,6 +39,7 @@ "File name is a reserved word" : "Το όνομα αρχείου είναι λέξη που έχει δεσμευτεί", "File name contains at least one invalid character" : "Το όνομα αρχείου περιέχει έναν τουλάχιστον μη έγκυρο χαρακτήρα", "File name is too long" : "Το όνομα αρχείου είνια πολύ μεγάλο", + "Can't read file" : "Αδυναμία ανάγνωσης αρχείου", "App directory already exists" : "Ο κατάλογος εφαρμογών υπάρχει ήδη", "Can't create app folder. Please fix permissions. %s" : "Δεν είναι δυνατόν να δημιουργηθεί ο φάκελος εφαρμογής. Παρακαλώ διορθώστε τις άδειες πρόσβασης. %s", "No source specified when installing app" : "Δεν προσδιορίστηκε πηγή κατά την εγκατάσταση της εφαρμογής", @@ -126,9 +127,9 @@ "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 να επαναλειτουργήσει", - "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"", + "mbstring.func_overload is set to \"%s\" instead of 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). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Η PHP φαίνεται να είναι ρυθμισμένη ώστε να αφαιρεί inline doc blocks. Αυτό θα καταστήσει πολλές βασικές εφαρμογές μη διαθέσιμες.", "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 έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;", "Please ask your server administrator to restart the web server." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να επανεκκινήσει το διακομιστή δικτύου σας.", diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index eaa94cb2d1b..2e57ab56533 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "File name is a reserved word", "File name contains at least one invalid character" : "File name contains at least one invalid character", "File name is too long" : "File name is too long", + "Can't read file" : "Can't read file", "App directory already exists" : "App directory already exists", "Can't create app folder. Please fix permissions. %s" : "Can't create app folder. Please fix permissions. %s", "No source specified when installing app" : "No source specified when installing app", @@ -131,7 +132,7 @@ 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 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.", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini", "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?", "Please ask your server administrator to restart the web server." : "Please ask your server administrator to restart the web server.", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index 8c7f2b820eb..58d2eac6e6c 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "File name is a reserved word", "File name contains at least one invalid character" : "File name contains at least one invalid character", "File name is too long" : "File name is too long", + "Can't read file" : "Can't read file", "App directory already exists" : "App directory already exists", "Can't create app folder. Please fix permissions. %s" : "Can't create app folder. Please fix permissions. %s", "No source specified when installing app" : "No source specified when installing app", @@ -129,7 +130,7 @@ "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 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.", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini", "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?", "Please ask your server administrator to restart the web server." : "Please ask your server administrator to restart the web server.", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index c9259e77695..8eb15106ed1 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "El nombre de archivo es una palabra reservada", "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un carácter inválido", "File name is too long" : "El nombre del archivo es demasiado largo", + "Can't read file" : "No se puede leer archivo", "App directory already exists" : "El directorio de la aplicación ya existe", "Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s", "No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación", @@ -131,9 +132,9 @@ 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", - "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\"", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está dispuesta en \"%s\" en lugar del valor esperado \"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.", + "PHP is apparently set up 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 estén inaccesibles.", "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", "Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index 7d0978827e1..81983ec11f4 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "El nombre de archivo es una palabra reservada", "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un carácter inválido", "File name is too long" : "El nombre del archivo es demasiado largo", + "Can't read file" : "No se puede leer archivo", "App directory already exists" : "El directorio de la aplicación ya existe", "Can't create app folder. Please fix permissions. %s" : "No se puede crear la carpeta de la aplicación. Corrija los permisos. %s", "No source specified when installing app" : "No se ha especificado origen cuando se ha instalado la aplicación", @@ -129,9 +130,9 @@ "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", - "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\"", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está dispuesta en \"%s\" en lugar del valor esperado \"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.", + "PHP is apparently set up 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 estén inaccesibles.", "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", "Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.", diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js index d672d9f96af..284c9556322 100644 --- a/lib/l10n/et_EE.js +++ b/lib/l10n/et_EE.js @@ -99,7 +99,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.", "Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.", "PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?", "Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.", diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json index 2bb262b8e5e..b19225c16e2 100644 --- a/lib/l10n/et_EE.json +++ b/lib/l10n/et_EE.json @@ -97,7 +97,6 @@ "Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.", "Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.", "PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?", "Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.", diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js index 60ee82cdb61..ce77065574f 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.", - "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?", "Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.", diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json index 80a932eb70a..6fa2fc55a16 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.", - "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?", "Please ask your server administrator to restart the web server." : "Mesedez eskatu zerbitzariaren kudeatzaileari web zerbitzaria berrabiarazteko.", diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js index 54161ba47e6..28d4556cc12 100644 --- a/lib/l10n/fi_FI.js +++ b/lib/l10n/fi_FI.js @@ -39,8 +39,10 @@ OC.L10N.register( "web services under your control" : "verkkopalvelut hallinnassasi", "Empty filename is not allowed" : "Tiedostonimi ei voi olla tyhjä", "Dot files are not allowed" : "Pistetiedostot eivät ole sallittuja", + "4-byte characters are not supported in file names" : "4 tavun merkit eivät ole tuettuja tiedostojen nimissä", "File name contains at least one invalid character" : "Tiedoston nimi sisältää ainakin yhden virheellisen merkin", "File name is too long" : "Tiedoston nimi on liian pitkä", + "Can't read file" : "Tiedostoa ei voi lukea", "App directory already exists" : "Sovelluskansio on jo olemassa", "Can't create app folder. Please fix permissions. %s" : "Sovelluskansion luominen ei onnistu. Korjaa käyttöoikeudet. %s", "No source specified when installing app" : "Lähdettä ei määritelty sovellusta asennettaessa", @@ -87,6 +89,7 @@ OC.L10N.register( "Sharing %s failed, because %s is not a member of the group %s" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s ei ole ryhmän %s jäsen", "You need to provide a password to create a public link, only protected links are allowed" : "Anna salasana luodaksesi julkisen linkin. Vain suojatut linkit ovat sallittuja", "Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Kohteen %s jakaminen epäonnistui, kohdetta %s ei löytynyt. Kenties palvelin ei ole juuri nyt tavoitettavissa.", "Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt", "Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt", "Cannot clear expiration date. Shares are required to have an expiration date." : "Vanhenemispäivän tyhjentäminen ei onnistu. Jaoille on määritelty pakolliseksi vanhenemispäivä.", @@ -112,7 +115,7 @@ OC.L10N.register( "PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-asetusta \"%s\" ei ole asetettu arvoon \"%s\".", "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", + "mbstring.func_overload is set to \"%s\" instead of 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", "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.", diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json index 35bf7f8257d..d6842c69102 100644 --- a/lib/l10n/fi_FI.json +++ b/lib/l10n/fi_FI.json @@ -37,8 +37,10 @@ "web services under your control" : "verkkopalvelut hallinnassasi", "Empty filename is not allowed" : "Tiedostonimi ei voi olla tyhjä", "Dot files are not allowed" : "Pistetiedostot eivät ole sallittuja", + "4-byte characters are not supported in file names" : "4 tavun merkit eivät ole tuettuja tiedostojen nimissä", "File name contains at least one invalid character" : "Tiedoston nimi sisältää ainakin yhden virheellisen merkin", "File name is too long" : "Tiedoston nimi on liian pitkä", + "Can't read file" : "Tiedostoa ei voi lukea", "App directory already exists" : "Sovelluskansio on jo olemassa", "Can't create app folder. Please fix permissions. %s" : "Sovelluskansion luominen ei onnistu. Korjaa käyttöoikeudet. %s", "No source specified when installing app" : "Lähdettä ei määritelty sovellusta asennettaessa", @@ -85,6 +87,7 @@ "Sharing %s failed, because %s is not a member of the group %s" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s ei ole ryhmän %s jäsen", "You need to provide a password to create a public link, only protected links are allowed" : "Anna salasana luodaksesi julkisen linkin. Vain suojatut linkit ovat sallittuja", "Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Kohteen %s jakaminen epäonnistui, kohdetta %s ei löytynyt. Kenties palvelin ei ole juuri nyt tavoitettavissa.", "Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt", "Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt", "Cannot clear expiration date. Shares are required to have an expiration date." : "Vanhenemispäivän tyhjentäminen ei onnistu. Jaoille on määritelty pakolliseksi vanhenemispäivä.", @@ -110,7 +113,7 @@ "PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP-asetusta \"%s\" ei ole asetettu arvoon \"%s\".", "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", + "mbstring.func_overload is set to \"%s\" instead of 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", "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.", diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js index 45f6db84447..819a4a76be2 100644 --- a/lib/l10n/fr.js +++ b/lib/l10n/fr.js @@ -43,6 +43,7 @@ OC.L10N.register( "File name is a reserved word" : "Ce nom de fichier est un mot réservé", "File name contains at least one invalid character" : "Le nom de fichier contient un (des) caractère(s) non valide(s)", "File name is too long" : "Nom de fichier trop long", + "Can't read file" : "Impossible de lire le fichier", "App directory already exists" : "Le dossier de l'application existe déjà", "Can't create app folder. Please fix permissions. %s" : "Impossible de créer le dossier de l'application. Corrigez les droits d'accès. %s", "No source specified when installing app" : "Aucune source spécifiée pour installer l'application", @@ -130,9 +131,9 @@ 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", - "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", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload est à \"%s\" alors que la valeur \"0\" est 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.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs PHPdoc 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 ?", "Please ask your server administrator to restart the web server." : "Veuillez demander à votre administrateur serveur de redémarrer le serveur web.", diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json index 6e706dae417..d0801954c1b 100644 --- a/lib/l10n/fr.json +++ b/lib/l10n/fr.json @@ -41,6 +41,7 @@ "File name is a reserved word" : "Ce nom de fichier est un mot réservé", "File name contains at least one invalid character" : "Le nom de fichier contient un (des) caractère(s) non valide(s)", "File name is too long" : "Nom de fichier trop long", + "Can't read file" : "Impossible de lire le fichier", "App directory already exists" : "Le dossier de l'application existe déjà", "Can't create app folder. Please fix permissions. %s" : "Impossible de créer le dossier de l'application. Corrigez les droits d'accès. %s", "No source specified when installing app" : "Aucune source spécifiée pour installer l'application", @@ -128,9 +129,9 @@ "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", - "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", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload est à \"%s\" alors que la valeur \"0\" est 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.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs PHPdoc 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 ?", "Please ask your server administrator to restart the web server." : "Veuillez demander à votre administrateur serveur de redémarrer le serveur web.", diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js index 10f10ec123d..cbb6914ddef 100644 --- a/lib/l10n/gl.js +++ b/lib/l10n/gl.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "O nome de ficheiro é unha palabra reservada", "File name contains at least one invalid character" : "O nome de ficheiro contén algún carácter incorrecto", "File name is too long" : "O nome de ficheiro é longo de máis", + "Can't read file" : "Non é posíbel ler o ficheiro", "App directory already exists" : "Xa existe o directorio da aplicación", "Can't create app folder. Please fix permissions. %s" : "Non é posíbel crear o cartafol de aplicacións. Corrixa os permisos. %s", "No source specified when installing app" : "Non foi especificada ningunha orixe ao instalar a aplicación", @@ -131,9 +132,9 @@ OC.L10N.register( "PHP module %s not installed." : "O módulo PHP %s non está instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "O axuste de PHP «%s» non está estabelecido a «%s».", "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", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Semella que PHP foi configurado para quitar 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?", "Please ask your server administrator to restart the web server." : "Pregúntelle ao administrador do servidor polo reinicio do servidor web..", diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json index d31cf2c4284..393eca2d9a1 100644 --- a/lib/l10n/gl.json +++ b/lib/l10n/gl.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "O nome de ficheiro é unha palabra reservada", "File name contains at least one invalid character" : "O nome de ficheiro contén algún carácter incorrecto", "File name is too long" : "O nome de ficheiro é longo de máis", + "Can't read file" : "Non é posíbel ler o ficheiro", "App directory already exists" : "Xa existe o directorio da aplicación", "Can't create app folder. Please fix permissions. %s" : "Non é posíbel crear o cartafol de aplicacións. Corrixa os permisos. %s", "No source specified when installing app" : "Non foi especificada ningunha orixe ao instalar a aplicación", @@ -129,9 +130,9 @@ "PHP module %s not installed." : "O módulo PHP %s non está instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "O axuste de PHP «%s» non está estabelecido a «%s».", "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", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Semella que PHP foi configurado para quitar 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?", "Please ask your server administrator to restart the web server." : "Pregúntelle ao administrador do servidor polo reinicio do servidor web..", diff --git a/lib/l10n/hr.js b/lib/l10n/hr.js index 6d204ff6647..a885d452d9c 100644 --- a/lib/l10n/hr.js +++ b/lib/l10n/hr.js @@ -109,7 +109,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.", "Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.", "PHP module %s not installed." : "PHP modul %s nije instaliran.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen na strip inline doc blocks. To će nekoliko osnovnih aplikacija učiniti nedostupnima.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemoriranja kao što je Zend OPcache ilieAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?", "Please ask your server administrator to restart the web server." : "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.", diff --git a/lib/l10n/hr.json b/lib/l10n/hr.json index 3f42d0beb60..40ef41d0a38 100644 --- a/lib/l10n/hr.json +++ b/lib/l10n/hr.json @@ -107,7 +107,6 @@ "Please install one of these locales on your system and restart your webserver." : "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.", "Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.", "PHP module %s not installed." : "PHP modul %s nije instaliran.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen na strip inline doc blocks. To će nekoliko osnovnih aplikacija učiniti nedostupnima.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemoriranja kao što je Zend OPcache ilieAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?", "Please ask your server administrator to restart the web server." : "Molimo zamolite svog administratora poslužitelja da ponovno pokrene web poslužitelj.", diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js index df10bbc59e2..d8c67ec5cdf 100644 --- a/lib/l10n/hu_HU.js +++ b/lib/l10n/hu_HU.js @@ -102,7 +102,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", "PHP module %s not installed." : "A %s PHP modul nincs telepítve.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.", "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?", "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!", diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json index d4da38b9269..8f281ecb3fe 100644 --- a/lib/l10n/hu_HU.json +++ b/lib/l10n/hu_HU.json @@ -100,7 +100,6 @@ "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", "PHP module %s not installed." : "A %s PHP modul nincs telepítve.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.", "PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?", "Please ask your server administrator to restart the web server." : "Kérje meg a rendszergazdát, hogy indítsa újra a webszervert!", diff --git a/lib/l10n/id.js b/lib/l10n/id.js index e2bb862aefa..afe6f97a182 100644 --- a/lib/l10n/id.js +++ b/lib/l10n/id.js @@ -41,8 +41,10 @@ OC.L10N.register( "Empty filename is not allowed" : "Nama berkas kosong tidak diperbolehkan", "Dot files are not allowed" : "Berkas titik tidak diperbolehkan", "4-byte characters are not supported in file names" : "Karakter 4 byte tidak didukung dalam nama berkas", + "File name is a reserved word" : "Nama berkas merupakan kata yang disediakan", "File name contains at least one invalid character" : "Nama berkas berisi setidaknya satu karakter yang tidak sah.", "File name is too long" : "Nama berkas terlalu panjang", + "Can't read file" : "Tidak dapat membaca berkas", "App directory already exists" : "Direktori Apl sudah ada", "Can't create app folder. Please fix permissions. %s" : "Tidak dapat membuat folder apl. Silakan perbaiki perizinan. %s", "No source specified when installing app" : "Tidak ada sumber yang ditentukan saat menginstal apl", @@ -130,7 +132,9 @@ 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", - "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.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload diatur menjadi \"%s\" bukan nilai yang diharapkan \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Untuk memperbaiki masalah ini, atur <code>mbstring.func_overload</code> menjadi <code>0</code> pada berkas php.ini Anda", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya PHP diatur untuk memotong inline doc blocks. Hal ini akan menyebabkan beberapa aplikasi inti menjadi 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?", "Please ask your server administrator to restart the web server." : "Mohon minta administrator Anda untuk menjalankan ulang server web.", @@ -140,6 +144,7 @@ OC.L10N.register( "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pastikan bahwa Anda memiliki PostgreSQL >= 9 atau periksa log untuk informasi lebih lanjut tentang kesalahan", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mohon ubah perizinan menjadi 0770 sehingga direktori tersebut tidak dapat dilihat oleh pengguna lain.", "Data directory (%s) is readable by other users" : "Direktori data (%s) dapat dibaca oleh pengguna lain", + "Data directory (%s) must be an absolute path" : "Direktori Data (%s) harus berupa lokasi lengkap", "Check the value of \"datadirectory\" in your configuration" : "Periksa nilai \"datadirectory\" di konfigurasi Anda", "Data directory (%s) is invalid" : "Direktori data (%s) tidak sah", "Please check that the data directory contains a file \".ocdata\" in its root." : "Mohon periksa apakah direktori data berisi sebuah berkas \".ocdata\" di direktori induknya.", diff --git a/lib/l10n/id.json b/lib/l10n/id.json index c74d5ab2121..e56619e28ca 100644 --- a/lib/l10n/id.json +++ b/lib/l10n/id.json @@ -39,8 +39,10 @@ "Empty filename is not allowed" : "Nama berkas kosong tidak diperbolehkan", "Dot files are not allowed" : "Berkas titik tidak diperbolehkan", "4-byte characters are not supported in file names" : "Karakter 4 byte tidak didukung dalam nama berkas", + "File name is a reserved word" : "Nama berkas merupakan kata yang disediakan", "File name contains at least one invalid character" : "Nama berkas berisi setidaknya satu karakter yang tidak sah.", "File name is too long" : "Nama berkas terlalu panjang", + "Can't read file" : "Tidak dapat membaca berkas", "App directory already exists" : "Direktori Apl sudah ada", "Can't create app folder. Please fix permissions. %s" : "Tidak dapat membuat folder apl. Silakan perbaiki perizinan. %s", "No source specified when installing app" : "Tidak ada sumber yang ditentukan saat menginstal apl", @@ -128,7 +130,9 @@ "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", - "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.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload diatur menjadi \"%s\" bukan nilai yang diharapkan \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Untuk memperbaiki masalah ini, atur <code>mbstring.func_overload</code> menjadi <code>0</code> pada berkas php.ini Anda", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya PHP diatur untuk memotong inline doc blocks. Hal ini akan menyebabkan beberapa aplikasi inti menjadi 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?", "Please ask your server administrator to restart the web server." : "Mohon minta administrator Anda untuk menjalankan ulang server web.", @@ -138,6 +142,7 @@ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Pastikan bahwa Anda memiliki PostgreSQL >= 9 atau periksa log untuk informasi lebih lanjut tentang kesalahan", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Mohon ubah perizinan menjadi 0770 sehingga direktori tersebut tidak dapat dilihat oleh pengguna lain.", "Data directory (%s) is readable by other users" : "Direktori data (%s) dapat dibaca oleh pengguna lain", + "Data directory (%s) must be an absolute path" : "Direktori Data (%s) harus berupa lokasi lengkap", "Check the value of \"datadirectory\" in your configuration" : "Periksa nilai \"datadirectory\" di konfigurasi Anda", "Data directory (%s) is invalid" : "Direktori data (%s) tidak sah", "Please check that the data directory contains a file \".ocdata\" in its root." : "Mohon periksa apakah direktori data berisi sebuah berkas \".ocdata\" di direktori induknya.", diff --git a/lib/l10n/it.js b/lib/l10n/it.js index b2ecb0c1b25..e16004cb95b 100644 --- a/lib/l10n/it.js +++ b/lib/l10n/it.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "Il nome del file è una parola riservata", "File name contains at least one invalid character" : "Il nome del file contiene almeno un carattere non valido", "File name is too long" : "Il nome del file è troppo lungo", + "Can't read file" : "Impossibile leggere il file", "App directory already exists" : "La cartella dell'applicazione esiste già", "Can't create app folder. Please fix permissions. %s" : "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s", "No source specified when installing app" : "Nessuna fonte specificata durante l'installazione dell'applicazione", @@ -131,9 +132,9 @@ OC.L10N.register( "PHP module %s not installed." : "Il modulo PHP %s non è installato.", "PHP setting \"%s\" is not set to \"%s\"." : "L'impostazione \"%s\" di PHP non è configurata a \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.", diff --git a/lib/l10n/it.json b/lib/l10n/it.json index bed8ecffbb9..57f833529ef 100644 --- a/lib/l10n/it.json +++ b/lib/l10n/it.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "Il nome del file è una parola riservata", "File name contains at least one invalid character" : "Il nome del file contiene almeno un carattere non valido", "File name is too long" : "Il nome del file è troppo lungo", + "Can't read file" : "Impossibile leggere il file", "App directory already exists" : "La cartella dell'applicazione esiste già", "Can't create app folder. Please fix permissions. %s" : "Impossibile creare la cartella dell'applicazione. Correggi i permessi. %s", "No source specified when installing app" : "Nessuna fonte specificata durante l'installazione dell'applicazione", @@ -129,9 +130,9 @@ "PHP module %s not installed." : "Il modulo PHP %s non è installato.", "PHP setting \"%s\" is not set to \"%s\"." : "L'impostazione \"%s\" di PHP non è configurata a \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Chiedi all'amministratore di riavviare il server web.", diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js index 096d23d8b23..56ac5c84220 100644 --- a/lib/l10n/ja.js +++ b/lib/l10n/ja.js @@ -131,7 +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 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 モジュールはインストールされていますが、まだ一覧に表示されていますか?", "Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。", diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json index 239b1f88b8d..b9a4869e9b2 100644 --- a/lib/l10n/ja.json +++ b/lib/l10n/ja.json @@ -129,7 +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 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 モジュールはインストールされていますが、まだ一覧に表示されていますか?", "Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。", diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js index 5773154ff70..a8b9f3def7b 100644 --- a/lib/l10n/ko.js +++ b/lib/l10n/ko.js @@ -131,9 +131,7 @@ 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가 다시 실행됩니다", - "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 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?", "Please ask your server administrator to restart the web server." : "서버 관리자에게 웹 서버 재시작을 요청하십시오.", diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json index 1e7f247ca76..9a86f7f71cc 100644 --- a/lib/l10n/ko.json +++ b/lib/l10n/ko.json @@ -129,9 +129,7 @@ "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가 다시 실행됩니다", - "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 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?", "Please ask your server administrator to restart the web server." : "서버 관리자에게 웹 서버 재시작을 요청하십시오.", diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js index 67e073cf45e..25503f21866 100644 --- a/lib/l10n/nb_NO.js +++ b/lib/l10n/nb_NO.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "Filnavnet er et reservert ord", "File name contains at least one invalid character" : "Filnavnet inneholder minst ett ulovlig tegn", "File name is too long" : "Filnavnet er for langt", + "Can't read file" : "Kan ikke lese fil", "App directory already exists" : "App-mappe finnes allerede", "Can't create app folder. Please fix permissions. %s" : "Kan ikke opprette app-mappe. Vennligst ordne opp i tillatelser. %s", "No source specified when installing app" : "Ingen kilde spesifisert ved installering av app", @@ -84,6 +85,7 @@ OC.L10N.register( "Set an admin password." : "Sett et admin-passord.", "Can't create or write into the data directory %s" : "Kan ikke opprette eller skrive i datamappen %s", "%s shared »%s« with you" : "%s delte »%s« med deg", + "%s via %s" : "%s via %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deling av %s feilet, fordi serveren ikke tillater delinger fra type %i", "Sharing %s failed, because the file does not exist" : "Deling av %s feilet, fordi filen ikke eksisterer", "You are not allowed to share %s" : "Du har ikke lov til å dele %s", @@ -116,6 +118,8 @@ OC.L10N.register( "A valid password must be provided" : "Oppgi et gyldig passord", "The username is already being used" : "Brukernavnet er allerede i bruk", "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen databasedrivere (sqlite, mysql, or postgresql) installert.", + "Microsoft Windows Platform is not supported" : "Microsoft Windows-plattform støttes ikke", + "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>." : "Kjøring av ownCloud Server på Microsoft Windows-plattformen er ikke støttet. Vi foreslår at du bruker en Linux-server i en virtuell maskin hvis du ikke har mulighet til å migrere selve serveren. Du finner Linux-pakker og lett installerbare avbildninger for virtuelle maskiner på <a href=\"%s\">%s</a>. For å migrere eksisterende installasjoner til Linux finner du tips og et migrerings-script i <a href=\"%s\">dokumentasjonen vår</a>.", "Cannot write into \"config\" directory" : "Kan ikke skrive i \"config\"-mappen", "Cannot write into \"apps\" directory" : "Kan ikke skrive i \"apps\"-mappen", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til apps-mappen%s eller ved å deaktivere app-butikken i config-filen.", @@ -128,7 +132,9 @@ 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 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.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload er satt til \"%s\" i stedet for den forventede verdien \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Sett <code>mbstring.func_overload</code> til <code>0</code> in php.ini for å fikse dette problemet", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Be server-administratoren om å starte web-serveren på nytt.", diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json index 63f6d2c6699..e495dc5ac7b 100644 --- a/lib/l10n/nb_NO.json +++ b/lib/l10n/nb_NO.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "Filnavnet er et reservert ord", "File name contains at least one invalid character" : "Filnavnet inneholder minst ett ulovlig tegn", "File name is too long" : "Filnavnet er for langt", + "Can't read file" : "Kan ikke lese fil", "App directory already exists" : "App-mappe finnes allerede", "Can't create app folder. Please fix permissions. %s" : "Kan ikke opprette app-mappe. Vennligst ordne opp i tillatelser. %s", "No source specified when installing app" : "Ingen kilde spesifisert ved installering av app", @@ -82,6 +83,7 @@ "Set an admin password." : "Sett et admin-passord.", "Can't create or write into the data directory %s" : "Kan ikke opprette eller skrive i datamappen %s", "%s shared »%s« with you" : "%s delte »%s« med deg", + "%s via %s" : "%s via %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deling av %s feilet, fordi serveren ikke tillater delinger fra type %i", "Sharing %s failed, because the file does not exist" : "Deling av %s feilet, fordi filen ikke eksisterer", "You are not allowed to share %s" : "Du har ikke lov til å dele %s", @@ -114,6 +116,8 @@ "A valid password must be provided" : "Oppgi et gyldig passord", "The username is already being used" : "Brukernavnet er allerede i bruk", "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen databasedrivere (sqlite, mysql, or postgresql) installert.", + "Microsoft Windows Platform is not supported" : "Microsoft Windows-plattform støttes ikke", + "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>." : "Kjøring av ownCloud Server på Microsoft Windows-plattformen er ikke støttet. Vi foreslår at du bruker en Linux-server i en virtuell maskin hvis du ikke har mulighet til å migrere selve serveren. Du finner Linux-pakker og lett installerbare avbildninger for virtuelle maskiner på <a href=\"%s\">%s</a>. For å migrere eksisterende installasjoner til Linux finner du tips og et migrerings-script i <a href=\"%s\">dokumentasjonen vår</a>.", "Cannot write into \"config\" directory" : "Kan ikke skrive i \"config\"-mappen", "Cannot write into \"apps\" directory" : "Kan ikke skrive i \"apps\"-mappen", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Dette kan vanligvis ordnes ved %så gi web-serveren skrivetilgang til apps-mappen%s eller ved å deaktivere app-butikken i config-filen.", @@ -126,7 +130,9 @@ "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 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.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload er satt til \"%s\" i stedet for den forventede verdien \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Sett <code>mbstring.func_overload</code> til <code>0</code> in php.ini for å fikse dette problemet", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Be server-administratoren om å starte web-serveren på nytt.", diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js index 79dbfe309e0..8e4c9660328 100644 --- a/lib/l10n/nl.js +++ b/lib/l10n/nl.js @@ -44,6 +44,7 @@ OC.L10N.register( "File name is a reserved word" : "Bestandsnaam is een gereserveerd woord", "File name contains at least one invalid character" : "De bestandsnaam bevat ten minste één verboden teken", "File name is too long" : "De bestandsnaam is te lang", + "Can't read file" : "Kan bestand niet lezen", "App directory already exists" : "App directory bestaat al", "Can't create app folder. Please fix permissions. %s" : "Kan de app map niet aanmaken, Herstel de permissies. %s", "No source specified when installing app" : "Geen bron opgegeven bij installatie van de app", @@ -131,9 +132,9 @@ OC.L10N.register( "PHP module %s not installed." : "PHP module %s niet geïnstalleerd.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP instelling \"%s\" staat niet op \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Vraag uw beheerder de webserver opnieuw op te starten.", diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json index 723bf8adce0..4e22238c1a9 100644 --- a/lib/l10n/nl.json +++ b/lib/l10n/nl.json @@ -42,6 +42,7 @@ "File name is a reserved word" : "Bestandsnaam is een gereserveerd woord", "File name contains at least one invalid character" : "De bestandsnaam bevat ten minste één verboden teken", "File name is too long" : "De bestandsnaam is te lang", + "Can't read file" : "Kan bestand niet lezen", "App directory already exists" : "App directory bestaat al", "Can't create app folder. Please fix permissions. %s" : "Kan de app map niet aanmaken, Herstel de permissies. %s", "No source specified when installing app" : "Geen bron opgegeven bij installatie van de app", @@ -129,9 +130,9 @@ "PHP module %s not installed." : "PHP module %s niet geïnstalleerd.", "PHP setting \"%s\" is not set to \"%s\"." : "PHP instelling \"%s\" staat niet op \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up 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?", "Please ask your server administrator to restart the web server." : "Vraag uw beheerder de webserver opnieuw op te starten.", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 3061b182bf8..4f460f08f0d 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -113,7 +113,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Proszę zainstalować jedno z poniższych locale w Twoim systemie i uruchomić ponownie serwer www.", "Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.", "PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?", "Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index 3d0d2bff116..55f589edf60 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -111,7 +111,6 @@ "Please install one of these locales on your system and restart your webserver." : "Proszę zainstalować jedno z poniższych locale w Twoim systemie i uruchomić ponownie serwer www.", "Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.", "PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?", "Please ask your server administrator to restart the web server." : "Poproś administratora serwera o restart serwera www.", diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js index 49c21be6f42..ffdbedb9660 100644 --- a/lib/l10n/pt_BR.js +++ b/lib/l10n/pt_BR.js @@ -41,6 +41,7 @@ OC.L10N.register( "File name is a reserved word" : "O nome do arquivo é uma palavra reservada", "File name contains at least one invalid character" : "O nome do arquivo contém pelo menos um caractere inválido", "File name is too long" : "O nome do arquivo é muito longo", + "Can't read file" : "Não é possível ler arquivo", "App directory already exists" : "Diretório App já existe", "Can't create app folder. Please fix permissions. %s" : "Não é possível criar pasta app. Corrija as permissões. %s", "No source specified when installing app" : "Nenhuma fonte foi especificada enquanto instalava o aplicativo", @@ -128,9 +129,9 @@ OC.L10N.register( "PHP module %s not installed." : "Módulo PHP %s não instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "Configurações \"%s\" PHP não está configurado para \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está, aparentemente, configurado 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?", "Please ask your server administrator to restart the web server." : "Por favor, peça ao seu administrador do servidor para reiniciar o servidor web.", diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json index 7227378b0cf..50f61e2a627 100644 --- a/lib/l10n/pt_BR.json +++ b/lib/l10n/pt_BR.json @@ -39,6 +39,7 @@ "File name is a reserved word" : "O nome do arquivo é uma palavra reservada", "File name contains at least one invalid character" : "O nome do arquivo contém pelo menos um caractere inválido", "File name is too long" : "O nome do arquivo é muito longo", + "Can't read file" : "Não é possível ler arquivo", "App directory already exists" : "Diretório App já existe", "Can't create app folder. Please fix permissions. %s" : "Não é possível criar pasta app. Corrija as permissões. %s", "No source specified when installing app" : "Nenhuma fonte foi especificada enquanto instalava o aplicativo", @@ -126,9 +127,9 @@ "PHP module %s not installed." : "Módulo PHP %s não instalado.", "PHP setting \"%s\" is not set to \"%s\"." : "Configurações \"%s\" PHP não está configurado para \"%s\".", "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\"", + "mbstring.func_overload is set to \"%s\" instead of 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 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.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está, aparentemente, configurado 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?", "Please ask your server administrator to restart the web server." : "Por favor, peça ao seu administrador do servidor para reiniciar o servidor web.", diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js index 86b4a776a6f..c1f7310b6e5 100644 --- a/lib/l10n/pt_PT.js +++ b/lib/l10n/pt_PT.js @@ -127,7 +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 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?", "Please ask your server administrator to restart the web server." : "Pro favor pergunte ao seu administrador do servidor para reiniciar o servidor da internet.", diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json index 9737e2b3964..defa0723ed7 100644 --- a/lib/l10n/pt_PT.json +++ b/lib/l10n/pt_PT.json @@ -125,7 +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 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?", "Please ask your server administrator to restart the web server." : "Pro favor pergunte ao seu administrador do servidor para reiniciar o servidor da internet.", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index 01ca1d60034..9591ad0ac7d 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -131,7 +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 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 были установлены, но они все еще перечислены как недостающие?", "Please ask your server administrator to restart the web server." : "Пожалуйста, попросите вашего администратора перезапустить веб-сервер.", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 908970ec603..973a7e7fe01 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -129,7 +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 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 были установлены, но они все еще перечислены как недостающие?", "Please ask your server administrator to restart the web server." : "Пожалуйста, попросите вашего администратора перезапустить веб-сервер.", diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js index 38c18b431ef..163e2b01c68 100644 --- a/lib/l10n/sk_SK.js +++ b/lib/l10n/sk_SK.js @@ -119,7 +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 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ú?", "Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.", diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json index 031270747b7..0af94448c34 100644 --- a/lib/l10n/sk_SK.json +++ b/lib/l10n/sk_SK.json @@ -117,7 +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 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ú?", "Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.", diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js index 2f84515b1e5..360725b7985 100644 --- a/lib/l10n/sr.js +++ b/lib/l10n/sr.js @@ -131,9 +131,7 @@ OC.L10N.register( "PHP module %s not installed." : "ПХП модул %s није инсталиран.", "PHP setting \"%s\" is not set to \"%s\"." : "ПХП поставка „%s“ није постављена на „%s“.", "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 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?" : "ПХП модули су инсталирани али се и даље воде као недостајући?", "Please ask your server administrator to restart the web server." : "Замолите вашег администратора сервера да поново покрене веб сервер.", diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json index d1fe5d4fe43..f4f120b3e14 100644 --- a/lib/l10n/sr.json +++ b/lib/l10n/sr.json @@ -129,9 +129,7 @@ "PHP module %s not installed." : "ПХП модул %s није инсталиран.", "PHP setting \"%s\" is not set to \"%s\"." : "ПХП поставка „%s“ није постављена на „%s“.", "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 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?" : "ПХП модули су инсталирани али се и даље воде као недостајући?", "Please ask your server administrator to restart the web server." : "Замолите вашег администратора сервера да поново покрене веб сервер.", diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js index 2401ffc2e96..16607aaf86b 100644 --- a/lib/l10n/sv.js +++ b/lib/l10n/sv.js @@ -115,7 +115,6 @@ OC.L10N.register( "Please install one of these locales on your system and restart your webserver." : "Vänligen installera en av dessa locale på din server och starta om dinn webbserver,", "Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.", "PHP module %s not installed." : "PHP modulen %s är inte installerad.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställd för att rensa inline doc block. Detta kommer att göra flera kärnapplikationer otillgängliga.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?", "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.", diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json index bd9a704dccb..a346bdcd026 100644 --- a/lib/l10n/sv.json +++ b/lib/l10n/sv.json @@ -113,7 +113,6 @@ "Please install one of these locales on your system and restart your webserver." : "Vänligen installera en av dessa locale på din server och starta om dinn webbserver,", "Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.", "PHP module %s not installed." : "PHP modulen %s är inte installerad.", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställd för att rensa inline doc block. Detta kommer att göra flera kärnapplikationer otillgängliga.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.", "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?", "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.", diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js index 4a969e8e288..021f2d59f98 100644 --- a/lib/l10n/tr.js +++ b/lib/l10n/tr.js @@ -131,7 +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 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?", "Please ask your server administrator to restart the web server." : "Lütfen web sunucusunu yeniden başlatması için sunucu yöneticinize danışın.", diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json index add5a27ad60..3a2b9e687fc 100644 --- a/lib/l10n/tr.json +++ b/lib/l10n/tr.json @@ -129,7 +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 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?", "Please ask your server administrator to restart the web server." : "Lütfen web sunucusunu yeniden başlatması için sunucu yöneticinize danışın.", diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js index a3a1e55b685..006b907f56d 100644 --- a/lib/l10n/uk.js +++ b/lib/l10n/uk.js @@ -41,6 +41,7 @@ OC.L10N.register( "File name is a reserved word" : "Ім’я файлу є зарезервованим словом", "File name contains at least one invalid character" : "Ім’я файлу містить принаймні один некоректний символ", "File name is too long" : "Ім’я файлу занадто довге", + "Can't read file" : "Не можливо прочитати файл", "App directory already exists" : "Тека додатку вже існує", "Can't create app folder. Please fix permissions. %s" : "Неможливо створити теку додатку. Будь ласка, виправте права доступу. %s", "No source specified when installing app" : "Не вказано джерело при встановлені додатку", @@ -128,7 +129,7 @@ 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 apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.", + "PHP is apparently set up 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 були встановлені, але вони все ще перераховані як відсутні?", "Please ask your server administrator to restart the web server." : "Будь ласка, зверніться до адміністратора, щоб перезавантажити сервер.", diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json index 609c498f56d..1050622dd2b 100644 --- a/lib/l10n/uk.json +++ b/lib/l10n/uk.json @@ -39,6 +39,7 @@ "File name is a reserved word" : "Ім’я файлу є зарезервованим словом", "File name contains at least one invalid character" : "Ім’я файлу містить принаймні один некоректний символ", "File name is too long" : "Ім’я файлу занадто довге", + "Can't read file" : "Не можливо прочитати файл", "App directory already exists" : "Тека додатку вже існує", "Can't create app folder. Please fix permissions. %s" : "Неможливо створити теку додатку. Будь ласка, виправте права доступу. %s", "No source specified when installing app" : "Не вказано джерело при встановлені додатку", @@ -126,7 +127,7 @@ "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 apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.", + "PHP is apparently set up 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 були встановлені, але вони все ще перераховані як відсутні?", "Please ask your server administrator to restart the web server." : "Будь ласка, зверніться до адміністратора, щоб перезавантажити сервер.", diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js index 4430310e8f8..2046655f20d 100644 --- a/lib/l10n/zh_CN.js +++ b/lib/l10n/zh_CN.js @@ -89,7 +89,6 @@ OC.L10N.register( "Setting locale to %s failed" : "设置语言为 %s 失败", "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。", "PHP module %s not installed." : "PHP %s 模块未安装。", - "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 模块已经安装,但仍然显示未安装?", "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。", diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json index e5edddc2fa1..e96f07d198c 100644 --- a/lib/l10n/zh_CN.json +++ b/lib/l10n/zh_CN.json @@ -87,7 +87,6 @@ "Setting locale to %s failed" : "设置语言为 %s 失败", "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。", "PHP module %s not installed." : "PHP %s 模块未安装。", - "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 模块已经安装,但仍然显示未安装?", "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启网页服务器。", diff --git a/lib/private/app/codecheckvisitor.php b/lib/private/app/codecheckvisitor.php index 03b238096e7..e983bd8630b 100644 --- a/lib/private/app/codecheckvisitor.php +++ b/lib/private/app/codecheckvisitor.php @@ -22,18 +22,9 @@ namespace OC\App; -use OC\Hooks\BasicEmitter; -use PhpParser\Lexer; use PhpParser\Node; use PhpParser\Node\Name; -use PhpParser\NodeTraverser; use PhpParser\NodeVisitorAbstract; -use PhpParser\Parser; -use RecursiveCallbackFilterIterator; -use RecursiveDirectoryIterator; -use RecursiveIteratorIterator; -use RegexIterator; -use SplFileInfo; class CodeCheckVisitor extends NodeVisitorAbstract { diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php index 5072a65c02f..a11e4ee05b3 100644 --- a/lib/private/appframework/dependencyinjection/dicontainer.php +++ b/lib/private/appframework/dependencyinjection/dicontainer.php @@ -42,7 +42,6 @@ use OC\AppFramework\Utility\SimpleContainer; use OC\AppFramework\Utility\TimeFactory; use OC\AppFramework\Utility\ControllerMethodReflector; use OCP\AppFramework\IApi; -use OCP\AppFramework\QueryException; use OCP\AppFramework\IAppContainer; use OCP\AppFramework\Middleware; use OCP\IServerContainer; @@ -292,7 +291,8 @@ class DIContainer extends SimpleContainer implements IAppContainer { $this->registerService('CORSMiddleware', function($c) { return new CORSMiddleware( $c['Request'], - $c['ControllerMethodReflector'] + $c['ControllerMethodReflector'], + $c['OCP\IUserSession'] ); }); @@ -307,8 +307,8 @@ class DIContainer extends SimpleContainer implements IAppContainer { $middleWares = &$this->middleWares; $this->registerService('MiddlewareDispatcher', function($c) use (&$middleWares) { $dispatcher = new MiddlewareDispatcher(); - $dispatcher->registerMiddleware($c['SecurityMiddleware']); $dispatcher->registerMiddleware($c['CORSMiddleware']); + $dispatcher->registerMiddleware($c['SecurityMiddleware']); foreach($middleWares as $middleWare) { $dispatcher->registerMiddleware($c[$middleWare]); diff --git a/lib/private/appframework/middleware/security/corsmiddleware.php b/lib/private/appframework/middleware/security/corsmiddleware.php index 983742858db..600eb2318cf 100644 --- a/lib/private/appframework/middleware/security/corsmiddleware.php +++ b/lib/private/appframework/middleware/security/corsmiddleware.php @@ -24,30 +24,69 @@ namespace OC\AppFramework\Middleware\Security; use OC\AppFramework\Utility\ControllerMethodReflector; use OCP\IRequest; +use OCP\IUserSession; use OCP\AppFramework\Http\Response; use OCP\AppFramework\Middleware; /** - * This middleware sets the correct CORS headers on a response if the + * This middleware sets the correct CORS headers on a response if the * controller has the @CORS annotation. This is needed for webapps that want - * to access an API and dont run on the same domain, see + * to access an API and dont run on the same domain, see * https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS */ class CORSMiddleware extends Middleware { + /** + * @var IRequest + */ private $request; + + /** + * @var ControllerMethodReflector + */ private $reflector; /** + * @var IUserSession + */ + private $session; + + /** * @param IRequest $request * @param ControllerMethodReflector $reflector + * @param IUserSession $session */ - public function __construct(IRequest $request, - ControllerMethodReflector $reflector) { + public function __construct(IRequest $request, + ControllerMethodReflector $reflector, + IUserSession $session) { $this->request = $request; $this->reflector = $reflector; + $this->session = $session; } + /** + * This is being run in normal order before the controller is being + * called which allows several modifications and checks + * + * @param Controller $controller the controller that is being called + * @param string $methodName the name of the method that will be called on + * the controller + * @since 6.0.0 + */ + public function beforeController($controller, $methodName){ + // ensure that @CORS annotated API routes are not used in conjunction + // with session authentication since this enables CSRF attack vectors + if ($this->reflector->hasAnnotation('CORS') && + !$this->reflector->hasAnnotation('PublicPage')) { + $user = $this->request->server['PHP_AUTH_USER']; + $pass = $this->request->server['PHP_AUTH_PW']; + + $this->session->logout(); + if(!$this->session->login($user, $pass)) { + throw new SecurityException('CORS requires basic auth'); + } + } + } /** * This is being run after a successful controllermethod call and allows @@ -65,7 +104,7 @@ class CORSMiddleware extends Middleware { if(isset($this->request->server['HTTP_ORIGIN']) && $this->reflector->hasAnnotation('CORS')) { - // allow credentials headers must not be true or CSRF is possible + // allow credentials headers must not be true or CSRF is possible // otherwise foreach($response->getHeaders() as $header => $value ) { if(strtolower($header) === 'access-control-allow-credentials' && diff --git a/lib/private/apphelper.php b/lib/private/apphelper.php index 5da080ad16c..c4ddc1b077e 100644 --- a/lib/private/apphelper.php +++ b/lib/private/apphelper.php @@ -23,7 +23,8 @@ namespace OC; /** - * TODO: Description + * Class AppHelper + * @deprecated 8.1.0 */ class AppHelper implements \OCP\IHelper { /** @@ -31,6 +32,7 @@ class AppHelper implements \OCP\IHelper { * installed * @param string $url the url that should be fetched * @return string the content of the webpage + * @deprecated 8.1.0 Use \OCP\IServerContainer::getHTTPClientService */ public function getUrlContent($url) { return \OC_Util::getUrlContent($url); diff --git a/lib/private/connector/sabre/objecttree.php b/lib/private/connector/sabre/objecttree.php index 999750fd785..8def14e8e9c 100644 --- a/lib/private/connector/sabre/objecttree.php +++ b/lib/private/connector/sabre/objecttree.php @@ -27,9 +27,7 @@ namespace OC\Connector\Sabre; use OC\Connector\Sabre\Exception\InvalidPath; use OC\Files\FileInfo; -use OC\Files\Filesystem; use OC\Files\Mount\MoveableMount; -use OC_Connector_Sabre_Exception_InvalidPath; use OCP\Files\StorageInvalidException; use OCP\Files\StorageNotAvailableException; 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/keys/storage.php b/lib/private/encryption/keys/storage.php index 6aa00c5b5ee..f90548fd319 100644 --- a/lib/private/encryption/keys/storage.php +++ b/lib/private/encryption/keys/storage.php @@ -70,7 +70,8 @@ class Storage implements IStorage { * @inheritdoc */ public function getFileKey($path, $keyId, $encryptionModuleId) { - $keyDir = $this->getFileKeyDir($encryptionModuleId, $path); + $realFile = $this->util->stripPartialFileExtension($path); + $keyDir = $this->getFileKeyDir($encryptionModuleId, $realFile); return $this->getKey($keyDir . $keyId); } diff --git a/lib/private/encryption/manager.php b/lib/private/encryption/manager.php index 1a42646daf6..45f45045643 100644 --- a/lib/private/encryption/manager.php +++ b/lib/private/encryption/manager.php @@ -79,7 +79,7 @@ class Manager implements IManager { $oldEncryption = $this->config->getAppValue('files_encryption', 'installed_version'); if (!empty($oldEncryption)) { $warning = 'Installation is in transit between the old Encryption (ownCloud <= 8.0) - and the new encryption. Please enable the "ownCloud Default Encryption Module" + and the new encryption. Please enable the "Default encryption module" and run \'occ encryption:migrate\''; $this->logger->warning($warning); return false; diff --git a/lib/private/encryption/util.php b/lib/private/encryption/util.php index 45d4dd90d9f..b77672d2f6b 100644 --- a/lib/private/encryption/util.php +++ b/lib/private/encryption/util.php @@ -114,7 +114,7 @@ class Util { // ownCloud <= 8.0 with the old encryption $id = \OCA\Encryption\Crypto\Encryption::ID; } else { - throw new ModuleDoesNotExistsException('ownCloud default encryption module missing'); + throw new ModuleDoesNotExistsException('Default encryption module missing'); } } diff --git a/lib/private/files/cache/updater.php b/lib/private/files/cache/updater.php index 7df223eb037..193ddbedb2c 100644 --- a/lib/private/files/cache/updater.php +++ b/lib/private/files/cache/updater.php @@ -182,7 +182,7 @@ class Updater { if (pathinfo($sourceInternalPath, PATHINFO_EXTENSION) !== pathinfo($targetInternalPath, PATHINFO_EXTENSION)) { // handle mime type change - $mimeType = $sourceStorage->getMimeType($targetInternalPath); + $mimeType = $targetStorage->getMimeType($targetInternalPath); $fileId = $targetCache->getId($targetInternalPath); $targetCache->update($fileId, array('mimetype' => $mimeType)); } diff --git a/lib/private/files/node/root.php b/lib/private/files/node/root.php index d0cac46e593..e47f98b0f27 100644 --- a/lib/private/files/node/root.php +++ b/lib/private/files/node/root.php @@ -25,14 +25,11 @@ namespace OC\Files\Node; -use OC\Files\Cache\Cache; use OC\Files\Mount\Manager; use OC\Files\Mount\MountPoint; use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; -use OC\Hooks\Emitter; use OC\Hooks\PublicEmitter; - use OCP\Files\IRootFolder; /** diff --git a/lib/private/files/objectstore/objectstorestorage.php b/lib/private/files/objectstore/objectstorestorage.php index 3c92665da3f..24398649727 100644 --- a/lib/private/files/objectstore/objectstorestorage.php +++ b/lib/private/files/objectstore/objectstorestorage.php @@ -24,7 +24,6 @@ namespace OC\Files\ObjectStore; -use OC\Files\Filesystem; use OCP\Files\ObjectStore\IObjectStore; class ObjectStoreStorage extends \OC\Files\Storage\Common { @@ -220,7 +219,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { \OC\Files\Stream\Dir::register('objectstore' . $path . '/', $files); return opendir('fakedir://objectstore' . $path . '/'); - } catch (Exception $e) { + } catch (\Exception $e) { \OCP\Util::writeLog('objectstore', $e->getMessage(), \OCP\Util::ERROR); return false; } diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index fc30b385e2e..1257a14dd04 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -274,6 +274,8 @@ abstract class Common implements Storage { /** * @param string $query + * @param string $dir + * @return array */ protected function searchInDir($query, $dir = '') { $files = array(); @@ -498,18 +500,18 @@ abstract class Common implements Storage { * @throws InvalidPathException */ private function scanForInvalidCharacters($fileName, $invalidChars) { - foreach(str_split($invalidChars) as $char) { + foreach (str_split($invalidChars) as $char) { if (strpos($fileName, $char) !== false) { throw new InvalidCharacterInPathException(); } } $sanitizedFileName = filter_var($fileName, FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW); - if($sanitizedFileName !== $fileName) { + if ($sanitizedFileName !== $fileName) { throw new InvalidCharacterInPathException(); } } - + /** * @param array $options */ @@ -525,6 +527,7 @@ abstract class Common implements Storage { public function getMountOption($name, $default = null) { return isset($this->mountOptions[$name]) ? $this->mountOptions[$name] : $default; } + /** * @param \OCP\Files\Storage $sourceStorage * @param string $sourceInternalPath @@ -533,6 +536,10 @@ abstract class Common implements Storage { * @return bool */ public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) { + if ($sourceStorage === $this) { + return $this->copy($sourceInternalPath, $targetInternalPath); + } + if ($sourceStorage->is_dir($sourceInternalPath)) { $dh = $sourceStorage->opendir($sourceInternalPath); $result = $this->mkdir($targetInternalPath); @@ -575,6 +582,10 @@ abstract class Common implements Storage { * @return bool */ public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { + if ($sourceStorage === $this) { + return $this->rename($sourceInternalPath, $targetInternalPath); + } + $result = $this->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath, true); if ($result) { if ($sourceStorage->is_dir($sourceInternalPath)) { diff --git a/lib/private/files/storage/local.php b/lib/private/files/storage/local.php index 175b33b0329..315a8e7e25d 100644 --- a/lib/private/files/storage/local.php +++ b/lib/private/files/storage/local.php @@ -282,6 +282,8 @@ if (\OC_Util::runningOnWindows()) { /** * @param string $query + * @param string $dir + * @return array */ protected function searchInDir($query, $dir = '') { $files = array(); diff --git a/lib/private/files/storage/localtempfiletrait.php b/lib/private/files/storage/localtempfiletrait.php index 444e4e2e89e..e7f51a1807f 100644 --- a/lib/private/files/storage/localtempfiletrait.php +++ b/lib/private/files/storage/localtempfiletrait.php @@ -21,15 +21,6 @@ namespace OC\Files\Storage; -use OC\Files\Cache\Cache; -use OC\Files\Cache\Scanner; -use OC\Files\Filesystem; -use OC\Files\Cache\Watcher; -use OCP\Files\FileNameTooLongException; -use OCP\Files\InvalidCharacterInPathException; -use OCP\Files\InvalidPathException; -use OCP\Files\ReservedWordException; - /** * Storage backend class for providing common filesystem operation methods * which are not storage-backend specific. @@ -43,13 +34,12 @@ use OCP\Files\ReservedWordException; */ trait LocalTempFileTrait { - /** - * @var string[] - */ - protected $cachedFiles = array(); + /** @var string[] */ + protected $cachedFiles = []; /** * @param string $path + * @return string */ protected function getCachedFile($path) { if (!isset($this->cachedFiles[$path])) { @@ -58,6 +48,9 @@ trait LocalTempFileTrait { return $this->cachedFiles[$path]; } + /** + * @param string $path + */ protected function removeCachedFile($path) { unset($this->cachedFiles[$path]); } diff --git a/lib/private/files/storage/mappedlocal.php b/lib/private/files/storage/mappedlocal.php index 3a3123dc4b4..4b527357254 100644 --- a/lib/private/files/storage/mappedlocal.php +++ b/lib/private/files/storage/mappedlocal.php @@ -342,6 +342,8 @@ class MappedLocal extends \OC\Files\Storage\Common { /** * @param string $query + * @param string $dir + * @return array */ protected function searchInDir($query, $dir = '') { $files = array(); diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php index 1683ff1350f..624b332f363 100644 --- a/lib/private/files/storage/wrapper/encryption.php +++ b/lib/private/files/storage/wrapper/encryption.php @@ -245,8 +245,12 @@ class Encryption extends Wrapper { */ public function rmdir($path) { $result = $this->storage->rmdir($path); - if ($result && $this->encryptionManager->isEnabled()) { - $this->keyStorage->deleteAllFileKeys($this->getFullPath($path)); + $fullPath = $this->getFullPath($path); + if ($result && + $this->util->isExcluded($fullPath) === false && + $this->encryptionManager->isEnabled() + ) { + $this->keyStorage->deleteAllFileKeys($fullPath); } return $result; @@ -605,6 +609,10 @@ class Encryption extends Wrapper { return $encryptionModule; } + /** + * @param string $path + * @param int $unencryptedSize + */ public function updateUnencryptedSize($path, $unencryptedSize) { $this->unencryptedSize[$path] = $unencryptedSize; } diff --git a/lib/private/files/storage/wrapper/wrapper.php b/lib/private/files/storage/wrapper/wrapper.php index f3dc09db138..14024addec4 100644 --- a/lib/private/files/storage/wrapper/wrapper.php +++ b/lib/private/files/storage/wrapper/wrapper.php @@ -513,6 +513,10 @@ class Wrapper implements \OC\Files\Storage\Storage { * @return bool */ public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { + if ($sourceStorage === $this) { + return $this->copy($sourceInternalPath, $targetInternalPath); + } + return $this->storage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); } @@ -523,6 +527,10 @@ class Wrapper implements \OC\Files\Storage\Storage { * @return bool */ public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { + if ($sourceStorage === $this) { + return $this->rename($sourceInternalPath, $targetInternalPath); + } + return $this->storage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); } diff --git a/lib/private/files/stream/encryption.php b/lib/private/files/stream/encryption.php index e423868d82b..22d230e7c86 100644 --- a/lib/private/files/stream/encryption.php +++ b/lib/private/files/stream/encryption.php @@ -130,6 +130,7 @@ class Encryption extends Wrapper { * @param int $size * @param int $unencryptedSize * @param int $headerSize + * @param string $wrapper stream wrapper class * @return resource * * @throws \BadMethodCallException @@ -144,7 +145,8 @@ class Encryption extends Wrapper { $mode, $size, $unencryptedSize, - $headerSize) { + $headerSize, + $wrapper = 'OC\Files\Stream\Encryption') { $context = stream_context_create(array( 'ocencryption' => array( @@ -164,7 +166,7 @@ class Encryption extends Wrapper { ) )); - return self::wrapSource($source, $mode, $context, 'ocencryption', 'OC\Files\Stream\Encryption'); + return self::wrapSource($source, $mode, $context, 'ocencryption', $wrapper); } /** @@ -271,7 +273,7 @@ class Encryption extends Wrapper { $result = ''; -// $count = min($count, $this->unencryptedSize - $this->position); + $count = min($count, $this->unencryptedSize - $this->position); while ($count > 0) { $remainingLength = $count; // update the cache of the current block @@ -309,7 +311,7 @@ class Encryption extends Wrapper { // flush will start writing there when the position moves to another block $positionInFile = (int)floor($this->position / $this->unencryptedBlockSize) * $this->util->getBlockSize() + $this->headerSize; - $resultFseek = parent::stream_seek($positionInFile); + $resultFseek = $this->parentStreamSeek($positionInFile); // only allow writes on seekable streams, or at the end of the encrypted stream if (!($this->readOnly) && ($resultFseek || $positionInFile === $this->size)) { @@ -341,8 +343,8 @@ class Encryption extends Wrapper { } else { $data = ''; } + $this->unencryptedSize = max($this->unencryptedSize, $this->position); } - $this->unencryptedSize = max($this->unencryptedSize, $this->position); return $length; } @@ -376,10 +378,10 @@ class Encryption extends Wrapper { * $this->util->getBlockSize() + $this->headerSize; $oldFilePosition = parent::stream_tell(); - if (parent::stream_seek($newFilePosition)) { - parent::stream_seek($oldFilePosition); + if ($this->parentStreamSeek($newFilePosition)) { + $this->parentStreamSeek($oldFilePosition); $this->flush(); - parent::stream_seek($newFilePosition); + $this->parentStreamSeek($newFilePosition); $this->position = $newPosition; $return = true; } @@ -410,9 +412,18 @@ class Encryption extends Wrapper { // we are handling that separately here and we don't want to // get into an infinite loop $encrypted = $this->encryptionModule->encrypt($this->cache); - parent::stream_write($encrypted); + $bytesWritten = parent::stream_write($encrypted); $this->writeFlag = false; - $this->size = max($this->size, parent::stream_tell()); + // Check whether the write concerns the last block + // If so then update the encrypted filesize + // Note that the unencrypted pointer and filesize are NOT yet updated when flush() is called + // We recalculate the encrypted filesize as we do not know the context of calling flush() + $completeBlocksInFile=(int)floor($this->unencryptedSize/$this->unencryptedBlockSize); + if ($completeBlocksInFile === (int)floor($this->position/$this->unencryptedBlockSize)) { + $this->size = $this->util->getBlockSize() * $completeBlocksInFile; + $this->size += $bytesWritten; + $this->size += $this->headerSize; + } } // always empty the cache (otherwise readCache() will not fill it with the new block) $this->cache = ''; @@ -449,4 +460,14 @@ class Encryption extends Wrapper { parent::stream_read($this->headerSize); } + /** + * call stream_seek() from parent class + * + * @param integer $position + * @return bool + */ + protected function parentStreamSeek($position) { + return parent::stream_seek($position); + } + } diff --git a/lib/private/group/database.php b/lib/private/group/database.php index a58d66010d5..ad6174808bb 100644 --- a/lib/private/group/database.php +++ b/lib/private/group/database.php @@ -180,8 +180,15 @@ class OC_Group_Database extends OC_Group_Backend { * Returns a list with all groups */ public function getGroups($search = '', $limit = null, $offset = null) { - $stmt = OC_DB::prepare('SELECT `gid` FROM `*PREFIX*groups` WHERE LOWER(`gid`) LIKE LOWER(?) ORDER BY `gid` ASC', $limit, $offset); - $result = $stmt->execute(array('%' . $search . '%')); + $parameters = []; + $searchLike = ''; + if ($search !== '') { + $parameters[] = '%' . $search . '%'; + $searchLike = ' WHERE LOWER(`gid`) LIKE LOWER(?)'; + } + + $stmt = OC_DB::prepare('SELECT `gid` FROM `*PREFIX*groups`' . $searchLike . ' ORDER BY `gid` ASC', $limit, $offset); + $result = $stmt->execute($parameters); $groups = array(); while ($row = $result->fetchRow()) { $groups[] = $row['gid']; @@ -212,10 +219,17 @@ class OC_Group_Database extends OC_Group_Backend { * @return array an array of user ids */ public function usersInGroup($gid, $search = '', $limit = null, $offset = null) { - $stmt = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ? ORDER BY `uid` ASC', + $parameters = [$gid]; + $searchLike = ''; + if ($search !== '') { + $parameters[] = '%' . $search . '%'; + $searchLike = ' AND `uid` LIKE ?'; + } + + $stmt = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*group_user` WHERE `gid` = ?' . $searchLike . ' ORDER BY `uid` ASC', $limit, $offset); - $result = $stmt->execute(array($gid, '%'.$search.'%')); + $result = $stmt->execute($parameters); $users = array(); while ($row = $result->fetchRow()) { $users[] = $row['uid']; @@ -231,8 +245,15 @@ class OC_Group_Database extends OC_Group_Backend { * @throws \OC\DatabaseException */ public function countUsersInGroup($gid, $search = '') { - $stmt = OC_DB::prepare('SELECT COUNT(`uid`) AS `count` FROM `*PREFIX*group_user` WHERE `gid` = ? AND `uid` LIKE ?'); - $result = $stmt->execute(array($gid, '%' . $search . '%')); + $parameters = [$gid]; + $searchLike = ''; + if ($search !== '') { + $parameters[] = '%' . $search . '%'; + $searchLike = ' AND `uid` LIKE ?'; + } + + $stmt = OC_DB::prepare('SELECT COUNT(`uid`) AS `count` FROM `*PREFIX*group_user` WHERE `gid` = ?' . $searchLike); + $result = $stmt->execute($parameters); $count = $result->fetchOne(); if($count !== false) { $count = intval($count); diff --git a/lib/private/httphelper.php b/lib/private/httphelper.php index f7984a72ebb..9d9edb6a351 100644 --- a/lib/private/httphelper.php +++ b/lib/private/httphelper.php @@ -102,7 +102,13 @@ class HTTPHelper { $client = $this->clientService->newClient(); try { - $response = $client->post($url, ['body' => $fields]); + $response = $client->post( + $url, + [ + 'body' => $fields, + 'connect_timeout' => 10, + ] + ); } catch (\Exception $e) { return ['success' => false, 'result' => $e->getMessage()]; } diff --git a/lib/private/log.php b/lib/private/log.php index 56f36787e09..840713b2eda 100644 --- a/lib/private/log.php +++ b/lib/private/log.php @@ -28,6 +28,7 @@ namespace OC; use \OCP\ILogger; +use OCP\Security\StringUtils; /** * logging utilities @@ -41,15 +42,29 @@ use \OCP\ILogger; class Log implements ILogger { + /** @var string */ private $logger; + /** @var SystemConfig */ + private $config; + + /** @var boolean|null cache the result of the log condition check for the request */ + private $logConditionSatisfied = null; /** * @param string $logger The logger that should be used + * @param SystemConfig $config the system config object */ - public function __construct($logger=null) { + public function __construct($logger=null, SystemConfig $config=null) { + // FIXME: Add this for backwards compatibility, should be fixed at some point probably + if($config === null) { + $config = \OC::$server->getSystemConfig(); + } + + $this->config = $config; + // FIXME: Add this for backwards compatibility, should be fixed at some point probably if($logger === null) { - $this->logger = 'OC_Log_'.ucfirst(\OC_Config::getValue('log_type', 'owncloud')); + $this->logger = 'OC_Log_'.ucfirst($this->config->getValue('log_type', 'owncloud')); call_user_func(array($this->logger, 'init')); } else { $this->logger = $logger; @@ -158,8 +173,22 @@ class Log implements ILogger { * @param array $context */ public function log($level, $message, array $context = array()) { + $minLevel = min($this->config->getValue('loglevel', \OC_Log::WARN), \OC_Log::ERROR); + $logCondition = $this->config->getValue('log.condition', []); + if (isset($context['app'])) { $app = $context['app']; + + /** + * check log condition based on the context of each log message + * once this is met -> change the required log level to debug + */ + if(!empty($logCondition) + && isset($logCondition['apps']) + && in_array($app, $logCondition['apps'], true)) { + $minLevel = \OC_Log::DEBUG; + } + } else { $app = 'no app in context'; } @@ -172,7 +201,45 @@ class Log implements ILogger { // interpolate replacement values into the message and return $message = strtr($message, $replace); - $logger = $this->logger; - call_user_func(array($logger, 'write'), $app, $message, $level); + /** + * check for a special log condition - this enables an increased log on + * a per request/user base + */ + if($this->logConditionSatisfied === null) { + // default to false to just process this once per request + $this->logConditionSatisfied = false; + if(!empty($logCondition)) { + + // check for secret token in the request + if(isset($logCondition['shared_secret'])) { + $request = \OC::$server->getRequest(); + + // if token is found in the request change set the log condition to satisfied + if($request && StringUtils::equals($request->getParam('log_secret'), $logCondition['shared_secret'])) { + $this->logConditionSatisfied = true; + } + } + + // check for user + if(isset($logCondition['users'])) { + $user = \OC::$server->getUserSession()->getUser(); + + // if the user matches set the log condition to satisfied + if($user !== null && in_array($user->getUID(), $logCondition['users'], true)) { + $this->logConditionSatisfied = true; + } + } + } + } + + // if log condition is satisfied change the required log level to DEBUG + if($this->logConditionSatisfied) { + $minLevel = \OC_Log::DEBUG; + } + + if ($level >= $minLevel) { + $logger = $this->logger; + call_user_func(array($logger, 'write'), $app, $message, $level); + } } } diff --git a/lib/private/log/errorhandler.php b/lib/private/log/errorhandler.php index b1b15f12ed7..5e92db398f9 100644 --- a/lib/private/log/errorhandler.php +++ b/lib/private/log/errorhandler.php @@ -64,10 +64,16 @@ class ErrorHandler { } } - // Uncaught exception handler + /** + * Uncaught exception handler + * + * @param \Exception $exception + */ public static function onException($exception) { - $msg = $exception->getMessage() . ' at ' . $exception->getFile() . '#' . $exception->getLine(); - self::$logger->critical(self::removePassword($msg), array('app' => 'PHP')); + $class = get_class($exception); + $msg = $exception->getMessage(); + $msg = "$class: $msg at " . $exception->getFile() . '#' . $exception->getLine(); + self::$logger->critical(self::removePassword($msg), ['app' => 'PHP']); } //Recoverable errors handler diff --git a/lib/private/log/errorlog.php b/lib/private/log/errorlog.php index 007ab307722..ad3605136d0 100644 --- a/lib/private/log/errorlog.php +++ b/lib/private/log/errorlog.php @@ -39,10 +39,7 @@ class OC_Log_Errorlog { * @param int $level */ public static function write($app, $message, $level) { - $minLevel = min(OC_Config::getValue("loglevel", OC_Log::WARN), OC_Log::ERROR); - if ($level >= $minLevel) { - error_log('[owncloud]['.$app.'] '.$message); - } + error_log('[owncloud]['.$app.']['.$level.'] '.$message); } } diff --git a/lib/private/log/owncloud.php b/lib/private/log/owncloud.php index 049b8dbdfa3..0125164394d 100644 --- a/lib/private/log/owncloud.php +++ b/lib/private/log/owncloud.php @@ -69,40 +69,40 @@ class OC_Log_Owncloud { * @param int $level */ public static function write($app, $message, $level) { - $minLevel=min(OC_Config::getValue( "loglevel", OC_Log::WARN ), OC_Log::ERROR); - if($level>=$minLevel) { - // default to ISO8601 - $format = OC_Config::getValue('logdateformat', 'c'); - $logtimezone=OC_Config::getValue( "logtimezone", 'UTC' ); - try { - $timezone = new DateTimeZone($logtimezone); - } catch (Exception $e) { - $timezone = new DateTimeZone('UTC'); - } - $time = new DateTime(null, $timezone); - $request = \OC::$server->getRequest(); - $reqId = $request->getId(); - $remoteAddr = $request->getRemoteAddress(); - // remove username/passwords from URLs before writing the to the log file - $time = $time->format($format); - if($minLevel == OC_Log::DEBUG) { - $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '--'; - $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '--'; - $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time', 'method', 'url'); - } - else { - $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time'); - } - $entry = json_encode($entry); - $handle = @fopen(self::$logFile, 'a'); - @chmod(self::$logFile, 0640); - if ($handle) { - fwrite($handle, $entry."\n"); - fclose($handle); - } else { - // Fall back to error_log - error_log($entry); - } + $config = \OC::$server->getSystemConfig(); + + // default to ISO8601 + $format = $config->getValue('logdateformat', 'c'); + $logtimezone = $config->getValue( "logtimezone", 'UTC' ); + try { + $timezone = new DateTimeZone($logtimezone); + } catch (Exception $e) { + $timezone = new DateTimeZone('UTC'); + } + $time = new DateTime(null, $timezone); + $request = \OC::$server->getRequest(); + $reqId = $request->getId(); + $remoteAddr = $request->getRemoteAddress(); + // remove username/passwords from URLs before writing the to the log file + $time = $time->format($format); + $minLevel=min($config->getValue( "loglevel", OC_Log::WARN ), OC_Log::ERROR); + if($minLevel == OC_Log::DEBUG) { + $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '--'; + $method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : '--'; + $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time', 'method', 'url'); + } + else { + $entry = compact('reqId', 'remoteAddr', 'app', 'message', 'level', 'time'); + } + $entry = json_encode($entry); + $handle = @fopen(self::$logFile, 'a'); + @chmod(self::$logFile, 0640); + if ($handle) { + fwrite($handle, $entry."\n"); + fclose($handle); + } else { + // Fall back to error_log + error_log($entry); } } diff --git a/lib/private/log/syslog.php b/lib/private/log/syslog.php index 1763e6de6d1..8595b707d59 100644 --- a/lib/private/log/syslog.php +++ b/lib/private/log/syslog.php @@ -47,10 +47,7 @@ class OC_Log_Syslog { * @param int $level */ public static function write($app, $message, $level) { - $minLevel = min(OC_Config::getValue("loglevel", OC_Log::WARN), OC_Log::ERROR); - if ($level >= $minLevel) { - $syslog_level = self::$levels[$level]; - syslog($syslog_level, '{'.$app.'} '.$message); - } + $syslog_level = self::$levels[$level]; + syslog($syslog_level, '{'.$app.'} '.$message); } } diff --git a/lib/private/search/result/file.php b/lib/private/search/result/file.php index 50b74e1ced2..4329f504a7d 100644 --- a/lib/private/search/result/file.php +++ b/lib/private/search/result/file.php @@ -23,7 +23,6 @@ */ namespace OC\Search\Result; -use OC\Files\Filesystem; use OCP\Files\FileInfo; use OCP\Files\Folder; diff --git a/lib/private/updater.php b/lib/private/updater.php index 59b1c0a8f66..8371193ef79 100644 --- a/lib/private/updater.php +++ b/lib/private/updater.php @@ -65,6 +65,9 @@ class Updater extends BasicEmitter { /** @var bool */ private $updateStepEnabled; + /** @var bool */ + private $skip3rdPartyAppsDisable; + /** * @param HTTPHelper $httpHelper * @param IConfig $config @@ -100,6 +103,16 @@ class Updater extends BasicEmitter { } /** + * Sets whether the update disables 3rd party apps. + * This can be set to true to skip the disable. + * + * @param bool $flag false to not disable, true otherwise + */ + public function setSkip3rdPartyAppsDisable($flag) { + $this->skip3rdPartyAppsDisable = $flag; + } + + /** * Check if a new version is available * * @param string $updaterUrl the url to check, i.e. 'http://apps.owncloud.com/updater.php' @@ -407,10 +420,12 @@ class Updater extends BasicEmitter { continue; } - // disable any other 3rd party apps - \OC_App::disable($app); - $disabledApps[]= $app; - $this->emit('\OC\Updater', 'thirdPartyAppDisabled', array($app)); + // disable any other 3rd party apps if not overriden + if(!$this->skip3rdPartyAppsDisable) { + \OC_App::disable($app); + $disabledApps[]= $app; + $this->emit('\OC\Updater', 'thirdPartyAppDisabled', array($app)); + }; } return $disabledApps; } diff --git a/lib/private/user.php b/lib/private/user.php index b3677233825..8083b4e40be 100644 --- a/lib/private/user.php +++ b/lib/private/user.php @@ -241,7 +241,10 @@ class OC_User { $result = self::getUserSession()->login($loginname, $password); if ($result) { //we need to pass the user name, which may differ from login name - OC_Util::setupFS(self::getUserSession()->getUser()->getUID()); + $user = self::getUserSession()->getUser()->getUID(); + OC_Util::setupFS($user); + //trigger creation of user home and /files folder + \OC::$server->getUserFolder($user); } return $result; } @@ -421,7 +424,7 @@ class OC_User { /** * get the user id of the user currently logged in. * - * @return string uid or false + * @return string|bool uid or false */ public static function getUser() { $uid = \OC::$server->getSession() ? \OC::$server->getSession()->get('user_id') : null; diff --git a/lib/private/user/database.php b/lib/private/user/database.php index f2fa0cc39ce..d080bff04b5 100644 --- a/lib/private/user/database.php +++ b/lib/private/user/database.php @@ -148,11 +148,19 @@ class OC_User_Database extends OC_User_Backend implements \OCP\IUserBackend { * Get a list of all display names and user ids. */ public function getDisplayNames($search = '', $limit = null, $offset = null) { + $parameters = []; + $searchLike = ''; + if ($search !== '') { + $parameters[] = '%' . $search . '%'; + $parameters[] = '%' . $search . '%'; + $searchLike = ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR ' + . 'LOWER(`uid`) LIKE LOWER(?)'; + } + $displayNames = array(); $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users`' - . ' WHERE LOWER(`displayname`) LIKE LOWER(?) OR ' - . 'LOWER(`uid`) LIKE LOWER(?) ORDER BY `uid` ASC', $limit, $offset); - $result = $query->execute(array('%' . $search . '%', '%' . $search . '%')); + . $searchLike .' ORDER BY `uid` ASC', $limit, $offset); + $result = $query->execute($parameters); while ($row = $result->fetchRow()) { $displayNames[$row['uid']] = $row['displayname']; } @@ -220,8 +228,15 @@ class OC_User_Database extends OC_User_Backend implements \OCP\IUserBackend { * Get a list of all users. */ public function getUsers($search = '', $limit = null, $offset = null) { - $query = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?) ORDER BY `uid` ASC', $limit, $offset); - $result = $query->execute(array('%' . $search . '%')); + $parameters = []; + $searchLike = ''; + if ($search !== '') { + $parameters[] = '%' . $search . '%'; + $searchLike = ' WHERE LOWER(`uid`) LIKE LOWER(?)'; + } + + $query = OC_DB::prepare('SELECT `uid` FROM `*PREFIX*users`' . $searchLike . ' ORDER BY `uid` ASC', $limit, $offset); + $result = $query->execute($parameters); $users = array(); while ($row = $result->fetchRow()) { $users[] = $row['uid']; diff --git a/lib/private/util.php b/lib/private/util.php index 367199f7735..c2f7d0d1a87 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -189,9 +189,6 @@ class OC_Util { //jail the user into his "home" directory \OC\Files\Filesystem::init($user, $userDir); - //trigger creation of user home and /files folder - \OC::$server->getUserFolder($user); - OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $userDir)); } \OC::$server->getEventLogger()->end('setup_fs'); @@ -388,10 +385,23 @@ class OC_Util { $session->set('OC_Version', $OC_Version); /** @var $OC_VersionString string */ $session->set('OC_VersionString', $OC_VersionString); - /** @var $OC_Channel string */ - $session->set('OC_Channel', $OC_Channel); /** @var $OC_Build string */ $session->set('OC_Build', $OC_Build); + + // Allow overriding update channel + + if (\OC::$server->getSystemConfig()->getValue('installed', false)) { + $channel = \OC::$server->getAppConfig()->getValue('core', 'OC_Channel'); + } else { + $channel = $OC_Channel; + } + + if (!is_null($channel)) { + $session->set('OC_Channel', $channel); + } else { + /** @var $OC_Channel string */ + $session->set('OC_Channel', $OC_Channel); + } } } @@ -749,14 +759,14 @@ class OC_Util { if($iniWrapper->getBool('mbstring.func_overload') !== null && $iniWrapper->getBool('mbstring.func_overload') === true) { $errors[] = array( - 'error' => $l->t('mbstring.func_overload is set to "%s" instead to the expected value "0"', [$iniWrapper->getString('mbstring.func_overload')]), + 'error' => $l->t('mbstring.func_overload is set to "%s" instead of the expected value "0"', [$iniWrapper->getString('mbstring.func_overload')]), 'hint' => $l->t('To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini') ); } if (!self::isAnnotationsWorking()) { $errors[] = array( - 'error' => $l->t('PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.'), + 'error' => $l->t('PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible.'), 'hint' => $l->t('This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.') ); } @@ -1335,7 +1345,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/appframework/http/contentsecuritypolicy.php b/lib/public/appframework/http/contentsecuritypolicy.php index be4b6e60f97..9c7218dc8ba 100644 --- a/lib/public/appframework/http/contentsecuritypolicy.php +++ b/lib/public/appframework/http/contentsecuritypolicy.php @@ -101,7 +101,7 @@ class ContentSecurityPolicy { * @since 8.1.0 */ public function allowEvalScript($state = true) { - $this->evalScriptAllowed= $state; + $this->evalScriptAllowed = $state; return $this; } @@ -118,6 +118,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed script domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowScriptDomain($domain) { + $this->allowedScriptDomains = array_diff($this->allowedScriptDomains, [$domain]); + return $this; + } + + /** * Whether inline CSS snippets are allowed or forbidden * @param bool $state * @return $this @@ -141,6 +153,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed style domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowStyleDomain($domain) { + $this->allowedStyleDomains = array_diff($this->allowedStyleDomains, [$domain]); + return $this; + } + + /** * Allows using fonts from a specific domain. Use * to allow * fonts from all domains. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. @@ -153,6 +177,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed font domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowFontDomain($domain) { + $this->allowedFontDomains = array_diff($this->allowedFontDomains, [$domain]); + return $this; + } + + /** * Allows embedding images from a specific domain. Use * to allow * images from all domains. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. @@ -165,6 +201,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed image domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowImageDomain($domain) { + $this->allowedImageDomains = array_diff($this->allowedImageDomains, [$domain]); + return $this; + } + + /** * To which remote domains the JS connect to. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this @@ -176,7 +224,19 @@ class ContentSecurityPolicy { } /** - * From whoch domains media elements can be embedded. + * Remove the specified allowed connect domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowConnectDomain($domain) { + $this->allowedConnectDomains = array_diff($this->allowedConnectDomains, [$domain]); + return $this; + } + + /** + * From which domains media elements can be embedded. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this * @since 8.1.0 @@ -187,6 +247,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed media domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowMediaDomain($domain) { + $this->allowedMediaDomains = array_diff($this->allowedMediaDomains, [$domain]); + return $this; + } + + /** * From which domains objects such as <object>, <embed> or <applet> are executed * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this @@ -198,6 +270,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed object domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowObjectDomain($domain) { + $this->allowedObjectDomains = array_diff($this->allowedObjectDomains, [$domain]); + return $this; + } + + /** * Which domains can be embedded in an iframe * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this @@ -209,6 +293,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed frame domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowFrameDomain($domain) { + $this->allowedFrameDomains = array_diff($this->allowedFrameDomains, [$domain]); + return $this; + } + + /** * Domains from which web-workers and nested browsing content can load elements * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this @@ -220,6 +316,18 @@ class ContentSecurityPolicy { } /** + * Remove the specified allowed child src domain from the allowed domains. + * + * @param string $domain + * @return $this + * @since 8.1.0 + */ + public function disallowChildSrcDomain($domain) { + $this->allowedChildSrcDomains = array_diff($this->allowedChildSrcDomains, [$domain]); + return $this; + } + + /** * Get the generated Content-Security-Policy as a string * @return string * @since 8.1.0 diff --git a/lib/public/ihelper.php b/lib/public/ihelper.php index a42dbf5ec61..41fe3f57c0a 100644 --- a/lib/public/ihelper.php +++ b/lib/public/ihelper.php @@ -33,6 +33,7 @@ namespace OCP; /** * Functions that don't have any specific interface to place * @since 6.0.0 + * @deprecated 8.1.0 */ interface IHelper { /** @@ -41,6 +42,7 @@ interface IHelper { * @param string $url the url that should be fetched * @return string the content of the webpage * @since 6.0.0 + * @deprecated 8.1.0 Use \OCP\IServerContainer::getHTTPClientService */ public function getUrlContent($url); } diff --git a/lib/public/util.php b/lib/public/util.php index 6eb5c6034c1..f032d0a5431 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -69,6 +69,24 @@ class Util { public static function getVersion() { return(\OC_Util::getVersion()); } + + /** + * Set current update channel + * @param string $channel + */ + public static function setChannel($channel) { + //Flush timestamp to reload version.php + \OC::$server->getSession()->set('OC_Version_Timestamp', 0); + return \OC::$server->getAppConfig()->setValue('core', 'OC_Channel', $channel); + } + + /** + * Get current update channel + * @return string + */ + public static function getChannel() { + return \OC_Util::getChannel(); + } /** * send an email diff --git a/settings/controller/checksetupcontroller.php b/settings/controller/checksetupcontroller.php index 15719ce215f..3ced5af5a5f 100644 --- a/settings/controller/checksetupcontroller.php +++ b/settings/controller/checksetupcontroller.php @@ -91,6 +91,23 @@ class CheckSetupController extends Controller { } /** + * Whether /dev/urandom is available to the PHP controller + * + * @return bool + */ + private function isUrandomAvailable() { + if(@file_exists('/dev/urandom')) { + $file = fopen('/dev/urandom', 'rb'); + if($file) { + fclose($file); + return true; + } + } + + return false; + } + + /** * @return DataResponse */ public function check() { @@ -100,6 +117,8 @@ class CheckSetupController extends Controller { 'dataDirectoryProtected' => $this->util->isHtaccessWorking($this->config), 'isMemcacheConfigured' => $this->isMemcacheConfigured(), 'memcacheDocs' => $this->urlGenerator->linkToDocs('admin-performance'), + 'isUrandomAvailable' => $this->isUrandomAvailable(), + 'securityDocs' => $this->urlGenerator->linkToDocs('admin-security'), ] ); } diff --git a/settings/l10n/az.js b/settings/l10n/az.js index 677a7d3ab54..9b5de07237d 100644 --- a/settings/l10n/az.js +++ b/settings/l10n/az.js @@ -107,6 +107,7 @@ OC.L10N.register( "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Biz təkidlə təklif edirik ki, göstərilən dillər üçün tələb edilən paketləri sisteminizdə yükləyəsiniz: %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\")" : "Eger sizin yüklənməniz root domain-də yüklənməyibsə və sistem cron-u istifadə edirsə, orda URL generasiyası ilə bağlı problemləriniz ola bilər. Bu problemləri aşmaq üçün xahiş olunur yüklənmə vaxtı \"overwrite.cli.url\" opsiyasını config.php faylında webroot ünvanı olaraq təyin edəsiniz (Məsləhətdir: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CRON işini CLİ-dan yerinə yetirmək mümkün olmadı. Görünən texniki səhv baş verdi.", + "Open documentation" : "Sənədləri aç", "Allow apps to use the Share API" : "Proqramlara izin verin ki, Paylaşım API-sindən istifadə edə bilsinlər.", "Allow users to share via link" : "Istifadəçilərə link üzərindən paylaşım etməyə izin vermək", "Enforce password protection" : "Şifrə müdafiəsini həyata keçirmək", diff --git a/settings/l10n/az.json b/settings/l10n/az.json index 1d0b227a3bd..7b778b3d818 100644 --- a/settings/l10n/az.json +++ b/settings/l10n/az.json @@ -105,6 +105,7 @@ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Biz təkidlə təklif edirik ki, göstərilən dillər üçün tələb edilən paketləri sisteminizdə yükləyəsiniz: %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\")" : "Eger sizin yüklənməniz root domain-də yüklənməyibsə və sistem cron-u istifadə edirsə, orda URL generasiyası ilə bağlı problemləriniz ola bilər. Bu problemləri aşmaq üçün xahiş olunur yüklənmə vaxtı \"overwrite.cli.url\" opsiyasını config.php faylında webroot ünvanı olaraq təyin edəsiniz (Məsləhətdir: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CRON işini CLİ-dan yerinə yetirmək mümkün olmadı. Görünən texniki səhv baş verdi.", + "Open documentation" : "Sənədləri aç", "Allow apps to use the Share API" : "Proqramlara izin verin ki, Paylaşım API-sindən istifadə edə bilsinlər.", "Allow users to share via link" : "Istifadəçilərə link üzərindən paylaşım etməyə izin vermək", "Enforce password protection" : "Şifrə müdafiəsini həyata keçirmək", diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js index a6c16fa5f55..b8e58315b69 100644 --- a/settings/l10n/cs_CZ.js +++ b/settings/l10n/cs_CZ.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"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 \"Default encryption module\" a spusťte příkaz '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í.", diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json index 627f21b95b2..49071c3ba88 100644 --- a/settings/l10n/cs_CZ.json +++ b/settings/l10n/cs_CZ.json @@ -145,7 +145,7 @@ "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. Please enable the \"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 \"Default encryption module\" a spusťte příkaz '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í.", diff --git a/settings/l10n/de.js b/settings/l10n/de.js index e0bf022dd39..10563cf0c3f 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"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 \"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.", @@ -181,7 +181,7 @@ OC.L10N.register( "Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen", "Version" : "Version", "Developer documentation" : "Dokumentation für Entwickler", - "Experimental applications ahead" : "Kommende experimentelle Apps", + "Experimental applications ahead" : "Experimentelle Apps nachfolgend", "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." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.", "by" : "von", "licensed" : "Lizenziert", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index f0a2efdbf91..6db4eabf736 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -145,7 +145,7 @@ "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. Please enable the \"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 \"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.", @@ -179,7 +179,7 @@ "Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen", "Version" : "Version", "Developer documentation" : "Dokumentation für Entwickler", - "Experimental applications ahead" : "Kommende experimentelle Apps", + "Experimental applications ahead" : "Experimentelle Apps nachfolgend", "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." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.", "by" : "von", "licensed" : "Lizenziert", diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index 4b8f056b4e4..a5d05a3084e 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"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 \"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.", @@ -181,7 +181,7 @@ OC.L10N.register( "Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen", "Version" : "Version", "Developer documentation" : "Dokumentation für Entwickler", - "Experimental applications ahead" : "Kommende experimentelle Apps", + "Experimental applications ahead" : "Experimentelle Apps nachfolgend", "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." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.", "by" : "von", "licensed" : "Lizenziert", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index 977ade2a79b..42758546e93 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -145,7 +145,7 @@ "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. Please enable the \"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 \"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.", @@ -179,7 +179,7 @@ "Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen", "Version" : "Version", "Developer documentation" : "Dokumentation für Entwickler", - "Experimental applications ahead" : "Kommende experimentelle Apps", + "Experimental applications ahead" : "Experimentelle Apps nachfolgend", "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." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.", "by" : "von", "licensed" : "Lizenziert", diff --git a/settings/l10n/el.js b/settings/l10n/el.js index 76b269cf443..159153f4b55 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης\" και εκτελέστε την εντολή '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." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index 02306218155..9c59d8aabaa 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -145,7 +145,7 @@ "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. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης\" και εκτελέστε την εντολή '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." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index 76951f31441..361600bf05b 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -107,6 +107,8 @@ OC.L10N.register( "NT LAN Manager" : "NT LAN Manager", "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 does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response.", + "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using 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." : "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 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.", @@ -141,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 registered at a webcron service to call cron.php every 15 minutes over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Use system's cron service to call the cron.php file every 15 minutes.", "Enable server-side encryption" : "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?" : "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" : "Enable encryption", + "No encryption module loaded, please enable an encryption module in the app menu." : "No encryption module loaded, please enable an encryption module in the app menu.", + "Select default encryption module:" : "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 \"Default encryption module\" and run 'occ encryption:migrate'" : "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one.", "Start migration" : "Start migration", "This is used for sending out notifications." : "This is used for sending out notifications.", "Send mode" : "Send mode", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index 4630170e7cf..8fa70ce9bc0 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -105,6 +105,8 @@ "NT LAN Manager" : "NT LAN Manager", "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 does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response.", + "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using 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." : "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 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.", @@ -139,6 +141,12 @@ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is registered at a webcron service to call cron.php every 15 minutes over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Use system's cron service to call the cron.php file every 15 minutes.", "Enable server-side encryption" : "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?" : "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" : "Enable encryption", + "No encryption module loaded, please enable an encryption module in the app menu." : "No encryption module loaded, please enable an encryption module in the app menu.", + "Select default encryption module:" : "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 \"Default encryption module\" and run 'occ encryption:migrate'" : "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one.", "Start migration" : "Start migration", "This is used for sending out notifications." : "This is used for sending out notifications.", "Send mode" : "Send mode", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index b5498e54347..55f085f5fe7 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesita migrar sus claves de cifrado provenientes 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.", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index b22631b5406..4b67f7aad14 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -145,7 +145,7 @@ "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. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesita migrar sus claves de cifrado provenientes 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.", diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js index 18736c23151..73e04bcfe0c 100644 --- a/settings/l10n/fi_FI.js +++ b/settings/l10n/fi_FI.js @@ -139,7 +139,6 @@ OC.L10N.register( "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.", @@ -240,6 +239,7 @@ OC.L10N.register( "E-Mail" : "Sähköposti", "Create" : "Luo", "Admin Recovery Password" : "Ylläpitäjän palautussalasana", + "Enter the recovery password in order to recover the users files during password change" : "Anna palautussalasana, jotta käyttäjien tiedostot on mahdollista palauttaa salasanan muuttamisen yhteydessä", "Search Users" : "Etsi käyttäjiä", "Add Group" : "Lisää ryhmä", "Group" : "Ryhmä", diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json index 9dc33ddd9fa..0d9157466c9 100644 --- a/settings/l10n/fi_FI.json +++ b/settings/l10n/fi_FI.json @@ -137,7 +137,6 @@ "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.", @@ -238,6 +237,7 @@ "E-Mail" : "Sähköposti", "Create" : "Luo", "Admin Recovery Password" : "Ylläpitäjän palautussalasana", + "Enter the recovery password in order to recover the users files during password change" : "Anna palautussalasana, jotta käyttäjien tiedostot on mahdollista palauttaa salasanan muuttamisen yhteydessä", "Search Users" : "Etsi käyttäjiä", "Add Group" : "Lisää ryhmä", "Group" : "Ryhmä", diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js index c5c80130933..25241af30d2 100644 --- a/settings/l10n/fr.js +++ b/settings/l10n/fr.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"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.", diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json index c50304bb099..355c5f727f5 100644 --- a/settings/l10n/fr.json +++ b/settings/l10n/fr.json @@ -145,7 +145,7 @@ "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. Please enable the \"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.", diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js index a9216f36da8..44619310294 100644 --- a/settings/l10n/gl.js +++ b/settings/l10n/gl.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "É necesario migrar as súas chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado» 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.", @@ -226,7 +226,7 @@ OC.L10N.register( "You are member of the following groups:" : "Vostede é membro dos seguintes grupos:", "Profile picture" : "Imaxe do perfil", "Upload new" : "Novo envío", - "Select new from Files" : "Seleccione unha nova de ficheiros", + "Select new from Files" : "Seleccionar outra nova desde Ficheiros", "Remove image" : "Retirar a imaxe", "Either png or jpg. Ideally square but you will be able to crop it." : "Calquera png ou jpg. É preferíbel que sexa cadrada, mais poderá recortala.", "Your avatar is provided by your original account." : "O seu avatar é fornecido pola súa conta orixinal.", diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json index 0f90b188d52..beb68e28559 100644 --- a/settings/l10n/gl.json +++ b/settings/l10n/gl.json @@ -145,7 +145,7 @@ "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. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "É necesario migrar as súas chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado» 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.", @@ -224,7 +224,7 @@ "You are member of the following groups:" : "Vostede é membro dos seguintes grupos:", "Profile picture" : "Imaxe do perfil", "Upload new" : "Novo envío", - "Select new from Files" : "Seleccione unha nova de ficheiros", + "Select new from Files" : "Seleccionar outra nova desde Ficheiros", "Remove image" : "Retirar a imaxe", "Either png or jpg. Ideally square but you will be able to crop it." : "Calquera png ou jpg. É preferíbel que sexa cadrada, mais poderá recortala.", "Your avatar is provided by your original account." : "O seu avatar é fornecido pola súa conta orixinal.", diff --git a/settings/l10n/id.js b/settings/l10n/id.js index 177e2f70f95..3a542c05f84 100644 --- a/settings/l10n/id.js +++ b/settings/l10n/id.js @@ -147,7 +147,6 @@ OC.L10N.register( "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.", diff --git a/settings/l10n/id.json b/settings/l10n/id.json index 30acbef09c2..cebcad27207 100644 --- a/settings/l10n/id.json +++ b/settings/l10n/id.json @@ -145,7 +145,6 @@ "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.", diff --git a/settings/l10n/it.js b/settings/l10n/it.js index 8e9ae024f1a..7c07db78f87 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"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\" 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.", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index 00e55c4b378..e13c850885a 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -145,7 +145,7 @@ "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. Please enable the \"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\" 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.", diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js index 7cc3c07d332..74d80b62413 100644 --- a/settings/l10n/ko.js +++ b/settings/l10n/ko.js @@ -147,7 +147,6 @@ OC.L10N.register( "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." : "알림을 보낼 때 사용됩니다.", diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json index 97049267a11..98f7519598a 100644 --- a/settings/l10n/ko.json +++ b/settings/l10n/ko.json @@ -145,7 +145,6 @@ "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." : "알림을 보낼 때 사용됩니다.", diff --git a/settings/l10n/nb_NO.js b/settings/l10n/nb_NO.js index aac2edc5dde..4c85e589ad9 100644 --- a/settings/l10n/nb_NO.js +++ b/settings/l10n/nb_NO.js @@ -3,8 +3,10 @@ OC.L10N.register( { "Security & setup warnings" : "Advarsler om sikkerhet og oppsett", "Sharing" : "Deling", + "Server-side encryption" : "Serverkryptering", "External Storage" : "Ekstern lagring", "Cron" : "Cron", + "Email server" : "E-postserver", "Log" : "Logg", "Tips & tricks" : "Tips og triks", "Updates" : "Oppdateringer", @@ -26,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Kunne ikke endre passord", "Enabled" : "Aktiv", "Not enabled" : "Ikke aktivert", + "A problem occurred, please check your log files (Error: %s)" : "Det oppstod et problem. Sjekk loggfilene (Feil: %s)", + "Migration Completed" : "Migrering ferdig", "Group already exists." : "Gruppe finnes allerede.", "Unable to add group." : "Kan ikke legge til gruppe.", "Unable to delete group." : "Kan ikke slette gruppe.", @@ -46,8 +50,13 @@ OC.L10N.register( "Email saved" : "Epost lagret", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ønsker du virkelig å legge til \"{domain}\" som tiltrodd domene?", "Add trusted domain" : "Legg til et tiltrodd domene", + "Migration in progress. Please wait until the migration is finished" : "Migrering utføres. Vent til migreringen er ferdig.", + "Migration started …" : "Migrering startet ..", "Sending..." : "Sender...", "All" : "Alle", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Offisielle apper utvikles av og innenfor ownCloud-fellesskapet. De tilbyr funksjonalitet som er sentral for ownCloud og er forberedt for produksjonsbruk.", + "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." : "Godkjente apper er utviklet av pålitelige utviklere og har gjennomgått en rask sikkerhetssjekk. De vedlikeholdes aktivt i et åpent kode-depot og utviklerne anser dem for å være stabile for tilfeldig til normal bruk.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Denne appen er ikke sjekket for sikkerhetsproblemer og er ny eller ansett for å være ustabil. Installer på egen risiko.", "Please wait...." : "Vennligst vent...", "Error while disabling app" : "Deaktivering av app feilet", "Disable" : "Deaktiver ", @@ -67,6 +76,7 @@ OC.L10N.register( "Strong password" : "Sterkt passord", "Valid until {date}" : "Gyldig til {date}", "Delete" : "Slett", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Det oppstod en feil. Vennligst last opp et ASCII-kodet PEM-sertifikat.", "Groups" : "Grupper", "Unable to delete {objName}" : "Kan ikke slette {objName}", "Error creating group" : "Feil ved oppretting av gruppe", @@ -97,6 +107,8 @@ OC.L10N.register( "NT LAN Manager" : "NT LAN Manager", "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 ser ikke ut til å være satt opp riktig for å lese systemets miljøvariabler. Testen med getenv(\"PATH\") returnerer bare et tomt svar.", + "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Sjekk installasjonsdokumentasjonen for notiser om PHP-konfigurering og om konfigurering av serveren, spesielt ved bruk av 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." : "Den skrivebeskyttede konfigurasjonen er blitt aktivert. Dette forhindrer setting av visse konfigureringer via web-grensesnittet. Videre må config-filen gjøres skrivbar manuelt for hver oppdatering.", "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.", @@ -109,6 +121,7 @@ OC.L10N.register( "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\")" : "Hvis installasjonen din ikke er installert i roten av domenet og bruker systemets cron, kan det bli problemer med URL-genereringen. For å unngå disse problemene, sett \"overwrite.cli.url\" i filen config.php til web-roten for installasjonen din (Foreslått: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Det var ikke mulig å kjøre cron-jobben vi CLI. Følgende tekniske feil oppstod:", "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>." : "Vennligst dobbeltsjekk <a target=\"_blank\" href=\"%s\">Installasjonsveiledningene ↗</a> og se etter feil og advarsler i <a href=\"#log-section\">loggen</a>.", + "Open documentation" : "Åpne dokumentasjonen", "Allow apps to use the Share API" : "Tillat apper å bruke API for Deling", "Allow users to share via link" : "Tillat brukere å dele via lenke", "Enforce password protection" : "Krev passordbeskyttelse", @@ -129,6 +142,14 @@ OC.L10N.register( "Execute one task with each page loaded" : "Utfør en oppgave med hver side som blir lastet", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registrert i en webcron-tjeneste for å kalle cron.php hvert 15. minutt over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Bruk systemets cron-tjeneste til å kalle cron.php hvert 15. minutt.", + "Enable server-side encryption" : "Aktiver serverkryptering", + "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?" : "Kryptering er en enveisprosess. Når kryptering er aktivert, vil alle filer fra det tidspunktet av bli kryptert på serveren og det vil ikke være mulig å deaktivere kryptering senere. Dette er siste advarsel: Vil du virkelig aktivere kryptering?", + "Enable encryption" : "Aktiver kryptering", + "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul er lastet. Aktiver en krypteringsmodul i app-menyen.", + "Select default encryption module:" : "Velg standard krypteringsmodul:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Du må migrere krypteringsnøklene din fra den gamle krypteringen (ownCloud <= 8.0) til den nye. Vennligst aktiver \"Standard krypteringsmodul\" og kjør 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du må migrere krypteringsnøklene din fra den gamle krypteringen (ownCloud <= 8.0) til den nye.", + "Start migration" : "Start migrering", "This is used for sending out notifications." : "Dette brukes for utsending av varsler.", "Send mode" : "Sendemåte", "Encryption" : "Kryptering", @@ -160,6 +181,8 @@ OC.L10N.register( "Hardening and security guidance" : "Herding og sikkerhetsveiledning", "Version" : "Versjon", "Developer documentation" : "Utviklerdokumentasjon", + "Experimental applications ahead" : "Eksperimentelle applikasjoner forut", + "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." : "Eksperimentelle apper er ikke sjekket for sikkerhetsproblemer, nye eller anses som ustabile og under travel utvikling. Å installere slike apper kan forårsake tap av data eller sikkerhetsbrudd.", "by" : "av", "licensed" : "lisensiert", "Documentation:" : "Dokumentasjon:", @@ -171,11 +194,17 @@ OC.L10N.register( "Update to %s" : "Oppdater til %s", "Enable only for specific groups" : "Aktiver kun for visse grupper", "Uninstall App" : "Avinstaller app", + "Enable experimental apps" : "Aktiver eksperimentelle apper", "No apps found for your version" : "Ingen apper funnet for din versjon", "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>" : "Hei,<br><br>vil bare informere om at du nå har en %s-konto.<br><br>Brukernavnet ditt: %s<br>Gå dit: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Ha det!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nVil bare informere om at du nå har en %s-konto.\n\nBrukernavnet ditt: %s\nGå dit: %s\n\n", + "User documentation" : "Brukerdokumentasjon", + "Administrator documentation" : "Administratordokumentasjon", + "Online documentation" : "Elektronisk dokumentasjon", "Forum" : "Forum", + "Issue tracker" : "Problemsporing", + "Commercial support" : "Forretningsstøtte", "Get the apps to sync your files" : "Hent apper som synkroniserer filene dine", "Desktop client" : "Skrivebordsklient", "Android app" : "Android-app", @@ -199,7 +228,7 @@ OC.L10N.register( "Upload new" : "Last opp nytt", "Select new from Files" : "Velg nytt fra Filer", "Remove image" : "Fjern bilde", - "Either png or jpg. Ideally square but you will be able to crop it." : "Enten png eller jpg. Helst kvadratisk men du kan beskjære det.", + "Either png or jpg. Ideally square but you will be able to crop it." : "Enten png eller jpg. Helst kvadratisk, men du kan beskjære det.", "Your avatar is provided by your original account." : "Avataren din kommer fra din opprinnelige konto.", "Cancel" : "Avbryt", "Choose as profile image" : "Velg som profilbilde", diff --git a/settings/l10n/nb_NO.json b/settings/l10n/nb_NO.json index 94ec9d09438..30dfcec7418 100644 --- a/settings/l10n/nb_NO.json +++ b/settings/l10n/nb_NO.json @@ -1,8 +1,10 @@ { "translations": { "Security & setup warnings" : "Advarsler om sikkerhet og oppsett", "Sharing" : "Deling", + "Server-side encryption" : "Serverkryptering", "External Storage" : "Ekstern lagring", "Cron" : "Cron", + "Email server" : "E-postserver", "Log" : "Logg", "Tips & tricks" : "Tips og triks", "Updates" : "Oppdateringer", @@ -24,6 +26,8 @@ "Unable to change password" : "Kunne ikke endre passord", "Enabled" : "Aktiv", "Not enabled" : "Ikke aktivert", + "A problem occurred, please check your log files (Error: %s)" : "Det oppstod et problem. Sjekk loggfilene (Feil: %s)", + "Migration Completed" : "Migrering ferdig", "Group already exists." : "Gruppe finnes allerede.", "Unable to add group." : "Kan ikke legge til gruppe.", "Unable to delete group." : "Kan ikke slette gruppe.", @@ -44,8 +48,13 @@ "Email saved" : "Epost lagret", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ønsker du virkelig å legge til \"{domain}\" som tiltrodd domene?", "Add trusted domain" : "Legg til et tiltrodd domene", + "Migration in progress. Please wait until the migration is finished" : "Migrering utføres. Vent til migreringen er ferdig.", + "Migration started …" : "Migrering startet ..", "Sending..." : "Sender...", "All" : "Alle", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Offisielle apper utvikles av og innenfor ownCloud-fellesskapet. De tilbyr funksjonalitet som er sentral for ownCloud og er forberedt for produksjonsbruk.", + "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." : "Godkjente apper er utviklet av pålitelige utviklere og har gjennomgått en rask sikkerhetssjekk. De vedlikeholdes aktivt i et åpent kode-depot og utviklerne anser dem for å være stabile for tilfeldig til normal bruk.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Denne appen er ikke sjekket for sikkerhetsproblemer og er ny eller ansett for å være ustabil. Installer på egen risiko.", "Please wait...." : "Vennligst vent...", "Error while disabling app" : "Deaktivering av app feilet", "Disable" : "Deaktiver ", @@ -65,6 +74,7 @@ "Strong password" : "Sterkt passord", "Valid until {date}" : "Gyldig til {date}", "Delete" : "Slett", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Det oppstod en feil. Vennligst last opp et ASCII-kodet PEM-sertifikat.", "Groups" : "Grupper", "Unable to delete {objName}" : "Kan ikke slette {objName}", "Error creating group" : "Feil ved oppretting av gruppe", @@ -95,6 +105,8 @@ "NT LAN Manager" : "NT LAN Manager", "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 ser ikke ut til å være satt opp riktig for å lese systemets miljøvariabler. Testen med getenv(\"PATH\") returnerer bare et tomt svar.", + "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Sjekk installasjonsdokumentasjonen for notiser om PHP-konfigurering og om konfigurering av serveren, spesielt ved bruk av 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." : "Den skrivebeskyttede konfigurasjonen er blitt aktivert. Dette forhindrer setting av visse konfigureringer via web-grensesnittet. Videre må config-filen gjøres skrivbar manuelt for hver oppdatering.", "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.", @@ -107,6 +119,7 @@ "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\")" : "Hvis installasjonen din ikke er installert i roten av domenet og bruker systemets cron, kan det bli problemer med URL-genereringen. For å unngå disse problemene, sett \"overwrite.cli.url\" i filen config.php til web-roten for installasjonen din (Foreslått: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Det var ikke mulig å kjøre cron-jobben vi CLI. Følgende tekniske feil oppstod:", "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>." : "Vennligst dobbeltsjekk <a target=\"_blank\" href=\"%s\">Installasjonsveiledningene ↗</a> og se etter feil og advarsler i <a href=\"#log-section\">loggen</a>.", + "Open documentation" : "Åpne dokumentasjonen", "Allow apps to use the Share API" : "Tillat apper å bruke API for Deling", "Allow users to share via link" : "Tillat brukere å dele via lenke", "Enforce password protection" : "Krev passordbeskyttelse", @@ -127,6 +140,14 @@ "Execute one task with each page loaded" : "Utfør en oppgave med hver side som blir lastet", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registrert i en webcron-tjeneste for å kalle cron.php hvert 15. minutt over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Bruk systemets cron-tjeneste til å kalle cron.php hvert 15. minutt.", + "Enable server-side encryption" : "Aktiver serverkryptering", + "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?" : "Kryptering er en enveisprosess. Når kryptering er aktivert, vil alle filer fra det tidspunktet av bli kryptert på serveren og det vil ikke være mulig å deaktivere kryptering senere. Dette er siste advarsel: Vil du virkelig aktivere kryptering?", + "Enable encryption" : "Aktiver kryptering", + "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul er lastet. Aktiver en krypteringsmodul i app-menyen.", + "Select default encryption module:" : "Velg standard krypteringsmodul:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Du må migrere krypteringsnøklene din fra den gamle krypteringen (ownCloud <= 8.0) til den nye. Vennligst aktiver \"Standard krypteringsmodul\" og kjør 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du må migrere krypteringsnøklene din fra den gamle krypteringen (ownCloud <= 8.0) til den nye.", + "Start migration" : "Start migrering", "This is used for sending out notifications." : "Dette brukes for utsending av varsler.", "Send mode" : "Sendemåte", "Encryption" : "Kryptering", @@ -158,6 +179,8 @@ "Hardening and security guidance" : "Herding og sikkerhetsveiledning", "Version" : "Versjon", "Developer documentation" : "Utviklerdokumentasjon", + "Experimental applications ahead" : "Eksperimentelle applikasjoner forut", + "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." : "Eksperimentelle apper er ikke sjekket for sikkerhetsproblemer, nye eller anses som ustabile og under travel utvikling. Å installere slike apper kan forårsake tap av data eller sikkerhetsbrudd.", "by" : "av", "licensed" : "lisensiert", "Documentation:" : "Dokumentasjon:", @@ -169,11 +192,17 @@ "Update to %s" : "Oppdater til %s", "Enable only for specific groups" : "Aktiver kun for visse grupper", "Uninstall App" : "Avinstaller app", + "Enable experimental apps" : "Aktiver eksperimentelle apper", "No apps found for your version" : "Ingen apper funnet for din versjon", "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>" : "Hei,<br><br>vil bare informere om at du nå har en %s-konto.<br><br>Brukernavnet ditt: %s<br>Gå dit: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Ha det!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nVil bare informere om at du nå har en %s-konto.\n\nBrukernavnet ditt: %s\nGå dit: %s\n\n", + "User documentation" : "Brukerdokumentasjon", + "Administrator documentation" : "Administratordokumentasjon", + "Online documentation" : "Elektronisk dokumentasjon", "Forum" : "Forum", + "Issue tracker" : "Problemsporing", + "Commercial support" : "Forretningsstøtte", "Get the apps to sync your files" : "Hent apper som synkroniserer filene dine", "Desktop client" : "Skrivebordsklient", "Android app" : "Android-app", @@ -197,7 +226,7 @@ "Upload new" : "Last opp nytt", "Select new from Files" : "Velg nytt fra Filer", "Remove image" : "Fjern bilde", - "Either png or jpg. Ideally square but you will be able to crop it." : "Enten png eller jpg. Helst kvadratisk men du kan beskjære det.", + "Either png or jpg. Ideally square but you will be able to crop it." : "Enten png eller jpg. Helst kvadratisk, men du kan beskjære det.", "Your avatar is provided by your original account." : "Avataren din kommer fra din opprinnelige konto.", "Cancel" : "Avbryt", "Choose as profile image" : "Velg som profilbilde", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index 3c42aa7f35b..2dc2722e9f4 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"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 \"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.", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index d2bb1d66b58..f6a14025985 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -145,7 +145,7 @@ "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. Please enable the \"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 \"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.", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index f516d763038..b4904d1412c 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -147,7 +147,7 @@ OC.L10N.register( "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. Please enable the \"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\" 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.", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index f982b48d150..735620e3b7f 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -145,7 +145,7 @@ "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. Please enable the \"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\" 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.", diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js index 7cc1ce408d3..3c189c7ad8d 100644 --- a/settings/l10n/sr.js +++ b/settings/l10n/sr.js @@ -147,7 +147,6 @@ OC.L10N.register( "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." : "Ово се користи за слање обавештења.", diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json index d2d33b143b1..da2a1f49e0c 100644 --- a/settings/l10n/sr.json +++ b/settings/l10n/sr.json @@ -145,7 +145,6 @@ "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." : "Ово се користи за слање обавештења.", diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js index 313a118900b..c2234b882da 100644 --- a/settings/l10n/zh_CN.js +++ b/settings/l10n/zh_CN.js @@ -121,7 +121,7 @@ OC.L10N.register( "User Documentation" : "用户文档", "Admin Documentation" : "管理员文档", "Enable only for specific groups" : "仅对特定的组开放", - "Uninstall App" : "下载应用", + "Uninstall App" : "卸载应用", "Cheers!" : "干杯!", "Forum" : "论坛", "Get the apps to sync your files" : "安装应用进行文件同步", diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json index d9ea601b66a..15517f26720 100644 --- a/settings/l10n/zh_CN.json +++ b/settings/l10n/zh_CN.json @@ -119,7 +119,7 @@ "User Documentation" : "用户文档", "Admin Documentation" : "管理员文档", "Enable only for specific groups" : "仅对特定的组开放", - "Uninstall App" : "下载应用", + "Uninstall App" : "卸载应用", "Cheers!" : "干杯!", "Forum" : "论坛", "Get the apps to sync your files" : "安装应用进行文件同步", diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 3c21a547092..f9a99b589af 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -358,7 +358,7 @@ if ($_['cronErrors']) { <div id="migrationWarning" class="<?php if ($_['encryptionReady']) p('hidden'); ?>"> <?php if ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === true) { - p($l->t('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\'')); + p($l->t('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the "Default encryption module" and run \'occ encryption:migrate\'')); } elseif ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === false) { p($l->t('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one.')); ?> <input type="submit" name="startmigration" id="startmigration" diff --git a/settings/templates/apps.php b/settings/templates/apps.php index 6bbde71df97..0904f31df4d 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -31,7 +31,7 @@ script( <?php if(OC_Config::getValue('appstoreenabled', true) === true): ?> <li> - <a class="app-external" target="_blank" href="https://owncloud.org/dev"><?php p($l->t('Developer documentation'));?> …</a> + <a class="app-external" target="_blank" href="https://owncloud.org/dev"><?php p($l->t('Developer documentation'));?> ↗</a> </li> <?php endif; ?> </script> diff --git a/tests/core/avatar/avatarcontrollertest.php b/tests/core/avatar/avatarcontrollertest.php index a5456eb6789..c58d7febc3f 100644 --- a/tests/core/avatar/avatarcontrollertest.php +++ b/tests/core/avatar/avatarcontrollertest.php @@ -88,11 +88,7 @@ class AvatarControllerTest extends \Test\TestCase { $this->user = $this->getUniqueID('user'); OC::$server->getUserManager()->createUser($this->user, $this->user); - \OC_Util::tearDownFS(); - \OC_User::setUserId(''); - Filesystem::tearDown(); - \OC_User::setUserId($this->user); - \OC_Util::setupFS($this->user); + $this->loginAsUser($this->user); // Create Cache dir $view = new \OC\Files\View('/'.$this->user); diff --git a/tests/karma.config.js b/tests/karma.config.js index 997da4bcb26..8aeadc123e7 100644 --- a/tests/karma.config.js +++ b/tests/karma.config.js @@ -54,7 +54,8 @@ module.exports = function(config) { 'apps/files_sharing/js/app.js', 'apps/files_sharing/js/sharedfilelist.js', 'apps/files_sharing/js/share.js', - 'apps/files_sharing/js/external.js' + 'apps/files_sharing/js/external.js', + 'apps/files_sharing/js/public.js' ], testFiles: ['apps/files_sharing/tests/js/*.js'] }, diff --git a/tests/lib/appframework/http/ContentSecurityPolicyTest.php b/tests/lib/appframework/http/ContentSecurityPolicyTest.php index f79c23ae644..18d71df483f 100644 --- a/tests/lib/appframework/http/ContentSecurityPolicyTest.php +++ b/tests/lib/appframework/http/ContentSecurityPolicyTest.php @@ -47,6 +47,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowScriptDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowScriptDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' www.owncloud.com 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowScriptDomainMultipleStacked() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedScriptDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowScriptDomain('www.owncloud.org')->disallowScriptDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetPolicyScriptAllowInline() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-inline' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; @@ -85,6 +109,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowStyleDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowStyleDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' www.owncloud.com 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowStyleDomainMultipleStacked() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedStyleDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowStyleDomain('www.owncloud.org')->disallowStyleDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetPolicyStyleAllowInline() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; @@ -121,6 +169,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowImageDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowImageDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowImageDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self' www.owncloud.com;font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowImageDomainMultipleStakes() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedImageDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowImageDomain('www.owncloud.org')->disallowImageDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetPolicyFontDomainValid() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self' www.owncloud.com;connect-src 'self';media-src 'self'"; @@ -136,6 +208,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowFontDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowFontDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowFontDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self' www.owncloud.com;connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowFontDomainMultipleStakes() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedFontDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowFontDomain('www.owncloud.org')->disallowFontDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetPolicyConnectDomainValid() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self' www.owncloud.com;media-src 'self'"; @@ -151,6 +247,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowConnectDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowConnectDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self' www.owncloud.com;media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowConnectDomainMultipleStakes() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedConnectDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowConnectDomain('www.owncloud.org')->disallowConnectDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetPolicyMediaDomainValid() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' www.owncloud.com"; @@ -166,6 +286,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowMediaDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowMediaDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self' www.owncloud.com"; + + $this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowMediaDomainMultipleStakes() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedMediaDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowMediaDomain('www.owncloud.org')->disallowMediaDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetPolicyObjectDomainValid() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';object-src www.owncloud.com"; @@ -181,6 +325,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowObjectDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowObjectDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';object-src www.owncloud.com"; + + $this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowObjectDomainMultipleStakes() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedObjectDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowObjectDomain('www.owncloud.org')->disallowObjectDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetAllowedFrameDomain() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';frame-src www.owncloud.com"; @@ -196,6 +364,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowFrameDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowFrameDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';frame-src www.owncloud.com"; + + $this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowFrameDomainMultipleStakes() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedFrameDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowFrameDomain('www.owncloud.org')->disallowFrameDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testGetAllowedChildSrcDomain() { $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';child-src child.owncloud.com"; @@ -211,6 +403,30 @@ class ContentSecurityPolicyTest extends \Test\TestCase { $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); } + public function testGetPolicyDisallowChildSrcDomain() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowChildSrcDomainMultiple() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self';child-src www.owncloud.com"; + + $this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + + public function testGetPolicyDisallowChildSrcDomainMultipleStakes() { + $expectedPolicy = "default-src 'none';script-src 'self' 'unsafe-eval';style-src 'self' 'unsafe-inline';img-src 'self';font-src 'self';connect-src 'self';media-src 'self'"; + + $this->contentSecurityPolicy->addAllowedChildSrcDomain('www.owncloud.com'); + $this->contentSecurityPolicy->disallowChildSrcDomain('www.owncloud.org')->disallowChildSrcDomain('www.owncloud.com'); + $this->assertSame($expectedPolicy, $this->contentSecurityPolicy->buildPolicy()); + } + public function testConfigureStacked() { $expectedPolicy = "default-src 'none';script-src 'self' script.owncloud.org;style-src 'self' style.owncloud.org;img-src 'self' img.owncloud.org;font-src 'self' font.owncloud.org;connect-src 'self' connect.owncloud.org;media-src 'self' media.owncloud.org;object-src objects.owncloud.org;frame-src frame.owncloud.org;child-src child.owncloud.org"; diff --git a/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php b/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php index a4f3137cb11..92ea5450ab9 100644 --- a/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php +++ b/tests/lib/appframework/middleware/security/CORSMiddlewareTest.php @@ -21,10 +21,12 @@ use OCP\AppFramework\Http\Response; class CORSMiddlewareTest extends \Test\TestCase { private $reflector; + private $session; protected function setUp() { parent::setUp(); $this->reflector = new ControllerMethodReflector(); + $this->session = $this->getMock('\OCP\IUserSession'); } /** @@ -41,7 +43,7 @@ class CORSMiddlewareTest extends \Test\TestCase { $this->getMock('\OCP\IConfig') ); $this->reflector->reflect($this, __FUNCTION__); - $middleware = new CORSMiddleware($request, $this->reflector); + $middleware = new CORSMiddleware($request, $this->reflector, $this->session); $response = $middleware->afterController($this, __FUNCTION__, new Response()); $headers = $response->getHeaders(); @@ -59,7 +61,7 @@ class CORSMiddlewareTest extends \Test\TestCase { $this->getMock('\OCP\Security\ISecureRandom'), $this->getMock('\OCP\IConfig') ); - $middleware = new CORSMiddleware($request, $this->reflector); + $middleware = new CORSMiddleware($request, $this->reflector, $this->session); $response = $middleware->afterController($this, __FUNCTION__, new Response()); $headers = $response->getHeaders(); @@ -77,7 +79,7 @@ class CORSMiddlewareTest extends \Test\TestCase { $this->getMock('\OCP\IConfig') ); $this->reflector->reflect($this, __FUNCTION__); - $middleware = new CORSMiddleware($request, $this->reflector); + $middleware = new CORSMiddleware($request, $this->reflector, $this->session); $response = $middleware->afterController($this, __FUNCTION__, new Response()); $headers = $response->getHeaders(); @@ -100,11 +102,76 @@ class CORSMiddlewareTest extends \Test\TestCase { $this->getMock('\OCP\IConfig') ); $this->reflector->reflect($this, __FUNCTION__); - $middleware = new CORSMiddleware($request, $this->reflector); + $middleware = new CORSMiddleware($request, $this->reflector, $this->session); $response = new Response(); $response->addHeader('AcCess-control-Allow-Credentials ', 'TRUE'); $middleware->afterController($this, __FUNCTION__, $response); } + /** + * @CORS + * @PublicPage + */ + public function testNoCORSShouldAllowCookieAuth() { + $request = new Request( + [], + $this->getMock('\OCP\Security\ISecureRandom'), + $this->getMock('\OCP\IConfig') + ); + $this->reflector->reflect($this, __FUNCTION__); + $middleware = new CORSMiddleware($request, $this->reflector, $this->session); + + $middleware->beforeController($this, __FUNCTION__, new Response()); + } + + /** + * @CORS + */ + public function testCORSShouldRelogin() { + $request = new Request( + ['server' => [ + 'PHP_AUTH_USER' => 'user', + 'PHP_AUTH_PW' => 'pass' + ]], + $this->getMock('\OCP\Security\ISecureRandom'), + $this->getMock('\OCP\IConfig') + ); + $this->session->expects($this->once()) + ->method('logout'); + $this->session->expects($this->once()) + ->method('login') + ->with($this->equalTo('user'), $this->equalTo('pass')) + ->will($this->returnValue(true)); + $this->reflector->reflect($this, __FUNCTION__); + $middleware = new CORSMiddleware($request, $this->reflector, $this->session); + + $middleware->beforeController($this, __FUNCTION__, new Response()); + } + + /** + * @CORS + * @expectedException \OC\AppFramework\Middleware\Security\SecurityException + */ + public function testCORSShouldNotAllowCookieAuth() { + $request = new Request( + ['server' => [ + 'PHP_AUTH_USER' => 'user', + 'PHP_AUTH_PW' => 'pass' + ]], + $this->getMock('\OCP\Security\ISecureRandom'), + $this->getMock('\OCP\IConfig') + ); + $this->session->expects($this->once()) + ->method('logout'); + $this->session->expects($this->once()) + ->method('login') + ->with($this->equalTo('user'), $this->equalTo('pass')) + ->will($this->returnValue(false)); + $this->reflector->reflect($this, __FUNCTION__); + $middleware = new CORSMiddleware($request, $this->reflector, $this->session); + + $middleware->beforeController($this, __FUNCTION__, new Response()); + } + } diff --git a/tests/lib/db/migrator.php b/tests/lib/db/migrator.php index 54267740480..6bde68c2d20 100644 --- a/tests/lib/db/migrator.php +++ b/tests/lib/db/migrator.php @@ -26,11 +26,17 @@ class Migrator extends \Test\TestCase { */ private $manager; + /** + * @var IConfig + **/ + private $config; + private $tableName; protected function setUp() { parent::setUp(); + $this->config = \OC::$server->getConfig(); $this->connection = \OC_DB::getConnection(); if ($this->connection->getDatabasePlatform() instanceof OraclePlatform) { $this->markTestSkipped('DB migration tests are not supported on OCI'); @@ -39,7 +45,7 @@ class Migrator extends \Test\TestCase { $this->markTestSkipped('DB migration tests are not supported on MSSQL'); } $this->manager = new \OC\DB\MDB2SchemaManager($this->connection); - $this->tableName = strtolower($this->getUniqueID('oc_test_')); + $this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix', 'oc_') . 'test_')); } protected function tearDown() { @@ -109,6 +115,27 @@ class Migrator extends \Test\TestCase { $this->assertTrue(true); } + public function testUpgradeDifferentPrefix() { + $oldTablePrefix = $this->config->getSystemValue('dbtableprefix', 'oc_'); + + $this->config->setSystemValue('dbtableprefix', 'ownc_'); + $this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix') . 'test_')); + + list($startSchema, $endSchema) = $this->getDuplicateKeySchemas(); + $migrator = $this->manager->getMigrator(); + $migrator->migrate($startSchema); + + $this->connection->insert($this->tableName, array('id' => 1, 'name' => 'foo')); + $this->connection->insert($this->tableName, array('id' => 2, 'name' => 'bar')); + $this->connection->insert($this->tableName, array('id' => 3, 'name' => 'qwerty')); + + $migrator->checkMigrate($endSchema); + $migrator->migrate($endSchema); + $this->assertTrue(true); + + $this->config->setSystemValue('dbtableprefix', $oldTablePrefix); + } + public function testInsertAfterUpgrade() { list($startSchema, $endSchema) = $this->getDuplicateKeySchemas(); $migrator = $this->manager->getMigrator(); diff --git a/tests/lib/encryption/keys/storage.php b/tests/lib/encryption/keys/storage.php index e67103fb6aa..fa623ac1c1b 100644 --- a/tests/lib/encryption/keys/storage.php +++ b/tests/lib/encryption/keys/storage.php @@ -76,7 +76,9 @@ class StorageTest extends TestCase { $this->util->expects($this->any()) ->method('getUidAndFilename') ->willReturn(array('user1', '/files/foo.txt')); - $this->util->expects($this->any()) + // we need to strip away the part file extension in order to reuse a + // existing key if it exists, otherwise versions will break + $this->util->expects($this->once()) ->method('stripPartialFileExtension') ->willReturnArgument(0); $this->util->expects($this->any()) diff --git a/tests/lib/encryption/utiltest.php b/tests/lib/encryption/utiltest.php index 0154fa30f7d..d3a4e211daa 100644 --- a/tests/lib/encryption/utiltest.php +++ b/tests/lib/encryption/utiltest.php @@ -174,4 +174,24 @@ class UtilTest extends TestCase { ); } + /** + * @dataProvider dataTestStripPartialFileExtension + * + * @param string $path + * @param string $expected + */ + public function testStripPartialFileExtension($path, $expected) { + $this->assertSame($expected, + $this->util->stripPartialFileExtension($path)); + } + + public function dataTestStripPartialFileExtension() { + return array( + array('/foo/test.txt', '/foo/test.txt'), + array('/foo/test.txt.part', '/foo/test.txt'), + array('/foo/test.txt.ocTransferId7567846853.part', '/foo/test.txt'), + array('/foo/test.txt.ocTransferId7567.part', '/foo/test.txt'), + ); + } + } diff --git a/tests/lib/files/cache/updater.php b/tests/lib/files/cache/updater.php index 726ee360479..ea75c8dcd72 100644 --- a/tests/lib/files/cache/updater.php +++ b/tests/lib/files/cache/updater.php @@ -216,27 +216,38 @@ class Updater extends \Test\TestCase { $this->storage->getScanner()->scan(''); + $this->assertTrue($this->cache->inCache('foo')); $this->assertTrue($this->cache->inCache('foo/foo.txt')); $this->assertTrue($this->cache->inCache('foo/bar.txt')); + $this->assertTrue($this->cache->inCache('foo/bar')); $this->assertTrue($this->cache->inCache('foo/bar/bar.txt')); $cached = []; + $cached[] = $this->cache->get('foo'); $cached[] = $this->cache->get('foo/foo.txt'); $cached[] = $this->cache->get('foo/bar.txt'); + $cached[] = $this->cache->get('foo/bar'); $cached[] = $this->cache->get('foo/bar/bar.txt'); - $this->view->rename('/foo', '/bar/foo'); + // add extension to trigger the possible mimetype change + $this->view->rename('/foo', '/bar/foo.b'); + $this->assertFalse($this->cache->inCache('foo')); $this->assertFalse($this->cache->inCache('foo/foo.txt')); $this->assertFalse($this->cache->inCache('foo/bar.txt')); + $this->assertFalse($this->cache->inCache('foo/bar')); $this->assertFalse($this->cache->inCache('foo/bar/bar.txt')); - $this->assertTrue($cache2->inCache('foo/foo.txt')); - $this->assertTrue($cache2->inCache('foo/bar.txt')); - $this->assertTrue($cache2->inCache('foo/bar/bar.txt')); + $this->assertTrue($cache2->inCache('foo.b')); + $this->assertTrue($cache2->inCache('foo.b/foo.txt')); + $this->assertTrue($cache2->inCache('foo.b/bar.txt')); + $this->assertTrue($cache2->inCache('foo.b/bar')); + $this->assertTrue($cache2->inCache('foo.b/bar/bar.txt')); $cachedTarget = []; - $cachedTarget[] = $cache2->get('foo/foo.txt'); - $cachedTarget[] = $cache2->get('foo/bar.txt'); - $cachedTarget[] = $cache2->get('foo/bar/bar.txt'); + $cachedTarget[] = $cache2->get('foo.b'); + $cachedTarget[] = $cache2->get('foo.b/foo.txt'); + $cachedTarget[] = $cache2->get('foo.b/bar.txt'); + $cachedTarget[] = $cache2->get('foo.b/bar'); + $cachedTarget[] = $cache2->get('foo.b/bar/bar.txt'); foreach ($cached as $i => $old) { $new = $cachedTarget[$i]; @@ -244,6 +255,7 @@ class Updater extends \Test\TestCase { $this->assertEquals($old['size'], $new['size']); $this->assertEquals($old['etag'], $new['etag']); $this->assertEquals($old['fileid'], $new['fileid']); + $this->assertEquals($old['mimetype'], $new['mimetype']); } } } diff --git a/tests/lib/files/node/integration.php b/tests/lib/files/node/integration.php index 545793be54a..2d5ccd1fb85 100644 --- a/tests/lib/files/node/integration.php +++ b/tests/lib/files/node/integration.php @@ -8,7 +8,6 @@ namespace Test\Files\Node; -use OC\Files\Cache\Cache; use OC\Files\Node\Root; use OC\Files\Storage\Temporary; use OC\Files\View; diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php index 938fecb5bf3..e8602b6b24a 100644 --- a/tests/lib/files/storage/storage.php +++ b/tests/lib/files/storage/storage.php @@ -176,7 +176,7 @@ abstract class Storage extends \Test\TestCase { ]; } - public function initSourceAndTarget ($source, $target = null) { + public function initSourceAndTarget($source, $target = null) { $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $this->instance->file_put_contents($source, file_get_contents($textFile)); if ($target) { @@ -185,12 +185,12 @@ abstract class Storage extends \Test\TestCase { } } - public function assertSameAsLorem ($file) { + public function assertSameAsLorem($file) { $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt'; $this->assertEquals( file_get_contents($textFile), $this->instance->file_get_contents($file), - 'Expected '.$file.' to be a copy of '.$textFile + 'Expected ' . $file . ' to be a copy of ' . $textFile ); } @@ -202,9 +202,9 @@ abstract class Storage extends \Test\TestCase { $this->instance->copy($source, $target); - $this->assertTrue($this->instance->file_exists($target), $target.' was not created'); + $this->assertTrue($this->instance->file_exists($target), $target . ' was not created'); $this->assertSameAsLorem($target); - $this->assertTrue($this->instance->file_exists($source), $source.' was deleted'); + $this->assertTrue($this->instance->file_exists($source), $source . ' was deleted'); } /** @@ -216,8 +216,8 @@ abstract class Storage extends \Test\TestCase { $this->instance->rename($source, $target); $this->wait(); - $this->assertTrue($this->instance->file_exists($target), $target.' was not created'); - $this->assertFalse($this->instance->file_exists($source), $source.' still exists'); + $this->assertTrue($this->instance->file_exists($target), $target . ' was not created'); + $this->assertFalse($this->instance->file_exists($source), $source . ' still exists'); $this->assertSameAsLorem($target); } @@ -225,12 +225,12 @@ abstract class Storage extends \Test\TestCase { * @dataProvider copyAndMoveProvider */ public function testCopyOverwrite($source, $target) { - $this->initSourceAndTarget($source,$target); + $this->initSourceAndTarget($source, $target); $this->instance->copy($source, $target); - $this->assertTrue($this->instance->file_exists($target), $target.' was not created'); - $this->assertTrue($this->instance->file_exists($source), $source.' was deleted'); + $this->assertTrue($this->instance->file_exists($target), $target . ' was not created'); + $this->assertTrue($this->instance->file_exists($source), $source . ' was deleted'); $this->assertSameAsLorem($target); $this->assertSameAsLorem($source); } @@ -243,8 +243,8 @@ abstract class Storage extends \Test\TestCase { $this->instance->rename($source, $target); - $this->assertTrue($this->instance->file_exists($target), $target.' was not created'); - $this->assertFalse($this->instance->file_exists($source), $source.' still exists'); + $this->assertTrue($this->instance->file_exists($target), $target . ' was not created'); + $this->assertFalse($this->instance->file_exists($source), $source . ' still exists'); $this->assertSameAsLorem($target); } @@ -535,4 +535,17 @@ abstract class Storage extends \Test\TestCase { $this->assertTrue($this->instance->instanceOfStorage(get_class($this->instance))); $this->assertFalse($this->instance->instanceOfStorage('\OC')); } + + /** + * @dataProvider copyAndMoveProvider + */ + public function testCopyFromSameStorage($source, $target) { + $this->initSourceAndTarget($source); + + $this->instance->copyFromStorage($this->instance, $source, $target); + + $this->assertTrue($this->instance->file_exists($target), $target . ' was not created'); + $this->assertSameAsLorem($target); + $this->assertTrue($this->instance->file_exists($source), $source . ' was deleted'); + } } diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php index 361592f6ca1..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,9 +128,9 @@ 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', 'getEncryptionModule']) @@ -257,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/dummyencryptionwrapper.php b/tests/lib/files/stream/dummyencryptionwrapper.php new file mode 100644 index 00000000000..bb512d99c66 --- /dev/null +++ b/tests/lib/files/stream/dummyencryptionwrapper.php @@ -0,0 +1,37 @@ +<?php +/** + * @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/> + * + */ + + +namespace Test\Files\Stream; + +class DummyEncryptionWrapper extends \OC\Files\Stream\Encryption { + + /** + * simulate a non-seekable stream wrapper by always return false + * + * @param int $position + * @return bool + */ + protected function parentStreamSeek($position) { + return false; + } + +} diff --git a/tests/lib/files/stream/encryption.php b/tests/lib/files/stream/encryption.php index 30c6d247236..281ec0a14a0 100644 --- a/tests/lib/files/stream/encryption.php +++ b/tests/lib/files/stream/encryption.php @@ -3,17 +3,19 @@ namespace Test\Files\Stream; use OC\Files\View; -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 * @param integer $unencryptedSize * @return resource */ - protected function getStream($fileName, $mode, $unencryptedSize) { + protected function getStream($fileName, $mode, $unencryptedSize, $wrapper = '\OC\Files\Stream\Encryption') { clearstatcache(); $size = filesize($fileName); $source = fopen($fileName, $mode); @@ -21,7 +23,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') @@ -42,9 +44,10 @@ class Encryption extends \Test\TestCase { ->method('getUidAndFilename') ->willReturn(['user1', $internalPath]); - return \OC\Files\Stream\Encryption::wrap($source, $internalPath, - $fullPath, $header, $uid, $encryptionModule, $storage, $encStorage, - $util, $file, $mode, $size, $unencryptedSize, 8192); + + return $wrapper::wrap($source, $internalPath, + $fullPath, $header, $uid, $this->encryptionModule, $storage, $encStorage, + $util, $file, $mode, $size, $unencryptedSize, 8192, $wrapper); } /** @@ -221,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); @@ -249,6 +257,49 @@ class Encryption extends \Test\TestCase { } /** + * simulate a non-seekable storage + * + * @dataProvider dataFilesProvider + */ + public function testWriteToNonSeekableStorage($testFile) { + + $wrapper = $this->getMockBuilder('\OC\Files\Stream\Encryption') + ->setMethods(['parentSeekStream'])->getMock(); + $wrapper->expects($this->any())->method('parentSeekStream')->willReturn(false); + + $expectedData = file_get_contents(\OC::$SERVERROOT . '/tests/data/' . $testFile); + // write it + $fileName = tempnam("/tmp", "FOO"); + $stream = $this->getStream($fileName, 'w+', 0, '\Test\Files\Stream\DummyEncryptionWrapper'); + // 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); + + // read it all + $stream = $this->getStream($fileName, 'r', strlen($expectedData), '\Test\Files\Stream\DummyEncryptionWrapper'); + $data = stream_get_contents($stream); + fclose($stream); + + $this->assertEquals($expectedData, $data); + + // another read test with a loop like we do in several places: + $stream = $this->getStream($fileName, 'r', strlen($expectedData)); + $data = ''; + while (!feof($stream)) { + $data .= fread($stream, 8192); + } + fclose($stream); + + $this->assertEquals($expectedData, $data); + + unlink($fileName); + + } + + /** * @return \PHPUnit_Framework_MockObject_MockObject */ protected function buildMockModule() { diff --git a/tests/lib/httphelper.php b/tests/lib/httphelper.php index e8472ab553a..1d0981ba51b 100644 --- a/tests/lib/httphelper.php +++ b/tests/lib/httphelper.php @@ -12,15 +12,17 @@ class TestHTTPHelper extends \Test\TestCase { private $config; /** @var \OC\HTTPHelper */ private $httpHelperMock; + /** @var \OCP\Http\Client\IClientService */ + private $clientService; protected function setUp() { parent::setUp(); $this->config = $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor()->getMock(); - $clientService = $this->getMock('\OCP\Http\Client\IClientService'); + $this->clientService = $this->getMock('\OCP\Http\Client\IClientService'); $this->httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper') - ->setConstructorArgs(array($this->config, $clientService)) + ->setConstructorArgs(array($this->config, $this->clientService)) ->setMethods(array('getHeaders')) ->getMock(); } @@ -44,4 +46,73 @@ class TestHTTPHelper extends \Test\TestCase { public function testIsHTTP($url, $expected) { $this->assertSame($expected, $this->httpHelperMock->isHTTPURL($url)); } + + public function testPostSuccess() { + $client = $this->getMockBuilder('\OCP\Http\Client\IClient') + ->disableOriginalConstructor()->getMock(); + $this->clientService + ->expects($this->once()) + ->method('newClient') + ->will($this->returnValue($client)); + $response = $this->getMockBuilder('\OCP\Http\Client\IResponse') + ->disableOriginalConstructor()->getMock(); + $client + ->expects($this->once()) + ->method('post') + ->with( + 'https://owncloud.org', + [ + 'body' => [ + 'Foo' => 'Bar', + ], + 'connect_timeout' => 10, + + ] + ) + ->will($this->returnValue($response)); + $response + ->expects($this->once()) + ->method('getBody') + ->will($this->returnValue('Body of the requested page')); + + + $response = $this->httpHelperMock->post('https://owncloud.org', ['Foo' => 'Bar']); + $expected = [ + 'success' => true, + 'result' => 'Body of the requested page' + ]; + $this->assertSame($expected, $response); + } + + public function testPostException() { + $client = $this->getMockBuilder('\OCP\Http\Client\IClient') + ->disableOriginalConstructor()->getMock(); + $this->clientService + ->expects($this->once()) + ->method('newClient') + ->will($this->returnValue($client)); + $client + ->expects($this->once()) + ->method('post') + ->with( + 'https://owncloud.org', + [ + 'body' => [ + 'Foo' => 'Bar', + ], + 'connect_timeout' => 10, + + ] + ) + ->will($this->throwException(new \Exception('Something failed'))); + + + $response = $this->httpHelperMock->post('https://owncloud.org', ['Foo' => 'Bar']); + $expected = [ + 'success' => false, + 'result' => 'Something failed' + ]; + $this->assertSame($expected, $response); + } + } diff --git a/tests/lib/logger.php b/tests/lib/logger.php index 700a847917b..9a9f5be12fc 100644 --- a/tests/lib/logger.php +++ b/tests/lib/logger.php @@ -21,14 +21,38 @@ class Logger extends TestCase { parent::setUp(); self::$logs = array(); - $this->logger = new Log('Test\Logger'); + $this->config = $this->getMockBuilder( + '\OC\SystemConfig') + ->disableOriginalConstructor() + ->getMock(); + $this->logger = new Log('Test\Logger', $this->config); } public function testInterpolation() { $logger = $this->logger; - $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); + $logger->warning('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); - $expected = array('1 {Message {nothing} Bob Bar a}'); + $expected = array('2 {Message {nothing} Bob Bar a}'); + $this->assertEquals($expected, $this->getLogs()); + } + + public function testAppCondition() { + $this->config->expects($this->any()) + ->method('getValue') + ->will(($this->returnValueMap([ + ['loglevel', \OC_Log::WARN, \OC_Log::WARN], + ['log.condition', [], ['apps' => ['files']]] + ]))); + $logger = $this->logger; + + $logger->info('Don\'t display info messages'); + $logger->info('Show info messages of files app', ['app' => 'files']); + $logger->warning('Show warning messages of other apps'); + + $expected = [ + '1 Show info messages of files app', + '2 Show warning messages of other apps', + ]; $this->assertEquals($expected, $this->getLogs()); } diff --git a/tests/lib/public/util.php b/tests/lib/public/util.php new file mode 100644 index 00000000000..ebc4f70079b --- /dev/null +++ b/tests/lib/public/util.php @@ -0,0 +1,47 @@ +<?php +/** + * ownCloud + * + * @author Victor Dubiniuk + * @copyright 2015 Victor Dubiniuk victor.dubiniuk@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +class Test_Public_Util extends \Test\TestCase { + protected function setUp() { + parent::setUp(); + OCP\Contacts::clear(); + } + + /** + * @dataProvider channelProvider + * + * @param string $channel + */ + public function testOverrideChannel($channel) { + \OCP\Util::setChannel($channel); + $actual = \OCP\Util::getChannel($channel); + $this->assertEquals($channel, $actual); + } + + public function channelProvider() { + return [ + ['daily'], + ['beta'], + ['stable'], + ['production'] + ]; + } +} diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php index 76d5662da9d..c1ebfb025cf 100644 --- a/tests/lib/testcase.php +++ b/tests/lib/testcase.php @@ -174,6 +174,9 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase { \OC\Files\Filesystem::tearDown(); \OC_User::setUserId($user); \OC_Util::setupFS($user); + if (\OC_User::userExists($user)) { + \OC::$server->getUserFolder($user); + } } /** diff --git a/tests/settings/controller/CheckSetupControllerTest.php b/tests/settings/controller/CheckSetupControllerTest.php index 26f9f4e9459..b21e78c831d 100644 --- a/tests/settings/controller/CheckSetupControllerTest.php +++ b/tests/settings/controller/CheckSetupControllerTest.php @@ -224,10 +224,14 @@ class CheckSetupControllerTest extends TestCase { $this->util->expects($this->once()) ->method('isHtaccessWorking') ->will($this->returnValue(true)); - $this->urlGenerator->expects($this->once()) + $this->urlGenerator->expects($this->at(0)) ->method('linkToDocs') ->with('admin-performance') ->willReturn('http://doc.owncloud.org/server/go.php?to=admin-performance'); + $this->urlGenerator->expects($this->at(1)) + ->method('linkToDocs') + ->with('admin-security') + ->willReturn('https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/hardening.html'); $expected = new DataResponse( [ @@ -235,6 +239,8 @@ class CheckSetupControllerTest extends TestCase { 'dataDirectoryProtected' => true, 'isMemcacheConfigured' => true, 'memcacheDocs' => 'http://doc.owncloud.org/server/go.php?to=admin-performance', + 'isUrandomAvailable' => \Test_Helper::invokePrivate($this->checkSetupController, 'isUrandomAvailable'), + 'securityDocs' => 'https://doc.owncloud.org/server/8.1/admin_manual/configuration_server/hardening.html', ] ); $this->assertEquals($expected, $this->checkSetupController->check()); diff --git a/themes/README b/themes/README index 4025bc8970e..9c532b28aae 100644 --- a/themes/README +++ b/themes/README @@ -1,7 +1,17 @@ -This is the themes folder. Themes can be used to customize the look and feel of ownCloud without the need to patch the source code. -Themes can be placed in this folder with the name of the theme as foldername. The theme can be activated by putting -"theme" => 'themename', into the config.php file. -The folder structure of a theme is exactly the same as the main ownCloud structure. You can override js files and templates with own versions. css files are loaded additionaly to the default files so you can override css properties. -Themes should be developed here: https://github.com/owncloud/themes -You can also find a super simple example there +Themes can be used to customize the look and feel of ownCloud without the need to patch the source code. This makes it very easy to: +* Use your own logo (in the top left, in log in and in emails) +* Customize the text strings to replace »ownCloud« etc. with your name of choice +* Change the main color (used in header and as log in background) +* And more … + + +The process is simple: + +1. Put a folder here with the name of the theme as foldername +2. Activate it by putting 'theme' => 'themename', into the config.php file + + +The folder structure of a theme is exactly the same as the main ownCloud structure. CSS files are loaded additionally to the default files so you can override properties. Images are replaced. You can also override JS files and PHP templates but we do not recommend that because you will need to adjust them after every update. + +You can also find a basic example here which you can build upon. diff --git a/themes/example/core/css/styles.css b/themes/example/core/css/styles.css new file mode 100644 index 00000000000..a0aba8ae07a --- /dev/null +++ b/themes/example/core/css/styles.css @@ -0,0 +1,86 @@ +/** + * @author Jan-Christoph Borchardt, http://jancborchardt.net + * @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/> + */ + + +/* header color */ +/* this is the main brand color */ +#body-user #header, +#body-settings #header, +#body-public #header { + background-color: #745bca; +} + +/* log in screen background color */ +/* gradient of the header color and a brighter shade */ +/* can also be a flat color or an image */ +#body-login { + background: #745bca; /* Old browsers */ + background: -moz-linear-gradient(top, #947bea 0%, #745bca 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#947bea), color-stop(100%,#745bca)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #947bea 0%,#745bca 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #947bea 0%,#745bca 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, #947bea 0%,#745bca 100%); /* IE10+ */ + background: linear-gradient(top, #947bea 0%,#745bca 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#947bea', endColorstr='#745bca',GradientType=0 ); /* IE6-9 */ +} + +/* primary action button, use sparingly */ +/* header color as border, brighter shade again, here as background */ +.primary, +input[type="submit"].primary, +input[type="button"].primary, +button.primary, +.button.primary, +.primary:active, +input[type="submit"].primary:active, +input[type="button"].primary:active, +button.primary:active, +.button.primary:active { + border-color: #745bca; + background-color: #947bea; +} +.primary:hover, +input[type="submit"].primary:hover, +input[type="button"].primary:hover, +button.primary:hover, +.button.primary:hover, +.primary:focus, +input[type="submit"].primary:focus, +input[type="button"].primary:focus, +button.primary:focus, +.button.primary:focus { + background-color: #8b75e4; +} +.primary:active, input[type="submit"].primary:active, input[type="button"].primary:active, button.primary:active, .button.primary:active, +.primary:disabled, input[type="submit"].primary:disabled, input[type="button"].primary:disabled, button.primary:disabled, .button.primary:disabled, +.primary:disabled:hover, input[type="submit"].primary:disabled:hover, input[type="button"].primary:disabled:hover, button.primary:disabled:hover, .button.primary:disabled:hover, +.primary:disabled:focus, input[type="submit"].primary:disabled:focus, input[type="button"].primary:disabled:focus, button.primary:disabled:focus, .button.primary:disabled:focus { + background-color: #745bca; +} + +/* use logos from theme */ +#header .logo { + background-image: url('../img/logo.svg'); + width: 250px; + height: 121px; +} +#header .logo-icon { + background-image: url('../img/logo-icon.svg'); + width: 62px; + height: 34px; +} diff --git a/themes/example/core/img/favicon-touch.png b/themes/example/core/img/favicon-touch.png Binary files differnew file mode 100644 index 00000000000..e3a61ae5871 --- /dev/null +++ b/themes/example/core/img/favicon-touch.png diff --git a/themes/example/core/img/favicon-touch.svg b/themes/example/core/img/favicon-touch.svg new file mode 100644 index 00000000000..efa79b4359f --- /dev/null +++ b/themes/example/core/img/favicon-touch.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" version="1.1" xml:space="preserve" height="128" width="128" enable-background="new 0 0 595.275 311.111" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 128 127.99999"><rect rx="20" ry="20" height="128" width="128" y="-.0000015" x="0" fill="#745bca"/><path d="m64 24a36 36 0 0 0 -35.758 32.016 20 20 0 0 0 -0.2422 -0.0156 20 20 0 0 0 -20 20 20 20 0 0 0 20 20h36 32a24 24 0 0 0 24 -24 24 24 0 0 0 -22.07 -23.906 36 36 0 0 0 -33.93 -24.094zm0 12a24 24 0 0 1 24 24 24 24 0 0 1 -24 24 24 24 0 0 1 -24 -24 24 24 0 0 1 24 -24z" fill="#fff"/></svg> diff --git a/themes/example/core/img/favicon.png b/themes/example/core/img/favicon.png Binary files differnew file mode 100644 index 00000000000..4394e13514b --- /dev/null +++ b/themes/example/core/img/favicon.png diff --git a/themes/example/core/img/favicon.svg b/themes/example/core/img/favicon.svg new file mode 100644 index 00000000000..a41137db754 --- /dev/null +++ b/themes/example/core/img/favicon.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" version="1.1" xml:space="preserve" height="32" width="32" enable-background="new 0 0 595.275 311.111" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 32 31.999997"><rect rx="5" ry="5" height="32" width="32" y="-.0000052588" x="0" fill="#745bca"/><path d="m16 6a9 9 0 0 0 -8.9395 8.004 5 5 0 0 0 -0.0605 -0.004 5 5 0 0 0 -5 5 5 5 0 0 0 5 5h9 8a6 6 0 0 0 6 -6 6 6 0 0 0 -5.518 -5.977 9 9 0 0 0 -8.482 -6.023zm0 3a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6 -6 6 6 0 0 1 6 -6z" transform="translate(0 -.0000019073)" fill="#fff"/></svg> diff --git a/themes/example/core/img/logo-icon.png b/themes/example/core/img/logo-icon.png Binary files differnew file mode 100644 index 00000000000..4ed70603b25 --- /dev/null +++ b/themes/example/core/img/logo-icon.png diff --git a/themes/example/core/img/logo-icon.svg b/themes/example/core/img/logo-icon.svg new file mode 100644 index 00000000000..925152145fe --- /dev/null +++ b/themes/example/core/img/logo-icon.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 595.275 311.111" xml:space="preserve" height="34" width="62" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 62.001102 34"><path d="m31.001 2.9997a13.5 13.5 0 0 0 -13.409 12.006 7.5001 7.5001 0 0 0 -0.09082 -0.0058 7.5001 7.5001 0 0 0 -7.5001 7.5001 7.5001 7.5001 0 0 0 7.5001 7.5001h13.5 12a9.0002 9.0002 0 0 0 9 -9 9.0002 9.0002 0 0 0 -8.277 -8.965 13.5 13.5 0 0 0 -12.723 -9.0353zm0 4.5001a9.0002 9.0002 0 0 1 9.0002 9.0002 9.0002 9.0002 0 0 1 -9.0002 9.0002 9.0002 9.0002 0 0 1 -9.0002 -9.0002 9.0002 9.0002 0 0 1 9.0002 -9.0002z" fill="#fff"/></svg> diff --git a/themes/example/core/img/logo-mail.gif b/themes/example/core/img/logo-mail.gif Binary files differnew file mode 100644 index 00000000000..431db4e68ae --- /dev/null +++ b/themes/example/core/img/logo-mail.gif diff --git a/themes/example/core/img/logo.png b/themes/example/core/img/logo.png Binary files differnew file mode 100644 index 00000000000..ac766e29cd8 --- /dev/null +++ b/themes/example/core/img/logo.png diff --git a/themes/example/core/img/logo.svg b/themes/example/core/img/logo.svg new file mode 100644 index 00000000000..349c7ea19bb --- /dev/null +++ b/themes/example/core/img/logo.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="120" viewBox="0 0 252.00001 119.99799" width="252" version="1.1" y="0px" x="0px" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" enable-background="new 0 0 595.275 311.111"><path d="m178.27 82.457v30.393h3.24v-30.393h-3.24zm67.22 0v8.711l0.08 1.504 0.14 1.543h-0.26c-1.55-2.11-3.77-3.164-6.68-3.164-2.78 0-4.96 0.976-6.52 2.929-1.56 1.954-2.35 4.694-2.35 8.22 0 3.53 0.78 6.25 2.33 8.17 1.56 1.91 3.74 2.87 6.54 2.87 2.98 0 5.22-1.09 6.72-3.26h0.18l0.43 2.87h2.63v-30.393h-3.24zm-227.69 1.426c-2.722 0-5.098 0.599-7.129 1.797-2.0184 1.185-3.5679 2.897-4.6486 5.136-1.0807 2.227-1.6211 4.825-1.6211 7.793 0 4.711 1.1003 8.331 3.3008 10.861 2.2005 2.51 5.3779 3.77 9.5309 3.77 2.891 0 5.508-0.49 7.852-1.47v-5.07c-2.852 1-5.28 1.5-7.285 1.5-4.779 0-7.168-3.18-7.168-9.552 0-3.059 0.625-5.442 1.875-7.148 1.25-1.719 3.014-2.578 5.293-2.578 1.041 0 2.103 0.189 3.183 0.566 1.081 0.378 2.155 0.821 3.223 1.328l1.953-4.921c-2.799-1.342-5.586-2.012-8.359-2.012zm149.99 0c-2.82 0-5.26 0.599-7.35 1.797-2.07 1.198-3.66 2.903-4.76 5.117-1.1 2.213-1.64 4.792-1.64 7.734 0 4.699 1.14 8.329 3.42 10.879 2.29 2.55 5.54 3.83 9.74 3.83 2.9 0 5.35-0.37 7.33-1.12v-2.91c-2.56 0.72-4.83 1.08-6.82 1.08-3.24 0-5.74-1.02-7.5-3.05-1.75-2.04-2.62-4.93-2.62-8.67 0-3.632 0.91-6.491 2.72-8.574 1.82-2.096 4.3-3.144 7.44-3.144 2.16 0 4.32 0.507 6.48 1.523l1.41-2.852c-2.24-1.093-4.86-1.64-7.85-1.64zm-94.073 2.48l-1.719 4.61-3.281 1.992v2.519h2.851v10.526c0 2.41 0.541 4.22 1.621 5.43 1.094 1.2 2.832 1.8 5.215 1.8 2.162 0 3.985-0.33 5.469-1v-4.43c-1.458 0.45-2.708 0.68-3.75 0.68-0.781 0-1.413-0.2-1.894-0.6-0.469-0.41-0.704-1.03-0.704-1.88v-10.526h6.114v-4.472h-6.114v-4.649h-3.808zm-13.391 4.239c-2.76 0-4.896 0.533-6.406 1.601-1.497 1.055-2.246 2.552-2.246 4.492 0 1.133 0.176 2.09 0.527 2.871 0.365 0.764 0.938 1.454 1.719 2.054 0.794 0.6 2.031 1.25 3.711 1.95 1.172 0.5 2.109 0.93 2.812 1.31 0.703 0.36 1.198 0.7 1.485 1 0.286 0.28 0.429 0.66 0.429 1.13 0 1.25-1.08 1.87-3.242 1.87-1.054 0-2.278-0.17-3.672-0.52-1.38-0.36-2.623-0.79-3.73-1.31v4.92c0.976 0.42 2.025 0.73 3.144 0.94 1.12 0.22 2.474 0.33 4.063 0.33 3.099 0 5.423-0.59 6.973-1.76 1.562-1.17 2.343-2.88 2.343-5.12 0-1.08-0.188-2.01-0.566-2.79s-0.964-1.47-1.758-2.07-2.044-1.24-3.75-1.934c-1.914-0.768-3.157-1.347-3.73-1.738-0.56-0.39-0.84-0.853-0.84-1.387 0-0.95 0.879-1.425 2.637-1.425 0.989 0 1.959 0.149 2.91 0.449 0.95 0.299 1.972 0.683 3.066 1.152l1.797-4.297c-2.487-1.146-5.046-1.718-7.676-1.718zm35.258 0c-3.372 0-5.99 0.989-7.852 2.968s-2.793 4.753-2.793 8.32c0 2.29 0.43 4.3 1.29 6.02 0.859 1.71 2.089 3.04 3.691 3.96 1.601 0.91 3.45 1.37 5.547 1.37 3.346 0 5.953-1 7.833-3.01 1.87-2 2.81-4.78 2.81-8.34 0-2.291-0.43-4.29-1.29-5.995-0.86-1.706-2.09-3.015-3.69-3.926-1.601-0.912-3.45-1.367-5.546-1.367zm25.476 0c-1.43 0-2.7 0.286-3.8 0.859-1.11 0.56-1.96 1.341-2.54 2.344h-0.34l-0.8-2.793h-4.55v21.838h5.96v-10.28c0-2.56 0.35-4.403 1.04-5.523s1.79-1.68 3.32-1.68c1.13 0 1.96 0.397 2.48 1.192 0.53 0.781 0.8 1.959 0.8 3.531v12.76h5.95v-10.96c0-2.265 0.36-3.919 1.08-4.96 0.73-1.042 1.82-1.563 3.28-1.563 1.13 0 1.96 0.397 2.48 1.192 0.53 0.781 0.8 1.959 0.8 3.531v12.76h5.98v-14.241c0-2.799-0.64-4.83-1.92-6.093-1.26-1.276-3.13-1.914-5.6-1.914-1.43 0-2.72 0.28-3.87 0.839-1.13 0.56-1.99 1.348-2.58 2.364h-0.52c-1.16-2.136-3.38-3.203-6.65-3.203zm-92.503 0.41v14.238c0 2.58 0.651 4.56 1.953 5.94 1.302 1.36 3.235 2.05 5.801 2.05 1.497 0 2.832-0.28 4.003-0.82 1.172-0.56 2.077-1.35 2.715-2.37h0.313l0.801 2.8h4.57v-21.838h-5.957v10.278c0 2.57-0.371 4.42-1.113 5.54-0.743 1.11-1.947 1.66-3.614 1.66-1.224 0-2.116-0.39-2.675-1.17-0.56-0.79-0.84-1.98-0.84-3.55v-12.758h-5.957zm166.56 0.039c-3.1 0-5.53 0.976-7.27 2.929-1.75 1.941-2.62 4.655-2.62 8.14 0 2.26 0.41 4.22 1.21 5.9 0.81 1.68 1.96 2.97 3.44 3.87 1.49 0.9 3.18 1.35 5.1 1.35 3.1 0 5.53-0.98 7.28-2.93 1.76-1.97 2.64-4.7 2.64-8.19 0-3.393-0.89-6.089-2.66-8.081-1.75-1.992-4.13-2.988-7.12-2.988zm13.21 0.39v14.009c0 2.72 0.64 4.7 1.93 5.93 1.31 1.24 3.26 1.86 5.86 1.86 1.51 0 2.85-0.28 4.03-0.84s2.11-1.37 2.77-2.42h0.18l0.46 2.87h2.68v-21.409h-3.24v11.249c0 2.77-0.52 4.77-1.56 6-1.03 1.22-2.67 1.83-4.91 1.83-1.69 0-2.93-0.43-3.73-1.29-0.79-0.85-1.19-2.16-1.19-3.9v-13.889h-3.28zm30.81 2.325c2.22 0 3.82 0.651 4.83 1.953 1.01 1.289 1.52 3.45 1.52 6.481v0.69c0 2.68-0.5 4.63-1.5 5.84-0.99 1.19-2.59 1.79-4.81 1.79-1.94 0-3.41-0.69-4.41-2.09-1.01-1.39-1.51-3.45-1.51-6.19 0-2.693 0.5-4.776 1.51-6.248 1.01-1.484 2.47-2.226 4.37-2.226zm-44.12 0.039c2.15 0 3.77 0.709 4.86 2.129 1.11 1.406 1.66 3.47 1.66 6.186 0 2.75-0.55 4.84-1.66 6.27-1.09 1.42-2.7 2.13-4.82 2.13-2.13 0-3.73-0.71-4.83-2.14-1.09-1.44-1.64-3.52-1.64-6.26 0-2.755 0.54-4.832 1.62-6.225 1.08-1.394 2.69-2.09 4.81-2.09zm-99.514 1.601c1.601 0 2.754 0.541 3.457 1.621 0.703 1.081 1.057 2.702 1.057 4.863 0 2.18-0.354 3.82-1.057 4.92-0.69 1.1-1.83 1.64-3.418 1.64-1.602 0-2.76-0.55-3.477-1.66-0.703-1.1-1.054-2.74-1.054-4.9 0-2.174 0.351-3.795 1.054-4.863 0.703-1.08 1.849-1.621 3.438-1.621z" transform="translate(0 -.0010071)" fill="#fff"/><path d="m135.84 10.41a32.143 32.143 0 0 0 -31.927 28.585 17.857 17.857 0 0 0 -0.21625 -0.01393 17.857 17.857 0 0 0 -17.857 17.857 17.857 17.857 0 0 0 17.857 17.857h32.143 28.571a21.429 21.429 0 0 0 21.43 -21.428 21.429 21.429 0 0 0 -19.71 -21.344 32.143 32.143 0 0 0 -30.29 -21.513zm0 10.714a21.429 21.429 0 0 1 21.429 21.429 21.429 21.429 0 0 1 -21.429 21.429 21.429 21.429 0 0 1 -21.429 -21.429 21.429 21.429 0 0 1 21.429 -21.429z" fill="#fff"/></svg> diff --git a/themes/example/defaults.php b/themes/example/defaults.php new file mode 100644 index 00000000000..0dd0d46bd9c --- /dev/null +++ b/themes/example/defaults.php @@ -0,0 +1,95 @@ +<?php +/** + * @author Björn Schießle <schiessle@owncloud.com> + * @author Jan-Christoph Borchardt, http://jancborchardt.net + * @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/> + */ + +class OC_Theme { + + private $themeEntity; + private $themeName; + private $themeTitle; + private $themeBaseUrl; + private $themeDocBaseUrl; + private $themeSyncClientUrl; + private $themeSlogan; + private $themeMailHeaderColor; + + /* put your custom text in these variables */ + function __construct() { + $this->themeEntity = 'Custom Cloud Co.'; + $this->themeName = 'Custom Cloud'; + $this->themeTitle = 'Custom Cloud'; + $this->themeBaseUrl = 'https://owncloud.org'; + $this->themeDocBaseUrl = 'https://doc.owncloud.org'; + $this->themeSyncClientUrl = 'https://owncloud.org/install'; + $this->themeSlogan = 'Your custom cloud, personalized for you!'; + $this->themeMailHeaderColor = '#745bca'; + } + /* nothing after this needs to be adjusted */ + + public function getBaseUrl() { + return $this->themeBaseUrl; + } + + public function getSyncClientUrl() { + return $this->themeSyncClientUrl; + } + + public function getDocBaseUrl() { + return $this->themeDocBaseUrl; + } + + public function getTitle() { + return $this->themeTitle; + } + + public function getName() { + return $this->themeName; + } + + public function getEntity() { + return $this->themeEntity; + } + + public function getSlogan() { + return $this->themeSlogan; + } + + public function getShortFooter() { + $footer = '© 2015 <a href="'.$this->getBaseUrl().'" target="_blank\">'.$this->getEntity().'</a>'. + '<br/>' . $this->getSlogan(); + + return $footer; + } + + public function getLongFooter() { + $footer = '© 2015 <a href="'.$this->getBaseUrl().'" target="_blank\">'.$this->getEntity().'</a>'. + '<br/>' . $this->getSlogan(); + + return $footer; + } + + public function buildDocLinkToKey($key) { + return $this->getDocBaseUrl() . '/server/8.0/go.php?to=' . $key; + } + + public function getMailHeaderColor() { + return $this->themeMailHeaderColor; + } + +} |