summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/encryption/l10n/da.js12
-rw-r--r--apps/encryption/l10n/da.json12
-rw-r--r--apps/encryption/l10n/el.js2
-rw-r--r--apps/encryption/l10n/el.json2
-rw-r--r--apps/encryption/l10n/en_GB.js2
-rw-r--r--apps/encryption/l10n/en_GB.json2
-rw-r--r--apps/encryption/l10n/fr.js2
-rw-r--r--apps/encryption/l10n/fr.json2
-rw-r--r--apps/encryption/l10n/ja.js28
-rw-r--r--apps/encryption/l10n/ja.json28
-rw-r--r--apps/encryption/l10n/oc.js52
-rw-r--r--apps/encryption/l10n/oc.json50
-rw-r--r--apps/encryption/l10n/pt_PT.js1
-rw-r--r--apps/encryption/l10n/pt_PT.json1
-rw-r--r--apps/encryption/l10n/ru.js8
-rw-r--r--apps/encryption/l10n/ru.json8
-rw-r--r--apps/encryption/l10n/th_TH.js52
-rw-r--r--apps/encryption/l10n/th_TH.json50
-rw-r--r--apps/encryption/l10n/tr.js18
-rw-r--r--apps/encryption/l10n/tr.json18
-rw-r--r--apps/encryption/l10n/vi.js2
-rw-r--r--apps/encryption/l10n/vi.json2
-rw-r--r--apps/encryption/lib/crypto/encryption.php9
-rw-r--r--apps/encryption/tests/lib/HookManagerTest.php4
-rw-r--r--apps/encryption/tests/lib/KeyManagerTest.php6
-rw-r--r--apps/encryption/tests/lib/MigrationTest.php2
-rw-r--r--apps/encryption/tests/lib/RecoveryTest.php2
-rw-r--r--apps/encryption/tests/lib/crypto/cryptTest.php20
-rw-r--r--apps/encryption/tests/lib/crypto/encryptionTest.php10
-rw-r--r--apps/files/ajax/delete.php13
-rw-r--r--apps/files/ajax/newfile.php19
-rw-r--r--apps/files/ajax/newfolder.php27
-rw-r--r--apps/files/ajax/rename.php21
-rw-r--r--apps/files/index.php2
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/js/files.js16
-rw-r--r--apps/files/l10n/be.js2
-rw-r--r--apps/files/l10n/be.json2
-rw-r--r--apps/files/l10n/ca.js3
-rw-r--r--apps/files/l10n/ca.json3
-rw-r--r--apps/files/l10n/da.js2
-rw-r--r--apps/files/l10n/da.json2
-rw-r--r--apps/files/l10n/de.js2
-rw-r--r--apps/files/l10n/de.json2
-rw-r--r--apps/files/l10n/de_DE.js2
-rw-r--r--apps/files/l10n/de_DE.json2
-rw-r--r--apps/files/l10n/el.js2
-rw-r--r--apps/files/l10n/el.json2
-rw-r--r--apps/files/l10n/es.js2
-rw-r--r--apps/files/l10n/es.json2
-rw-r--r--apps/files/l10n/fi_FI.js2
-rw-r--r--apps/files/l10n/fi_FI.json2
-rw-r--r--apps/files/l10n/fr.js2
-rw-r--r--apps/files/l10n/fr.json2
-rw-r--r--apps/files/l10n/gl.js2
-rw-r--r--apps/files/l10n/gl.json2
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/nb_NO.js10
-rw-r--r--apps/files/l10n/nb_NO.json10
-rw-r--r--apps/files/l10n/nl.js2
-rw-r--r--apps/files/l10n/nl.json2
-rw-r--r--apps/files/l10n/oc.js125
-rw-r--r--apps/files/l10n/oc.json125
-rw-r--r--apps/files/l10n/pl.js6
-rw-r--r--apps/files/l10n/pl.json6
-rw-r--r--apps/files/l10n/pt_BR.js2
-rw-r--r--apps/files/l10n/pt_BR.json2
-rw-r--r--apps/files/l10n/ru.js2
-rw-r--r--apps/files/l10n/ru.json2
-rw-r--r--apps/files/l10n/sr.js2
-rw-r--r--apps/files/l10n/sr.json2
-rw-r--r--apps/files/l10n/th_TH.js74
-rw-r--r--apps/files/l10n/th_TH.json74
-rw-r--r--apps/files/l10n/tr.js4
-rw-r--r--apps/files/l10n/tr.json4
-rw-r--r--apps/files/l10n/vi.js3
-rw-r--r--apps/files/l10n/vi.json3
-rw-r--r--apps/files/lib/helper.php4
-rw-r--r--apps/files/templates/appnavigation.php2
-rw-r--r--apps/files/templates/index.php3
-rw-r--r--apps/files_external/l10n/ar.js10
-rw-r--r--apps/files_external/l10n/ar.json10
-rw-r--r--apps/files_external/l10n/ca.js7
-rw-r--r--apps/files_external/l10n/ca.json7
-rw-r--r--apps/files_external/l10n/cs_CZ.js1
-rw-r--r--apps/files_external/l10n/cs_CZ.json1
-rw-r--r--apps/files_external/l10n/da.js7
-rw-r--r--apps/files_external/l10n/da.json7
-rw-r--r--apps/files_external/l10n/de.js6
-rw-r--r--apps/files_external/l10n/de.json6
-rw-r--r--apps/files_external/l10n/de_DE.js6
-rw-r--r--apps/files_external/l10n/de_DE.json6
-rw-r--r--apps/files_external/l10n/el.js7
-rw-r--r--apps/files_external/l10n/el.json7
-rw-r--r--apps/files_external/l10n/en_GB.js7
-rw-r--r--apps/files_external/l10n/en_GB.json7
-rw-r--r--apps/files_external/l10n/es.js6
-rw-r--r--apps/files_external/l10n/es.json6
-rw-r--r--apps/files_external/l10n/fi_FI.js5
-rw-r--r--apps/files_external/l10n/fi_FI.json5
-rw-r--r--apps/files_external/l10n/fr.js10
-rw-r--r--apps/files_external/l10n/fr.json10
-rw-r--r--apps/files_external/l10n/gl.js6
-rw-r--r--apps/files_external/l10n/gl.json6
-rw-r--r--apps/files_external/l10n/hy.js1
-rw-r--r--apps/files_external/l10n/hy.json1
-rw-r--r--apps/files_external/l10n/id.js1
-rw-r--r--apps/files_external/l10n/id.json1
-rw-r--r--apps/files_external/l10n/it.js6
-rw-r--r--apps/files_external/l10n/it.json6
-rw-r--r--apps/files_external/l10n/ja.js1
-rw-r--r--apps/files_external/l10n/ja.json1
-rw-r--r--apps/files_external/l10n/ko.js1
-rw-r--r--apps/files_external/l10n/ko.json1
-rw-r--r--apps/files_external/l10n/nb_NO.js6
-rw-r--r--apps/files_external/l10n/nb_NO.json6
-rw-r--r--apps/files_external/l10n/nl.js6
-rw-r--r--apps/files_external/l10n/nl.json6
-rw-r--r--apps/files_external/l10n/oc.js76
-rw-r--r--apps/files_external/l10n/oc.json76
-rw-r--r--apps/files_external/l10n/pl.js7
-rw-r--r--apps/files_external/l10n/pl.json7
-rw-r--r--apps/files_external/l10n/pt_BR.js6
-rw-r--r--apps/files_external/l10n/pt_BR.json6
-rw-r--r--apps/files_external/l10n/ru.js7
-rw-r--r--apps/files_external/l10n/ru.json7
-rw-r--r--apps/files_external/l10n/sr.js6
-rw-r--r--apps/files_external/l10n/sr.json6
-rw-r--r--apps/files_external/l10n/th_TH.js64
-rw-r--r--apps/files_external/l10n/th_TH.json64
-rw-r--r--apps/files_external/l10n/tr.js7
-rw-r--r--apps/files_external/l10n/tr.json7
-rw-r--r--apps/files_external/l10n/uk.js1
-rw-r--r--apps/files_external/l10n/uk.json1
-rw-r--r--apps/files_external/l10n/vi.js3
-rw-r--r--apps/files_external/l10n/vi.json3
-rw-r--r--apps/files_external/lib/amazons3.php4
-rw-r--r--apps/files_sharing/ajax/publicpreview.php7
-rw-r--r--apps/files_sharing/js/public.js6
-rw-r--r--apps/files_sharing/l10n/da.js4
-rw-r--r--apps/files_sharing/l10n/da.json4
-rw-r--r--apps/files_sharing/l10n/de.js6
-rw-r--r--apps/files_sharing/l10n/de.json6
-rw-r--r--apps/files_sharing/l10n/de_DE.js6
-rw-r--r--apps/files_sharing/l10n/de_DE.json6
-rw-r--r--apps/files_sharing/l10n/el.js4
-rw-r--r--apps/files_sharing/l10n/el.json4
-rw-r--r--apps/files_sharing/l10n/en_GB.js4
-rw-r--r--apps/files_sharing/l10n/en_GB.json4
-rw-r--r--apps/files_sharing/l10n/es.js4
-rw-r--r--apps/files_sharing/l10n/es.json4
-rw-r--r--apps/files_sharing/l10n/fi_FI.js4
-rw-r--r--apps/files_sharing/l10n/fi_FI.json4
-rw-r--r--apps/files_sharing/l10n/fr.js6
-rw-r--r--apps/files_sharing/l10n/fr.json6
-rw-r--r--apps/files_sharing/l10n/gl.js4
-rw-r--r--apps/files_sharing/l10n/gl.json4
-rw-r--r--apps/files_sharing/l10n/it.js4
-rw-r--r--apps/files_sharing/l10n/it.json4
-rw-r--r--apps/files_sharing/l10n/nb_NO.js4
-rw-r--r--apps/files_sharing/l10n/nb_NO.json4
-rw-r--r--apps/files_sharing/l10n/nl.js4
-rw-r--r--apps/files_sharing/l10n/nl.json4
-rw-r--r--apps/files_sharing/l10n/oc.js3
-rw-r--r--apps/files_sharing/l10n/oc.json3
-rw-r--r--apps/files_sharing/l10n/pt_BR.js6
-rw-r--r--apps/files_sharing/l10n/pt_BR.json6
-rw-r--r--apps/files_sharing/l10n/ru.js4
-rw-r--r--apps/files_sharing/l10n/ru.json4
-rw-r--r--apps/files_sharing/l10n/sr.js4
-rw-r--r--apps/files_sharing/l10n/sr.json4
-rw-r--r--apps/files_sharing/l10n/th_TH.js57
-rw-r--r--apps/files_sharing/l10n/th_TH.json57
-rw-r--r--apps/files_sharing/l10n/tr.js8
-rw-r--r--apps/files_sharing/l10n/tr.json8
-rw-r--r--apps/files_sharing/l10n/vi.js3
-rw-r--r--apps/files_sharing/l10n/vi.json3
-rw-r--r--apps/files_sharing/lib/controllers/sharecontroller.php1
-rw-r--r--apps/files_sharing/templates/public.php2
-rw-r--r--apps/files_sharing/tests/controller/sharecontroller.php1
-rw-r--r--apps/files_sharing/tests/external/managertest.php20
-rw-r--r--apps/files_sharing/tests/middleware/sharingcheckmiddleware.php6
-rw-r--r--apps/files_trashbin/command/expire.php6
-rw-r--r--apps/files_trashbin/l10n/et_EE.js1
-rw-r--r--apps/files_trashbin/l10n/et_EE.json1
-rw-r--r--apps/files_trashbin/l10n/th_TH.js9
-rw-r--r--apps/files_trashbin/l10n/th_TH.json9
-rw-r--r--apps/files_trashbin/l10n/vi.js3
-rw-r--r--apps/files_trashbin/l10n/vi.json3
-rw-r--r--apps/files_trashbin/lib/trashbin.php29
-rw-r--r--apps/files_trashbin/tests/command/expiretest.php34
-rw-r--r--apps/files_trashbin/tests/storage.php116
-rw-r--r--apps/files_versions/command/expire.php6
-rw-r--r--apps/files_versions/l10n/th_TH.js4
-rw-r--r--apps/files_versions/l10n/th_TH.json4
-rw-r--r--apps/files_versions/tests/command/expiretest.php34
-rw-r--r--apps/user_ldap/group_ldap.php31
-rw-r--r--apps/user_ldap/l10n/da.js11
-rw-r--r--apps/user_ldap/l10n/da.json11
-rw-r--r--apps/user_ldap/l10n/el.js3
-rw-r--r--apps/user_ldap/l10n/el.json3
-rw-r--r--apps/user_ldap/l10n/en_GB.js4
-rw-r--r--apps/user_ldap/l10n/en_GB.json4
-rw-r--r--apps/user_ldap/l10n/fr.js4
-rw-r--r--apps/user_ldap/l10n/fr.json4
-rw-r--r--apps/user_ldap/l10n/gl.js2
-rw-r--r--apps/user_ldap/l10n/gl.json2
-rw-r--r--apps/user_ldap/l10n/it.js1
-rw-r--r--apps/user_ldap/l10n/it.json1
-rw-r--r--apps/user_ldap/l10n/oc.js3
-rw-r--r--apps/user_ldap/l10n/oc.json3
-rw-r--r--apps/user_ldap/l10n/pt_PT.js3
-rw-r--r--apps/user_ldap/l10n/pt_PT.json3
-rw-r--r--apps/user_ldap/l10n/ru.js40
-rw-r--r--apps/user_ldap/l10n/ru.json40
-rw-r--r--apps/user_ldap/l10n/sk_SK.js21
-rw-r--r--apps/user_ldap/l10n/sk_SK.json21
-rw-r--r--apps/user_ldap/l10n/sr.js4
-rw-r--r--apps/user_ldap/l10n/sr.json4
-rw-r--r--apps/user_ldap/l10n/th_TH.js131
-rw-r--r--apps/user_ldap/l10n/th_TH.json131
-rw-r--r--apps/user_ldap/l10n/tr.js19
-rw-r--r--apps/user_ldap/l10n/tr.json19
-rw-r--r--apps/user_ldap/lib/configuration.php3
-rw-r--r--apps/user_ldap/lib/connection.php5
-rw-r--r--apps/user_ldap/lib/wizard.php81
-rw-r--r--apps/user_ldap/tests/group_ldap.php59
-rw-r--r--apps/user_ldap/tests/user_ldap.php5
-rw-r--r--apps/user_ldap/user_ldap.php11
-rw-r--r--apps/user_webdavauth/l10n/th_TH.js6
-rw-r--r--apps/user_webdavauth/l10n/th_TH.json6
-rw-r--r--apps/user_webdavauth/l10n/vi.js1
-rw-r--r--apps/user_webdavauth/l10n/vi.json1
234 files changed, 2528 insertions, 335 deletions
diff --git a/apps/encryption/l10n/da.js b/apps/encryption/l10n/da.js
index c1d13396b8a..5d97843f77c 100644
--- a/apps/encryption/l10n/da.js
+++ b/apps/encryption/l10n/da.js
@@ -8,22 +8,34 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Kunne ikke aktivere gendannelsesnøgle. Kontroller venligst dit gendannelsesnøgle kodeord!",
"Recovery key successfully disabled" : "Gendannelsesnøgle deaktiveret succesfuldt",
"Could not disable recovery key. Please check your recovery key password!" : "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!",
+ "Missing parameters" : "Manglende parametre",
"Please provide the old recovery password" : "Angiv venligst det gamle kodeord for gendannelsesnøglen",
"Please provide a new recovery password" : "Angiv venligst et nyt kodeord til gendannelse",
"Please repeat the new recovery password" : "Gentag venligst det nye kodeord til gendannelse",
"Password successfully changed." : "Kodeordet blev ændret succesfuldt",
"Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.",
+ "Recovery Key disabled" : "Gendannelsesnøgle er slået fra",
"Recovery Key enabled" : "Gendannalsesnøgle aktiv",
"Could not enable the recovery key, please try again or contact your administrator" : "Kunne ikke aktivere gendannelsesnøglen, venligst prøv igen eller kontakt din administrator",
"Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.",
"The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.",
"The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.",
"Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Du skal overflytte dine krypteringsnøgler fra den gamle kryptering (ownCloud <= 8.0) til den nye af slagsen. Kør venligst \"occ encryption:migrate\" eller kontakt din administrator.",
"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.",
+ "Encryption App is enabled and ready" : "App til kryptering er slået til og er klar",
"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.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke læse denne fil, sandsynligvis fordi det er en delt fil. Bed venligst ejeren af filen om at dele filen med dig påny.",
+ "Enable recovery key" : "Aktivér gendannelsesnøgle",
+ "Disable recovery key" : "Deaktivér gendannelsesnøgle",
+ "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." : "Gendannelsesnøglen er en ekstra krypteringsnøgle, der bruges til at kryptere filer. Den tillader gendannelse af en brugers filer, hvis brugeren glemmer sin adgangskode.",
"Recovery key password" : "Gendannelsesnøgle kodeord",
+ "Repeat recovery key password" : "Gentag adgangskode for gendannelsesnøgle",
"Change recovery key password:" : "Skift gendannelsesnøgle kodeord:",
+ "Old recovery key password" : "Gammel adgangskode for gendannelsesnøgle",
+ "New recovery key password" : "Ny adgangskode for gendannelsesnøgle",
+ "Repeat new recovery key password" : "Gentag ny adgangskode for gendannelsesnøgle",
"Change Password" : "Skift Kodeord",
"ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
"Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.",
diff --git a/apps/encryption/l10n/da.json b/apps/encryption/l10n/da.json
index 0e66abbd862..d90d030f45b 100644
--- a/apps/encryption/l10n/da.json
+++ b/apps/encryption/l10n/da.json
@@ -6,22 +6,34 @@
"Could not enable recovery key. Please check your recovery key password!" : "Kunne ikke aktivere gendannelsesnøgle. Kontroller venligst dit gendannelsesnøgle kodeord!",
"Recovery key successfully disabled" : "Gendannelsesnøgle deaktiveret succesfuldt",
"Could not disable recovery key. Please check your recovery key password!" : "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!",
+ "Missing parameters" : "Manglende parametre",
"Please provide the old recovery password" : "Angiv venligst det gamle kodeord for gendannelsesnøglen",
"Please provide a new recovery password" : "Angiv venligst et nyt kodeord til gendannelse",
"Please repeat the new recovery password" : "Gentag venligst det nye kodeord til gendannelse",
"Password successfully changed." : "Kodeordet blev ændret succesfuldt",
"Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.",
+ "Recovery Key disabled" : "Gendannelsesnøgle er slået fra",
"Recovery Key enabled" : "Gendannalsesnøgle aktiv",
"Could not enable the recovery key, please try again or contact your administrator" : "Kunne ikke aktivere gendannelsesnøglen, venligst prøv igen eller kontakt din administrator",
"Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.",
"The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.",
"The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.",
"Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Du skal overflytte dine krypteringsnøgler fra den gamle kryptering (ownCloud <= 8.0) til den nye af slagsen. Kør venligst \"occ encryption:migrate\" eller kontakt din administrator.",
"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.",
+ "Encryption App is enabled and ready" : "App til kryptering er slået til og er klar",
"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.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan ikke læse denne fil, sandsynligvis fordi det er en delt fil. Bed venligst ejeren af filen om at dele filen med dig påny.",
+ "Enable recovery key" : "Aktivér gendannelsesnøgle",
+ "Disable recovery key" : "Deaktivér gendannelsesnøgle",
+ "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." : "Gendannelsesnøglen er en ekstra krypteringsnøgle, der bruges til at kryptere filer. Den tillader gendannelse af en brugers filer, hvis brugeren glemmer sin adgangskode.",
"Recovery key password" : "Gendannelsesnøgle kodeord",
+ "Repeat recovery key password" : "Gentag adgangskode for gendannelsesnøgle",
"Change recovery key password:" : "Skift gendannelsesnøgle kodeord:",
+ "Old recovery key password" : "Gammel adgangskode for gendannelsesnøgle",
+ "New recovery key password" : "Ny adgangskode for gendannelsesnøgle",
+ "Repeat new recovery key password" : "Gentag ny adgangskode for gendannelsesnøgle",
"Change Password" : "Skift Kodeord",
"ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
"Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.",
diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js
index d2546fff92a..078b66d6784 100644
--- a/apps/encryption/l10n/el.js
+++ b/apps/encryption/l10n/el.js
@@ -21,8 +21,10 @@ OC.L10N.register(
"The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
"The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
"Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε εκτελέστε την εντολή 'occ encryption:migrate' ή επικοινωνήστε με το διαχειριστή σας.",
"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 and ready" : "Η Εφαρμογή Κρυπτογράφησης είναι ενεργοποιημένη και έτοιμη.",
"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" : "Ενεργοποίηση κλειδιού ανάκτησης",
diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json
index 8904aaa8fa3..c50f4cf938b 100644
--- a/apps/encryption/l10n/el.json
+++ b/apps/encryption/l10n/el.json
@@ -19,8 +19,10 @@
"The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
"The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
"Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε εκτελέστε την εντολή 'occ encryption:migrate' ή επικοινωνήστε με το διαχειριστή σας.",
"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 and ready" : "Η Εφαρμογή Κρυπτογράφησης είναι ενεργοποιημένη και έτοιμη.",
"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" : "Ενεργοποίηση κλειδιού ανάκτησης",
diff --git a/apps/encryption/l10n/en_GB.js b/apps/encryption/l10n/en_GB.js
index 823b4305c0e..13b103dee12 100644
--- a/apps/encryption/l10n/en_GB.js
+++ b/apps/encryption/l10n/en_GB.js
@@ -21,8 +21,10 @@ OC.L10N.register(
"The old password was not correct, please try again." : "The old password was not correct, please try again.",
"The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.",
"Private key password successfully updated." : "Private key password updated successfully.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator",
"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",
+ "Encryption App is enabled and ready" : "Encryption App is enabled and ready",
"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",
diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json
index 9d5b8b6e6b8..e1d20385f6e 100644
--- a/apps/encryption/l10n/en_GB.json
+++ b/apps/encryption/l10n/en_GB.json
@@ -19,8 +19,10 @@
"The old password was not correct, please try again." : "The old password was not correct, please try again.",
"The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.",
"Private key password successfully updated." : "Private key password updated successfully.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator",
"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",
+ "Encryption App is enabled and ready" : "Encryption App is enabled and ready",
"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",
diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js
index 14c4ebf1145..a5b5cc00707 100644
--- a/apps/encryption/l10n/fr.js
+++ b/apps/encryption/l10n/fr.js
@@ -22,7 +22,7 @@ OC.L10N.register(
"The current log-in password was not correct, please try again." : "Le mot de passe de connexion actuel n'est pas correct, veuillez réessayer.",
"Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez exécuter 'occ encryption:migrate' ou contacter votre administrateur",
- "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.",
+ "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 de chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de la 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.",
"Encryption App is enabled and ready" : "L'application de chiffrement est activée et prête",
"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.",
diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json
index 2bfab438a84..2044ab7b80b 100644
--- a/apps/encryption/l10n/fr.json
+++ b/apps/encryption/l10n/fr.json
@@ -20,7 +20,7 @@
"The current log-in password was not correct, please try again." : "Le mot de passe de connexion actuel n'est pas correct, veuillez réessayer.",
"Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez exécuter 'occ encryption:migrate' ou contacter votre administrateur",
- "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.",
+ "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 de chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de la 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.",
"Encryption App is enabled and ready" : "L'application de chiffrement est activée et prête",
"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.",
diff --git a/apps/encryption/l10n/ja.js b/apps/encryption/l10n/ja.js
index 68149d82800..3919997ed61 100644
--- a/apps/encryption/l10n/ja.js
+++ b/apps/encryption/l10n/ja.js
@@ -4,26 +4,38 @@ OC.L10N.register(
"Missing recovery key password" : "復旧キーのパスワードがありません",
"Please repeat the recovery key password" : "復旧キーのパスワードをもう一度入力",
"Repeated recovery key password does not match the provided recovery key password" : "入力された復旧キーのパスワードが一致しません。",
- "Recovery key successfully enabled" : "リカバリ用のキーを正常に有効にしました",
- "Could not enable recovery key. Please check your recovery key password!" : "リカバリ用のキーを有効にできませんでした。リカバリ用のキーのパスワードを確認してください!",
- "Recovery key successfully disabled" : "リカバリ用のキーを正常に無効化しました",
- "Could not disable recovery key. Please check your recovery key password!" : "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!",
+ "Recovery key successfully enabled" : "復旧キーを正常に有効化しました",
+ "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" : "リカバリー鍵が有効になりました。",
- "Could not enable the recovery key, please try again or contact your administrator" : "リカバリー鍵を有効化できませんでした。もう一度試してみるか、管理者に連絡してください。",
+ "Recovery Key disabled" : "復旧キーが無効になりました。",
+ "Recovery Key enabled" : "復旧キーが有効になりました。",
+ "Could not enable the recovery key, please try again or contact your administrator" : "復旧キーを有効化できませんでした。もう一度試してみるか、管理者に連絡してください。",
"Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。",
"The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。",
"The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。",
"Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "古い暗号化(ownCloud 8.0以前)から新しい方へ、暗号化キーを移行する必要があります。'occ encryption:migrate'を実行するか、管理者に問い合わせてください。",
"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 and ready" : "暗号化アプリは有効になっており、準備が整いました",
"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:" : "リカバリキーのパスワードを変更:",
+ "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." : "復旧キーは、ファイルの暗号化に使う特別な暗号化キーです。ユーザがパスワードを忘れてしまった場合には、リカバリキーを使ってユーザのファイルを復元することができます。",
+ "Recovery key password" : "復旧キーのパスワード",
+ "Repeat recovery key password" : "復旧キーのパスワードをもう一度入力",
+ "Change recovery key password:" : "復旧キーのパスワードを変更:",
+ "Old recovery key password" : "古い復旧キーのパスワード",
+ "New recovery key password" : "新しい復旧キーのパスワード",
+ "Repeat new recovery key password" : "新しい復旧キーのパスワードをもう一度入力",
"Change Password" : "パスワードを変更",
"ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール",
"Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。",
diff --git a/apps/encryption/l10n/ja.json b/apps/encryption/l10n/ja.json
index 1ca6304c28f..c8f65e0d7b3 100644
--- a/apps/encryption/l10n/ja.json
+++ b/apps/encryption/l10n/ja.json
@@ -2,26 +2,38 @@
"Missing recovery key password" : "復旧キーのパスワードがありません",
"Please repeat the recovery key password" : "復旧キーのパスワードをもう一度入力",
"Repeated recovery key password does not match the provided recovery key password" : "入力された復旧キーのパスワードが一致しません。",
- "Recovery key successfully enabled" : "リカバリ用のキーを正常に有効にしました",
- "Could not enable recovery key. Please check your recovery key password!" : "リカバリ用のキーを有効にできませんでした。リカバリ用のキーのパスワードを確認してください!",
- "Recovery key successfully disabled" : "リカバリ用のキーを正常に無効化しました",
- "Could not disable recovery key. Please check your recovery key password!" : "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!",
+ "Recovery key successfully enabled" : "復旧キーを正常に有効化しました",
+ "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" : "リカバリー鍵が有効になりました。",
- "Could not enable the recovery key, please try again or contact your administrator" : "リカバリー鍵を有効化できませんでした。もう一度試してみるか、管理者に連絡してください。",
+ "Recovery Key disabled" : "復旧キーが無効になりました。",
+ "Recovery Key enabled" : "復旧キーが有効になりました。",
+ "Could not enable the recovery key, please try again or contact your administrator" : "復旧キーを有効化できませんでした。もう一度試してみるか、管理者に連絡してください。",
"Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。",
"The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。",
"The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。",
"Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "古い暗号化(ownCloud 8.0以前)から新しい方へ、暗号化キーを移行する必要があります。'occ encryption:migrate'を実行するか、管理者に問い合わせてください。",
"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 and ready" : "暗号化アプリは有効になっており、準備が整いました",
"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:" : "リカバリキーのパスワードを変更:",
+ "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." : "復旧キーは、ファイルの暗号化に使う特別な暗号化キーです。ユーザがパスワードを忘れてしまった場合には、リカバリキーを使ってユーザのファイルを復元することができます。",
+ "Recovery key password" : "復旧キーのパスワード",
+ "Repeat recovery key password" : "復旧キーのパスワードをもう一度入力",
+ "Change recovery key password:" : "復旧キーのパスワードを変更:",
+ "Old recovery key password" : "古い復旧キーのパスワード",
+ "New recovery key password" : "新しい復旧キーのパスワード",
+ "Repeat new recovery key password" : "新しい復旧キーのパスワードをもう一度入力",
"Change Password" : "パスワードを変更",
"ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール",
"Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。",
diff --git a/apps/encryption/l10n/oc.js b/apps/encryption/l10n/oc.js
new file mode 100644
index 00000000000..34d8782b2f8
--- /dev/null
+++ b/apps/encryption/l10n/oc.js
@@ -0,0 +1,52 @@
+OC.L10N.register(
+ "encryption",
+ {
+ "Missing recovery key password" : "Senhal de la clau de recuperacion mancant",
+ "Please repeat the recovery key password" : "Répétez lo senhal de la clau de recuperacion",
+ "Repeated recovery key password does not match the provided recovery key password" : "Lo senhal de la clau de recuperacion e sa repeticion son pas identics.",
+ "Recovery key successfully enabled" : "Clau de recuperacion activada amb succès",
+ "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
+ "Recovery key successfully disabled" : "Clau de recuperacion desactivada amb succès",
+ "Could not disable recovery key. Please check your recovery key password!" : "Impossible de desactivar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
+ "Missing parameters" : "Paramètres mancants",
+ "Please provide the old recovery password" : "Entratz l'ancian senhal de recuperacion",
+ "Please provide a new recovery password" : "Entratz un novèl senhal de recuperacion",
+ "Please repeat the new recovery password" : "Repetissètz lo novèl senhal de recuperacion",
+ "Password successfully changed." : "Senhal cambiat amb succès.",
+ "Could not change the password. Maybe the old password was not correct." : "Error al moment del cambiament de senhal. Benlèu que l'ancian senhal es incorrècte.",
+ "Recovery Key disabled" : "Clau de recuperacion desactivada",
+ "Recovery Key enabled" : "Clau de recuperacion activada",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activar la clau de recuperacion. Ensajatz tornamai o contactatz vòstre administrator",
+ "Could not update the private key password." : "Impossible de metre a jorn lo senhal de la clau privada.",
+ "The old password was not correct, please try again." : "L'ancian senhal es incorrècte. Ensajatz tornamai.",
+ "The current log-in password was not correct, please try again." : "Lo senhal de connexion actual es pas corrècte, ensajatz tornamai.",
+ "Private key password successfully updated." : "Senhal de la clau privada mes a jorn amb succès.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Vos cal migrar vòstras claus de chiframent de l'anciana version (ownCloud <= 8.0) cap a la novèla. Executatz 'occ encryption:migrate' o contactatz vòstre administrator",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vòstra clau privada pel chiframent es pas valida ! Metètz a jorn lo senhal de vòstra clau privada dins vòstres paramètres personals per recuperar l'accès a vòstres fichièrs chifrats.",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicacion de chiframent es activada mas vòstras claus son pas inicializadas. Desconnectatz-vos e puèi reconnectatz-vos.",
+ "Encryption App is enabled and ready" : "L'aplicacion de chiframent es activada e prèsta",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de deschifrar aqueste fichièr : s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo partejar tornamai amb vos.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de legir aqueste fichièr, s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo repartejar amb vos. ",
+ "Enable recovery key" : "Activar la clau de recuperacion",
+ "Disable recovery key" : "Desactivar la clau de recuperacion",
+ "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 clau de recuperacion es una clau suplementària utilizada per chifrar los fichièrs. Permet de recuperar los fichièrs dels utilizaires se doblidan lor senhal.",
+ "Recovery key password" : "Senhal de la clau de recuperacion",
+ "Repeat recovery key password" : "Repetissètz lo senhal de la clau de recuperacion",
+ "Change recovery key password:" : "Modificar lo senhal de la clau de recuperacion :",
+ "Old recovery key password" : "Ancian senhal de la clau de recuperacion",
+ "New recovery key password" : "Novèl senhal de la clau de recuperacion",
+ "Repeat new recovery key password" : "Repetissètz lo novèl senhal de la clau de recuperacion",
+ "Change Password" : "Cambiar de senhal",
+ "ownCloud basic encryption module" : "Modul de chiframent de basa d'ownCloud",
+ "Your private key password no longer matches your log-in password." : "Lo senhal de vòstra clau privada correspond pas mai a vòstre senhal de connexion.",
+ "Set your old private key password to your current log-in password:" : "Fasètz de vòstre senhal de connexion lo senhal de vòstra clau privada :",
+ " If you don't remember your old password you can ask your administrator to recover your files." : "Se vos remembratz pas mai de vòstre ancian senhal, podètz demandar a vòstre administrator de recuperar vòstres fichièrs.",
+ "Old log-in password" : "Ancian senhal de connexion",
+ "Current log-in password" : "Actual senhal de connexion",
+ "Update Private Key Password" : "Metre a jorn lo senhal de vòstra clau privada",
+ "Enable password recovery:" : "Activar la recuperacion del senhal :",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opcion vos permetrà d'obténer tornamai l'accès a vòstres fichièrs chifrats en cas de pèrda de senhal",
+ "Enabled" : "Activat",
+ "Disabled" : "Desactivat"
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/apps/encryption/l10n/oc.json b/apps/encryption/l10n/oc.json
new file mode 100644
index 00000000000..e3afad2db1b
--- /dev/null
+++ b/apps/encryption/l10n/oc.json
@@ -0,0 +1,50 @@
+{ "translations": {
+ "Missing recovery key password" : "Senhal de la clau de recuperacion mancant",
+ "Please repeat the recovery key password" : "Répétez lo senhal de la clau de recuperacion",
+ "Repeated recovery key password does not match the provided recovery key password" : "Lo senhal de la clau de recuperacion e sa repeticion son pas identics.",
+ "Recovery key successfully enabled" : "Clau de recuperacion activada amb succès",
+ "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
+ "Recovery key successfully disabled" : "Clau de recuperacion desactivada amb succès",
+ "Could not disable recovery key. Please check your recovery key password!" : "Impossible de desactivar la clau de recuperacion. Verificatz lo senhal de vòstra clau de recuperacion !",
+ "Missing parameters" : "Paramètres mancants",
+ "Please provide the old recovery password" : "Entratz l'ancian senhal de recuperacion",
+ "Please provide a new recovery password" : "Entratz un novèl senhal de recuperacion",
+ "Please repeat the new recovery password" : "Repetissètz lo novèl senhal de recuperacion",
+ "Password successfully changed." : "Senhal cambiat amb succès.",
+ "Could not change the password. Maybe the old password was not correct." : "Error al moment del cambiament de senhal. Benlèu que l'ancian senhal es incorrècte.",
+ "Recovery Key disabled" : "Clau de recuperacion desactivada",
+ "Recovery Key enabled" : "Clau de recuperacion activada",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activar la clau de recuperacion. Ensajatz tornamai o contactatz vòstre administrator",
+ "Could not update the private key password." : "Impossible de metre a jorn lo senhal de la clau privada.",
+ "The old password was not correct, please try again." : "L'ancian senhal es incorrècte. Ensajatz tornamai.",
+ "The current log-in password was not correct, please try again." : "Lo senhal de connexion actual es pas corrècte, ensajatz tornamai.",
+ "Private key password successfully updated." : "Senhal de la clau privada mes a jorn amb succès.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Vos cal migrar vòstras claus de chiframent de l'anciana version (ownCloud <= 8.0) cap a la novèla. Executatz 'occ encryption:migrate' o contactatz vòstre administrator",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vòstra clau privada pel chiframent es pas valida ! Metètz a jorn lo senhal de vòstra clau privada dins vòstres paramètres personals per recuperar l'accès a vòstres fichièrs chifrats.",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicacion de chiframent es activada mas vòstras claus son pas inicializadas. Desconnectatz-vos e puèi reconnectatz-vos.",
+ "Encryption App is enabled and ready" : "L'aplicacion de chiframent es activada e prèsta",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de deschifrar aqueste fichièr : s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo partejar tornamai amb vos.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Impossible de legir aqueste fichièr, s'agís probablament d'un fichièr partejat. Demandatz al proprietari del fichièr de lo repartejar amb vos. ",
+ "Enable recovery key" : "Activar la clau de recuperacion",
+ "Disable recovery key" : "Desactivar la clau de recuperacion",
+ "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 clau de recuperacion es una clau suplementària utilizada per chifrar los fichièrs. Permet de recuperar los fichièrs dels utilizaires se doblidan lor senhal.",
+ "Recovery key password" : "Senhal de la clau de recuperacion",
+ "Repeat recovery key password" : "Repetissètz lo senhal de la clau de recuperacion",
+ "Change recovery key password:" : "Modificar lo senhal de la clau de recuperacion :",
+ "Old recovery key password" : "Ancian senhal de la clau de recuperacion",
+ "New recovery key password" : "Novèl senhal de la clau de recuperacion",
+ "Repeat new recovery key password" : "Repetissètz lo novèl senhal de la clau de recuperacion",
+ "Change Password" : "Cambiar de senhal",
+ "ownCloud basic encryption module" : "Modul de chiframent de basa d'ownCloud",
+ "Your private key password no longer matches your log-in password." : "Lo senhal de vòstra clau privada correspond pas mai a vòstre senhal de connexion.",
+ "Set your old private key password to your current log-in password:" : "Fasètz de vòstre senhal de connexion lo senhal de vòstra clau privada :",
+ " If you don't remember your old password you can ask your administrator to recover your files." : "Se vos remembratz pas mai de vòstre ancian senhal, podètz demandar a vòstre administrator de recuperar vòstres fichièrs.",
+ "Old log-in password" : "Ancian senhal de connexion",
+ "Current log-in password" : "Actual senhal de connexion",
+ "Update Private Key Password" : "Metre a jorn lo senhal de vòstra clau privada",
+ "Enable password recovery:" : "Activar la recuperacion del senhal :",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opcion vos permetrà d'obténer tornamai l'accès a vòstres fichièrs chifrats en cas de pèrda de senhal",
+ "Enabled" : "Activat",
+ "Disabled" : "Desactivat"
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+} \ No newline at end of file
diff --git a/apps/encryption/l10n/pt_PT.js b/apps/encryption/l10n/pt_PT.js
index 70b0098ad34..c144e2c68a5 100644
--- a/apps/encryption/l10n/pt_PT.js
+++ b/apps/encryption/l10n/pt_PT.js
@@ -22,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",
+ "Encryption App is enabled and ready" : "A aplicação de encriptação está ativa e pronta",
"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.",
"Enable recovery key" : "Ativar a chave de recuperação",
"Disable recovery key" : "Desativar a chave de recuperação",
diff --git a/apps/encryption/l10n/pt_PT.json b/apps/encryption/l10n/pt_PT.json
index 90f73414773..f23d8ce1cf1 100644
--- a/apps/encryption/l10n/pt_PT.json
+++ b/apps/encryption/l10n/pt_PT.json
@@ -20,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",
+ "Encryption App is enabled and ready" : "A aplicação de encriptação está ativa e pronta",
"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.",
"Enable recovery key" : "Ativar a chave de recuperação",
"Disable recovery key" : "Desativar a chave de recuperação",
diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js
index ec1ace0b4f0..7907c8aaeb9 100644
--- a/apps/encryption/l10n/ru.js
+++ b/apps/encryption/l10n/ru.js
@@ -21,13 +21,21 @@ OC.L10N.register(
"The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.",
"The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.",
"Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Вам необходимо произвести конвертацию ключей шифрования из старого формата (ownCloud <= 8.0) в новый. Пожалуйста запустите команду 'occ encryption:migrate' или обратитесь к администратору.",
"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 and ready" : "Приложение шифрования включено и готово",
"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." : "Ключ восстановления это дополнительный ключ, который используется для шифрования файлов. Он позволяет восстановить пользовательские файлы в случае утери пароля.",
"Recovery key password" : "Пароль ключа восстановления",
+ "Repeat recovery key password" : "Повторите пароль ключа восстановления",
"Change recovery key password:" : "Смена пароля ключа восстановления:",
+ "Old recovery key password" : "Старый пароль ключа восстановления",
+ "New recovery key password" : "Новый пароль ключа восстановления",
+ "Repeat new recovery key password" : "Повторите новый пароль ключа восстановления",
"Change Password" : "Изменить пароль",
"ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
"Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.",
diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json
index bde2b4c2f01..87378952dba 100644
--- a/apps/encryption/l10n/ru.json
+++ b/apps/encryption/l10n/ru.json
@@ -19,13 +19,21 @@
"The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.",
"The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.",
"Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Вам необходимо произвести конвертацию ключей шифрования из старого формата (ownCloud <= 8.0) в новый. Пожалуйста запустите команду 'occ encryption:migrate' или обратитесь к администратору.",
"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 and ready" : "Приложение шифрования включено и готово",
"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." : "Ключ восстановления это дополнительный ключ, который используется для шифрования файлов. Он позволяет восстановить пользовательские файлы в случае утери пароля.",
"Recovery key password" : "Пароль ключа восстановления",
+ "Repeat recovery key password" : "Повторите пароль ключа восстановления",
"Change recovery key password:" : "Смена пароля ключа восстановления:",
+ "Old recovery key password" : "Старый пароль ключа восстановления",
+ "New recovery key password" : "Новый пароль ключа восстановления",
+ "Repeat new recovery key password" : "Повторите новый пароль ключа восстановления",
"Change Password" : "Изменить пароль",
"ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
"Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.",
diff --git a/apps/encryption/l10n/th_TH.js b/apps/encryption/l10n/th_TH.js
new file mode 100644
index 00000000000..0d4b3eaebbb
--- /dev/null
+++ b/apps/encryption/l10n/th_TH.js
@@ -0,0 +1,52 @@
+OC.L10N.register(
+ "encryption",
+ {
+ "Missing recovery key password" : "รหัสกู้คืนรหัสผ่านหายไป",
+ "Please repeat the recovery key password" : "กรุณาใส่รหัสกู้คืนรหัสผ่าน อีกครั้ง",
+ "Repeated recovery key password does not match the provided recovery key password" : "ใส่รหัสกู้คืนรหัสผ่านไม่ตรงกัน",
+ "Recovery key successfully enabled" : "เปิดใช้งานรหัสการกู้คืนเรียบร้อยแล้ว",
+ "Could not enable recovery key. Please check your recovery key password!" : "ไม่สามารถเปิดใช้งานรหัสการกู้คืน กรุณาตรวจสอบรหัสผ่านคีย์การกู้คืนของคุณ!",
+ "Recovery key successfully disabled" : "ปิดใช้งานรหัสการกู้คืนเรียบร้อยแล้ว",
+ "Could not disable recovery key. Please check your recovery key password!" : "ไม่สามารถปิดใช้งานรหัสการกู้คืน กรุณาตรวจสอบรหัสผ่านคีย์การกู้คืนของคุณ!",
+ "Missing parameters" : "ค่าพารามิเตอร์หายไป",
+ "Please provide the old recovery password" : "โปรดระบุรหัสผ่านการกู้คืนเก่า",
+ "Please provide a new recovery password" : "โปรดระบุรหัสผ่านการกู้คืนใหม่",
+ "Please repeat the new recovery password" : "โปรดระบุการกู้คืนรหัสผ่านใหม่ อีกครั้ง",
+ "Password successfully changed." : "เปลี่ยนรหัสผ่านเรียบร้อยแล้ว",
+ "Could not change the password. Maybe the old password was not correct." : "ไม่สามารถเปลี่ยนรหัสผ่าน บางทีรหัสผ่านเดิมอาจไม่ถูกต้อง",
+ "Recovery Key disabled" : "ปิดการใช้งานการกู้คืนรหัส",
+ "Recovery Key enabled" : "เปิดการใช้งานการกู้คืนรหัส",
+ "Could not enable the recovery key, please try again or contact your administrator" : "ไม่สามารถเปิดใช้งานการกู้คืนรหัสโปรดลองอีกครั้งหรือติดต่อผู้ดูแลระบบ",
+ "Could not update the private key password." : "ไม่สามารถอัพเดทรหัสการเข้ารหัสส่วนตัว",
+ "The old password was not correct, please try again." : "รหัสผ่านเดิมไม่ถูกต้องโปรดลองอีกครั้ง",
+ "The current log-in password was not correct, please try again." : "รหัสผ่านเข้าสู่ระบบในปัจจุบันไม่ถูกต้องโปรดลองอีกครั้ง",
+ "Private key password successfully updated." : "รหัสการเข้ารหัสส่วนตัวถูกอัพเดทเรียบร้อยแล้ว",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "คุณจำเป็นต้องย้ายรหัสการเข้ารหัสลับของคุณจากการเข้ารหัสเก่า (ownCloud ที่มีเวอร์ชันต่ำกว่าหรือเท่ากับ 8.0) ไปเวอร์ชันใหม่ โปรดเรียกใช้ 'occ encryption:migrate' หรือติดต่อผู้ดูแลระบบ",
+ "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 and ready" : "เข้ารหัสแอพถูกเปิดใช้งานและพร้อมทำงาน",
+ "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." : "รหัสการกู้คืนเป็นการเข้ารหัสลับพิเศษจะใช้ในการเข้ารหัสไฟล์ มันจะช่วยเรื่องการกู้คืนไฟล์ของผู้ใช้ที่ลืมรหัสผ่าน",
+ "Recovery key password" : "รหัสการกู้คืนรหัสผ่าน",
+ "Repeat recovery key password" : "รหัสการกู้คืนรหัสผ่าน อีกครั้ง",
+ "Change recovery key password:" : "เปลี่ยนรหัสการกู้คืนรหัสผ่าน",
+ "Old recovery key password" : "รหัสการกู้คืนรหัสผ่านเก่า",
+ "New recovery key password" : "รหัสการกู้คืนรหัสผ่านใหม่",
+ "Repeat new recovery key password" : "รหัสการกู้คืนรหัสผ่านใหม่ อีกครั้ง",
+ "Change Password" : "เปลี่ยนรหัสผ่าน",
+ "ownCloud basic encryption module" : "ownCloud โมดูลการเข้ารหัสขั้นพื้นฐาน",
+ "Your private key password no longer matches your log-in password." : "รหัสการเข้ารหัสผ่านส่วนตัวของคุณไม่ตรงกับรหัสผ่านในการเข้าสู่ระบบของคุณ",
+ "Set your old private key password to your current log-in password:" : "ตั้งรหัสการเข้ารหัสผ่านส่วนตัวเก่าของคุณเพื่อเข้าสู่ระบบในปัจจุบันของคุณ:",
+ " If you don't remember your old password you can ask your administrator to recover your files." : "ถ้าคุณลืมรหัสผ่านเก่าของคุณคุณสามารถขอให้ผู้ดูแลระบบกู้คืนไฟล์ของคุณ",
+ "Old log-in password" : "เข้าสู่ระบบด้วยรหัสผ่านเก่า",
+ "Current log-in password" : "เข้าสู่ระบบด้วยรหัสผ่านปัจจุบัน",
+ "Update Private Key Password" : "อัพเดทรหัสการเข้ารหัสผ่านส่วนตัว",
+ "Enable password recovery:" : "เปิดใช้งานการกู้คืนรหัสผ่าน:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "การเปิดใช้งานตัวเลือกนี้จะช่วยให้คุณได้รับการเข้าถึงไฟล์ที่มีการเข้ารหัสของคุณในกรณีที่คุณลืมรหัสผ่าน",
+ "Enabled" : "เปิดการใช้งาน",
+ "Disabled" : "ปิดการใช้งาน"
+},
+"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/th_TH.json b/apps/encryption/l10n/th_TH.json
new file mode 100644
index 00000000000..3546042dee9
--- /dev/null
+++ b/apps/encryption/l10n/th_TH.json
@@ -0,0 +1,50 @@
+{ "translations": {
+ "Missing recovery key password" : "รหัสกู้คืนรหัสผ่านหายไป",
+ "Please repeat the recovery key password" : "กรุณาใส่รหัสกู้คืนรหัสผ่าน อีกครั้ง",
+ "Repeated recovery key password does not match the provided recovery key password" : "ใส่รหัสกู้คืนรหัสผ่านไม่ตรงกัน",
+ "Recovery key successfully enabled" : "เปิดใช้งานรหัสการกู้คืนเรียบร้อยแล้ว",
+ "Could not enable recovery key. Please check your recovery key password!" : "ไม่สามารถเปิดใช้งานรหัสการกู้คืน กรุณาตรวจสอบรหัสผ่านคีย์การกู้คืนของคุณ!",
+ "Recovery key successfully disabled" : "ปิดใช้งานรหัสการกู้คืนเรียบร้อยแล้ว",
+ "Could not disable recovery key. Please check your recovery key password!" : "ไม่สามารถปิดใช้งานรหัสการกู้คืน กรุณาตรวจสอบรหัสผ่านคีย์การกู้คืนของคุณ!",
+ "Missing parameters" : "ค่าพารามิเตอร์หายไป",
+ "Please provide the old recovery password" : "โปรดระบุรหัสผ่านการกู้คืนเก่า",
+ "Please provide a new recovery password" : "โปรดระบุรหัสผ่านการกู้คืนใหม่",
+ "Please repeat the new recovery password" : "โปรดระบุการกู้คืนรหัสผ่านใหม่ อีกครั้ง",
+ "Password successfully changed." : "เปลี่ยนรหัสผ่านเรียบร้อยแล้ว",
+ "Could not change the password. Maybe the old password was not correct." : "ไม่สามารถเปลี่ยนรหัสผ่าน บางทีรหัสผ่านเดิมอาจไม่ถูกต้อง",
+ "Recovery Key disabled" : "ปิดการใช้งานการกู้คืนรหัส",
+ "Recovery Key enabled" : "เปิดการใช้งานการกู้คืนรหัส",
+ "Could not enable the recovery key, please try again or contact your administrator" : "ไม่สามารถเปิดใช้งานการกู้คืนรหัสโปรดลองอีกครั้งหรือติดต่อผู้ดูแลระบบ",
+ "Could not update the private key password." : "ไม่สามารถอัพเดทรหัสการเข้ารหัสส่วนตัว",
+ "The old password was not correct, please try again." : "รหัสผ่านเดิมไม่ถูกต้องโปรดลองอีกครั้ง",
+ "The current log-in password was not correct, please try again." : "รหัสผ่านเข้าสู่ระบบในปัจจุบันไม่ถูกต้องโปรดลองอีกครั้ง",
+ "Private key password successfully updated." : "รหัสการเข้ารหัสส่วนตัวถูกอัพเดทเรียบร้อยแล้ว",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "คุณจำเป็นต้องย้ายรหัสการเข้ารหัสลับของคุณจากการเข้ารหัสเก่า (ownCloud ที่มีเวอร์ชันต่ำกว่าหรือเท่ากับ 8.0) ไปเวอร์ชันใหม่ โปรดเรียกใช้ 'occ encryption:migrate' หรือติดต่อผู้ดูแลระบบ",
+ "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 and ready" : "เข้ารหัสแอพถูกเปิดใช้งานและพร้อมทำงาน",
+ "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." : "รหัสการกู้คืนเป็นการเข้ารหัสลับพิเศษจะใช้ในการเข้ารหัสไฟล์ มันจะช่วยเรื่องการกู้คืนไฟล์ของผู้ใช้ที่ลืมรหัสผ่าน",
+ "Recovery key password" : "รหัสการกู้คืนรหัสผ่าน",
+ "Repeat recovery key password" : "รหัสการกู้คืนรหัสผ่าน อีกครั้ง",
+ "Change recovery key password:" : "เปลี่ยนรหัสการกู้คืนรหัสผ่าน",
+ "Old recovery key password" : "รหัสการกู้คืนรหัสผ่านเก่า",
+ "New recovery key password" : "รหัสการกู้คืนรหัสผ่านใหม่",
+ "Repeat new recovery key password" : "รหัสการกู้คืนรหัสผ่านใหม่ อีกครั้ง",
+ "Change Password" : "เปลี่ยนรหัสผ่าน",
+ "ownCloud basic encryption module" : "ownCloud โมดูลการเข้ารหัสขั้นพื้นฐาน",
+ "Your private key password no longer matches your log-in password." : "รหัสการเข้ารหัสผ่านส่วนตัวของคุณไม่ตรงกับรหัสผ่านในการเข้าสู่ระบบของคุณ",
+ "Set your old private key password to your current log-in password:" : "ตั้งรหัสการเข้ารหัสผ่านส่วนตัวเก่าของคุณเพื่อเข้าสู่ระบบในปัจจุบันของคุณ:",
+ " If you don't remember your old password you can ask your administrator to recover your files." : "ถ้าคุณลืมรหัสผ่านเก่าของคุณคุณสามารถขอให้ผู้ดูแลระบบกู้คืนไฟล์ของคุณ",
+ "Old log-in password" : "เข้าสู่ระบบด้วยรหัสผ่านเก่า",
+ "Current log-in password" : "เข้าสู่ระบบด้วยรหัสผ่านปัจจุบัน",
+ "Update Private Key Password" : "อัพเดทรหัสการเข้ารหัสผ่านส่วนตัว",
+ "Enable password recovery:" : "เปิดใช้งานการกู้คืนรหัสผ่าน:",
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "การเปิดใช้งานตัวเลือกนี้จะช่วยให้คุณได้รับการเข้าถึงไฟล์ที่มีการเข้ารหัสของคุณในกรณีที่คุณลืมรหัสผ่าน",
+ "Enabled" : "เปิดการใช้งาน",
+ "Disabled" : "ปิดการใช้งาน"
+},"pluralForm" :"nplurals=1; plural=0;"
+} \ No newline at end of file
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index 0d4327b2e0b..065c0d16d1c 100644
--- a/apps/encryption/l10n/tr.js
+++ b/apps/encryption/l10n/tr.js
@@ -14,20 +14,28 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin",
"Password successfully changed." : "Parola başarıyla değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.",
- "Recovery Key disabled" : "Kurtarma anahtarı kapalı",
- "Recovery Key enabled" : "Kurtarma anahtarı etkin",
- "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun",
+ "Recovery Key disabled" : "Kurtarma Anahtarı kapalı",
+ "Recovery Key enabled" : "Kurtarma Anahtarı etkin",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirilemedi, tekrar deneyin ya da yöneticinize başvurun",
"Could not update the private key password." : "Özel anahtar parolası güncellenemedi",
"The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.",
"The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.",
"Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Eski şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine taşımanız gerekli. Lütfen 'occ encryption:migrate' çalıştırın veya yöneticinize danışın",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption 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",
+ "Encryption App is enabled and ready" : "Şifreleme Uygulaması etkin ve hazır",
"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",
+ "Can not read 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 okunamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.",
+ "Enable recovery key" : "Kurtarma anahtarını etkinleştir",
+ "Disable recovery key" : "Kurtarma anahtarını devre dışı bırak",
+ "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." : "Kurtarma anahtarı, dosyaların şifrelenmesi için daha fazla \nşifreleme sunar. Bu kullanıcının dosyasının şifresini unuttuğunda kurtarmasına imkan verir.",
"Recovery key password" : "Kurtarma anahtarı parolası",
+ "Repeat recovery key password" : "Kurtarma anahtarı parolasını yineleyin",
"Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:",
+ "Old recovery key password" : "Eski kurtarma anahtarı parolası",
+ "New recovery key password" : "Yeni kurtarma anahtarı parolası",
+ "Repeat new recovery key password" : "Yeni kurtarma anahtarı parolasını yineleyin",
"Change Password" : "Parola Değiştir",
"ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
"Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.",
diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json
index 3989ebaa515..b21a019bb64 100644
--- a/apps/encryption/l10n/tr.json
+++ b/apps/encryption/l10n/tr.json
@@ -12,20 +12,28 @@
"Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin",
"Password successfully changed." : "Parola başarıyla değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.",
- "Recovery Key disabled" : "Kurtarma anahtarı kapalı",
- "Recovery Key enabled" : "Kurtarma anahtarı etkin",
- "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun",
+ "Recovery Key disabled" : "Kurtarma Anahtarı kapalı",
+ "Recovery Key enabled" : "Kurtarma Anahtarı etkin",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirilemedi, tekrar deneyin ya da yöneticinize başvurun",
"Could not update the private key password." : "Özel anahtar parolası güncellenemedi",
"The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.",
"The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.",
"Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Eski şifreleme anahtarlarınızı eski şifrelemeden (ownCloud <= 8.0) yenisine taşımanız gerekli. Lütfen 'occ encryption:migrate' çalıştırın veya yöneticinize danışın",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption 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",
+ "Encryption App is enabled and ready" : "Şifreleme Uygulaması etkin ve hazır",
"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",
+ "Can not read 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 okunamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.",
+ "Enable recovery key" : "Kurtarma anahtarını etkinleştir",
+ "Disable recovery key" : "Kurtarma anahtarını devre dışı bırak",
+ "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." : "Kurtarma anahtarı, dosyaların şifrelenmesi için daha fazla \nşifreleme sunar. Bu kullanıcının dosyasının şifresini unuttuğunda kurtarmasına imkan verir.",
"Recovery key password" : "Kurtarma anahtarı parolası",
+ "Repeat recovery key password" : "Kurtarma anahtarı parolasını yineleyin",
"Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:",
+ "Old recovery key password" : "Eski kurtarma anahtarı parolası",
+ "New recovery key password" : "Yeni kurtarma anahtarı parolası",
+ "Repeat new recovery key password" : "Yeni kurtarma anahtarı parolasını yineleyin",
"Change Password" : "Parola Değiştir",
"ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
"Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.",
diff --git a/apps/encryption/l10n/vi.js b/apps/encryption/l10n/vi.js
index 6ba7db83cb2..b9956551622 100644
--- a/apps/encryption/l10n/vi.js
+++ b/apps/encryption/l10n/vi.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"encryption",
{
+ "Missing recovery key password" : "Thiếu khóa khôi phục mật khẩu",
+ "Please repeat the recovery key password" : "Nhập lại khóa khôi phục mật khẩu",
"Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công",
"Could not enable recovery key. Please check your recovery key password!" : "Không thể kích hoạt khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
"Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công",
diff --git a/apps/encryption/l10n/vi.json b/apps/encryption/l10n/vi.json
index 8d3fd994129..eaaa3d1c038 100644
--- a/apps/encryption/l10n/vi.json
+++ b/apps/encryption/l10n/vi.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "Missing recovery key password" : "Thiếu khóa khôi phục mật khẩu",
+ "Please repeat the recovery key password" : "Nhập lại khóa khôi phục mật khẩu",
"Recovery key successfully enabled" : "Khóa khôi phục kích hoạt thành công",
"Could not enable recovery key. Please check your recovery key password!" : "Không thể kích hoạt khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
"Recovery key successfully disabled" : "Vô hiệu hóa khóa khôi phục thành công",
diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php
index 9094a84d4c8..fe1d955524a 100644
--- a/apps/encryption/lib/crypto/encryption.php
+++ b/apps/encryption/lib/crypto/encryption.php
@@ -279,12 +279,11 @@ class Encryption implements IEncryptionModule {
*/
public function decrypt($data) {
if (empty($this->fileKey)) {
- $msg = $this->l->t('Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
- $this->logger->error('Can not decrypt this file,
- probably this is a shared file.
- Please ask the file owner to reshare the file with you.');
+ $msg = 'Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.';
+ $hint = $this->l->t('Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
+ $this->logger->error($msg);
- throw new DecryptionFailedException($msg);
+ throw new DecryptionFailedException($msg, $hint);
}
$result = '';
diff --git a/apps/encryption/tests/lib/HookManagerTest.php b/apps/encryption/tests/lib/HookManagerTest.php
index 3da0bafb691..fb74c05546b 100644
--- a/apps/encryption/tests/lib/HookManagerTest.php
+++ b/apps/encryption/tests/lib/HookManagerTest.php
@@ -43,7 +43,7 @@ class HookManagerTest extends TestCase {
$this->getMock('NotIHook')
]);
- $hookInstances = \Test_Helper::invokePrivate(self::$instance, 'hookInstances');
+ $hookInstances = self::invokePrivate(self::$instance, 'hookInstances');
// Make sure our type checking works
$this->assertCount(2, $hookInstances);
}
@@ -66,7 +66,7 @@ class HookManagerTest extends TestCase {
$mock = $this->getMockBuilder('OCA\Encryption\Hooks\Contracts\IHook')->disableOriginalConstructor()->getMock();
self::$instance->registerHook($mock);
- $hookInstances = \Test_Helper::invokePrivate(self::$instance, 'hookInstances');
+ $hookInstances = self::invokePrivate(self::$instance, 'hookInstances');
$this->assertCount(3, $hookInstances);
}
diff --git a/apps/encryption/tests/lib/KeyManagerTest.php b/apps/encryption/tests/lib/KeyManagerTest.php
index 6e9c6d15818..eb43d5a843f 100644
--- a/apps/encryption/tests/lib/KeyManagerTest.php
+++ b/apps/encryption/tests/lib/KeyManagerTest.php
@@ -285,7 +285,7 @@ class KeyManagerTest extends TestCase {
->with('user1', 'privateKey')
->willReturn(true);
- $this->assertTrue(\Test_Helper::invokePrivate($this->instance,
+ $this->assertTrue(self::invokePrivate($this->instance,
'deletePrivateKey',
[$this->userId]));
}
@@ -329,8 +329,8 @@ class KeyManagerTest extends TestCase {
});
// set key IDs
- \Test_Helper::invokePrivate($this->instance, 'publicShareKeyId', [$publicShareKeyId]);
- \Test_Helper::invokePrivate($this->instance, 'recoveryKeyId', [$recoveryKeyId]);
+ self::invokePrivate($this->instance, 'publicShareKeyId', [$publicShareKeyId]);
+ self::invokePrivate($this->instance, 'recoveryKeyId', [$recoveryKeyId]);
$result = $this->instance->addSystemKeys($accessList, $publicKeys, $uid);
diff --git a/apps/encryption/tests/lib/MigrationTest.php b/apps/encryption/tests/lib/MigrationTest.php
index f56ff5cc2f7..c876cea05c9 100644
--- a/apps/encryption/tests/lib/MigrationTest.php
+++ b/apps/encryption/tests/lib/MigrationTest.php
@@ -292,7 +292,7 @@ class MigrationTest extends \Test\TestCase {
public function testUpdateFileCache() {
$this->prepareFileCache();
$m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection());
- \Test_Helper::invokePrivate($m, 'updateFileCache');
+ self::invokePrivate($m, 'updateFileCache');
// check results
diff --git a/apps/encryption/tests/lib/RecoveryTest.php b/apps/encryption/tests/lib/RecoveryTest.php
index 5bfafa3a98e..0b85192690b 100644
--- a/apps/encryption/tests/lib/RecoveryTest.php
+++ b/apps/encryption/tests/lib/RecoveryTest.php
@@ -180,7 +180,7 @@ class RecoveryTest extends TestCase {
$this->keyManagerMock->expects($this->once())
->method('setAllFileKeys');
- $this->assertNull(\Test_Helper::invokePrivate($this->instance,
+ $this->assertNull(self::invokePrivate($this->instance,
'recoverFile',
['/', 'testkey', 'admin']));
}
diff --git a/apps/encryption/tests/lib/crypto/cryptTest.php b/apps/encryption/tests/lib/crypto/cryptTest.php
index 4114adb115a..f850725108b 100644
--- a/apps/encryption/tests/lib/crypto/cryptTest.php
+++ b/apps/encryption/tests/lib/crypto/cryptTest.php
@@ -70,7 +70,7 @@ class cryptTest extends TestCase {
->with($this->equalTo('openssl'), $this->equalTo([]))
->willReturn(array());
- $result = \Test_Helper::invokePrivate($this->crypt, 'getOpenSSLConfig');
+ $result = self::invokePrivate($this->crypt, 'getOpenSSLConfig');
$this->assertSame(1, count($result));
$this->assertArrayHasKey('private_key_bits', $result);
$this->assertSame(4096, $result['private_key_bits']);
@@ -86,7 +86,7 @@ class cryptTest extends TestCase {
->with($this->equalTo('openssl'), $this->equalTo([]))
->willReturn(array('foo' => 'bar', 'private_key_bits' => 1028));
- $result = \Test_Helper::invokePrivate($this->crypt, 'getOpenSSLConfig');
+ $result = self::invokePrivate($this->crypt, 'getOpenSSLConfig');
$this->assertSame(2, count($result));
$this->assertArrayHasKey('private_key_bits', $result);
$this->assertArrayHasKey('foo', $result);
@@ -146,7 +146,7 @@ class cryptTest extends TestCase {
*/
public function testConcatIV() {
- $result = \Test_Helper::invokePrivate(
+ $result = self::invokePrivate(
$this->crypt,
'concatIV',
array('content', 'my_iv'));
@@ -161,7 +161,7 @@ class cryptTest extends TestCase {
*/
public function testSplitIV() {
$data = 'encryptedContent00iv001234567890123456';
- $result = \Test_Helper::invokePrivate($this->crypt, 'splitIV', array($data));
+ $result = self::invokePrivate($this->crypt, 'splitIV', array($data));
$this->assertTrue(is_array($result));
$this->assertSame(2, count($result));
$this->assertArrayHasKey('encrypted', $result);
@@ -174,7 +174,7 @@ class cryptTest extends TestCase {
* test addPadding()
*/
public function testAddPadding() {
- $result = \Test_Helper::invokePrivate($this->crypt, 'addPadding', array('data'));
+ $result = self::invokePrivate($this->crypt, 'addPadding', array('data'));
$this->assertSame('dataxx', $result);
}
@@ -186,7 +186,7 @@ class cryptTest extends TestCase {
* @param $expected
*/
public function testRemovePadding($data, $expected) {
- $result = \Test_Helper::invokePrivate($this->crypt, 'removePadding', array($data));
+ $result = self::invokePrivate($this->crypt, 'removePadding', array($data));
$this->assertSame($expected, $result);
}
@@ -208,7 +208,7 @@ class cryptTest extends TestCase {
public function testParseHeader() {
$header= 'HBEGIN:foo:bar:cipher:AES-256-CFB:HEND';
- $result = \Test_Helper::invokePrivate($this->crypt, 'parseHeader', array($header));
+ $result = self::invokePrivate($this->crypt, 'parseHeader', array($header));
$this->assertTrue(is_array($result));
$this->assertSame(2, count($result));
@@ -227,12 +227,12 @@ class cryptTest extends TestCase {
$decrypted = 'content';
$password = 'password';
- $iv = \Test_Helper::invokePrivate($this->crypt, 'generateIv');
+ $iv = self::invokePrivate($this->crypt, 'generateIv');
$this->assertTrue(is_string($iv));
$this->assertSame(16, strlen($iv));
- $result = \Test_Helper::invokePrivate($this->crypt, 'encrypt', array($decrypted, $iv, $password));
+ $result = self::invokePrivate($this->crypt, 'encrypt', array($decrypted, $iv, $password));
$this->assertTrue(is_string($result));
@@ -251,7 +251,7 @@ class cryptTest extends TestCase {
*/
public function testDecrypt($data) {
- $result = \Test_Helper::invokePrivate(
+ $result = self::invokePrivate(
$this->crypt,
'decrypt',
array($data['encrypted'], $data['iv'], $data['password']));
diff --git a/apps/encryption/tests/lib/crypto/encryptionTest.php b/apps/encryption/tests/lib/crypto/encryptionTest.php
index d33aff877bf..c6c0d57eff5 100644
--- a/apps/encryption/tests/lib/crypto/encryptionTest.php
+++ b/apps/encryption/tests/lib/crypto/encryptionTest.php
@@ -103,8 +103,8 @@ class EncryptionTest extends TestCase {
*/
public function endTest() {
// prepare internal variables
- \Test_Helper::invokePrivate($this->instance, 'isWriteOperation', [true]);
- \Test_Helper::invokePrivate($this->instance, 'writeCache', ['']);
+ self::invokePrivate($this->instance, 'isWriteOperation', [true]);
+ self::invokePrivate($this->instance, 'writeCache', ['']);
$this->keyManagerMock->expects($this->any())
->method('getPublicKey')
@@ -142,7 +142,7 @@ class EncryptionTest extends TestCase {
*/
public function testGetPathToRealFile($path, $expected) {
$this->assertSame($expected,
- \Test_Helper::invokePrivate($this->instance, 'getPathToRealFile', array($path))
+ self::invokePrivate($this->instance, 'getPathToRealFile', array($path))
);
}
@@ -184,9 +184,9 @@ class EncryptionTest extends TestCase {
$this->assertArrayHasKey('cipher', $result);
$this->assertSame($expected, $result['cipher']);
if ($mode === 'w') {
- $this->assertTrue(\Test_Helper::invokePrivate($this->instance, 'isWriteOperation'));
+ $this->assertTrue(self::invokePrivate($this->instance, 'isWriteOperation'));
} else {
- $this->assertFalse(\Test_Helper::invokePrivate($this->instance, 'isWriteOperation'));
+ $this->assertFalse(self::invokePrivate($this->instance, 'isWriteOperation'));
}
}
diff --git a/apps/files/ajax/delete.php b/apps/files/ajax/delete.php
index 9d4f0b0fcf5..dcd05d8da9e 100644
--- a/apps/files/ajax/delete.php
+++ b/apps/files/ajax/delete.php
@@ -54,10 +54,15 @@ $success = true;
//Now delete
foreach ($files as $file) {
- if (\OC\Files\Filesystem::file_exists($dir . '/' . $file) &&
- !(\OC\Files\Filesystem::isDeletable($dir . '/' . $file) &&
- \OC\Files\Filesystem::unlink($dir . '/' . $file))
- ) {
+ try {
+ if (\OC\Files\Filesystem::file_exists($dir . '/' . $file) &&
+ !(\OC\Files\Filesystem::isDeletable($dir . '/' . $file) &&
+ \OC\Files\Filesystem::unlink($dir . '/' . $file))
+ ) {
+ $filesWithError .= $file . "\n";
+ $success = false;
+ }
+ } catch (\Exception $e) {
$filesWithError .= $file . "\n";
$success = false;
}
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php
index b4e1e508a3f..6dd3e3e7a80 100644
--- a/apps/files/ajax/newfile.php
+++ b/apps/files/ajax/newfile.php
@@ -78,10 +78,21 @@ $templateManager = OC_Helper::getFileTemplateManager();
$mimeType = OC_Helper::getMimetypeDetector()->detectPath($target);
$content = $templateManager->getTemplate($mimeType);
-if($content) {
- $success = \OC\Files\Filesystem::file_put_contents($target, $content);
-} else {
- $success = \OC\Files\Filesystem::touch($target);
+try {
+ if($content) {
+ $success = \OC\Files\Filesystem::file_put_contents($target, $content);
+ } else {
+ $success = \OC\Files\Filesystem::touch($target);
+ }
+} catch (\Exception $e) {
+ $result = [
+ 'success' => false,
+ 'data' => [
+ 'message' => $e->getMessage()
+ ]
+ ];
+ OCP\JSON::error($result);
+ exit();
}
if($success) {
diff --git a/apps/files/ajax/newfolder.php b/apps/files/ajax/newfolder.php
index 90bc9ecbb83..b15457e0173 100644
--- a/apps/files/ajax/newfolder.php
+++ b/apps/files/ajax/newfolder.php
@@ -74,15 +74,26 @@ if (\OC\Files\Filesystem::file_exists($target)) {
exit();
}
-if(\OC\Files\Filesystem::mkdir($target)) {
- if ( $dir !== '/') {
- $path = $dir.'/'.$folderName;
- } else {
- $path = '/'.$folderName;
+try {
+ if(\OC\Files\Filesystem::mkdir($target)) {
+ if ( $dir !== '/') {
+ $path = $dir.'/'.$folderName;
+ } else {
+ $path = '/'.$folderName;
+ }
+ $meta = \OC\Files\Filesystem::getFileInfo($path);
+ $meta['type'] = 'dir'; // missing ?!
+ OCP\JSON::success(array('data' => \OCA\Files\Helper::formatFileInfo($meta)));
+ exit();
}
- $meta = \OC\Files\Filesystem::getFileInfo($path);
- $meta['type'] = 'dir'; // missing ?!
- OCP\JSON::success(array('data' => \OCA\Files\Helper::formatFileInfo($meta)));
+} catch (\Exception $e) {
+ $result = [
+ 'success' => false,
+ 'data' => [
+ 'message' => $e->getMessage()
+ ]
+ ];
+ OCP\JSON::error($result);
exit();
}
diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php
index 576902e29e5..edb6dd7862d 100644
--- a/apps/files/ajax/rename.php
+++ b/apps/files/ajax/rename.php
@@ -29,15 +29,26 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
\OC::$server->getSession()->close();
+$l10n = \OC::$server->getL10N('files');
+
$files = new \OCA\Files\App(
\OC\Files\Filesystem::getView(),
\OC::$server->getL10N('files')
);
-$result = $files->rename(
- isset($_GET['dir']) ? (string)$_GET['dir'] : '',
- isset($_GET['file']) ? (string)$_GET['file'] : '',
- isset($_GET['newname']) ? (string)$_GET['newname'] : ''
-);
+try {
+ $result = $files->rename(
+ isset($_GET['dir']) ? (string)$_GET['dir'] : '',
+ isset($_GET['file']) ? (string)$_GET['file'] : '',
+ isset($_GET['newname']) ? (string)$_GET['newname'] : ''
+ );
+} catch (\Exception $e) {
+ $result = [
+ 'success' => false,
+ 'data' => [
+ 'message' => $e->getMessage()
+ ]
+ ];
+}
if($result['success'] === true){
OCP\JSON::success(['data' => $result['data']]);
diff --git a/apps/files/index.php b/apps/files/index.php
index c7a45e54854..ee12df5f075 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -138,6 +138,8 @@ OCP\Util::addscript('files', 'navigation');
OCP\Util::addscript('files', 'keyboardshortcuts');
$tmpl = new OCP\Template('files', 'index', 'user');
$tmpl->assign('usedSpacePercent', (int)$storageInfo['relative']);
+$tmpl->assign('owner', $storageInfo['owner']);
+$tmpl->assign('ownerDisplayName', $storageInfo['ownerDisplayName']);
$tmpl->assign('isPublic', false);
$tmpl->assign("mailNotificationEnabled", $config->getAppValue('core', 'shareapi_allow_mail_notification', 'no'));
$tmpl->assign("mailPublicNotificationEnabled", $config->getAppValue('core', 'shareapi_allow_public_notification', 'no'));
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index e88ea1ad5d7..b6f464bfd29 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1173,8 +1173,10 @@
if (!urlSpec.y) {
urlSpec.y = this.$table.data('preview-y') || 36;
}
- urlSpec.y *= window.devicePixelRatio;
urlSpec.x *= window.devicePixelRatio;
+ urlSpec.y *= window.devicePixelRatio;
+ urlSpec.x = Math.floor(urlSpec.x);
+ urlSpec.y = Math.floor(urlSpec.y);
urlSpec.forceIcon = 0;
return OC.generateUrl('/core/preview.png?') + $.param(urlSpec);
},
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 68e9315954f..44868e78bd0 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -63,6 +63,8 @@
$('#free_space').val(response.data.freeSpace);
$('#upload.button').attr('original-title', response.data.maxHumanFilesize);
$('#usedSpacePercent').val(response.data.usedSpacePercent);
+ $('#owner').val(response.data.owner);
+ $('#ownerDisplayName').val(response.data.ownerDisplayName);
Files.displayStorageWarnings();
}
if (response[0] === undefined) {
@@ -109,12 +111,24 @@
return;
}
- var usedSpacePercent = $('#usedSpacePercent').val();
+ var usedSpacePercent = $('#usedSpacePercent').val(),
+ owner = $('#owner').val(),
+ ownerDisplayName = $('#ownerDisplayName').val();
if (usedSpacePercent > 98) {
+ if (owner !== oc_current_user) {
+ OC.Notification.show(t('files', 'Storage of {owner} is full, files can not be updated or synced anymore!',
+ { owner: ownerDisplayName }));
+ return;
+ }
OC.Notification.show(t('files', 'Your storage is full, files can not be updated or synced anymore!'));
return;
}
if (usedSpacePercent > 90) {
+ if (owner !== oc_current_user) {
+ OC.Notification.show(t('files', 'Storage of {owner} is almost full ({usedSpacePercent}%)',
+ { usedSpacePercent: usedSpacePercent, owner: ownerDisplayName }));
+ return;
+ }
OC.Notification.show(t('files', 'Your storage is almost full ({usedSpacePercent}%)',
{usedSpacePercent: usedSpacePercent}));
}
diff --git a/apps/files/l10n/be.js b/apps/files/l10n/be.js
index aa9352c2f18..77e9a4d6071 100644
--- a/apps/files/l10n/be.js
+++ b/apps/files/l10n/be.js
@@ -4,4 +4,4 @@ OC.L10N.register(
"Error" : "Памылка",
"Settings" : "Налады"
},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files/l10n/be.json b/apps/files/l10n/be.json
index 27397b9da24..27c2988b703 100644
--- a/apps/files/l10n/be.json
+++ b/apps/files/l10n/be.json
@@ -1,5 +1,5 @@
{ "translations": {
"Error" : "Памылка",
"Settings" : "Налады"
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index 68eb57fb335..fc207dd6bb2 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Esborra",
"Disconnect storage" : "Desonnecta l'emmagatzematge",
"Unshare" : "Deixa de compartir",
+ "No permission to delete" : "Sense permís per esborrar",
"Download" : "Baixa",
"Select" : "Selecciona",
"Pending" : "Pendent",
@@ -61,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Pujant %n fitxer","Pujant %n fitxers"],
"\"{name}\" is an invalid file name." : "\"{name}\" no es un fitxer vàlid.",
"File name cannot be empty." : "El nom del fitxer no pot ser buit.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "L'emmagatzematge de {owner} està ple, els arxius no es poden actualitzar o sincronitzar més!",
"Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Emmagatzematge de {owner} està gairebé ple ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"{dirs} and {files}" : "{dirs} i {files}",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 8ca81cecdc7..052e9ecb21b 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -40,6 +40,7 @@
"Delete" : "Esborra",
"Disconnect storage" : "Desonnecta l'emmagatzematge",
"Unshare" : "Deixa de compartir",
+ "No permission to delete" : "Sense permís per esborrar",
"Download" : "Baixa",
"Select" : "Selecciona",
"Pending" : "Pendent",
@@ -59,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Pujant %n fitxer","Pujant %n fitxers"],
"\"{name}\" is an invalid file name." : "\"{name}\" no es un fitxer vàlid.",
"File name cannot be empty." : "El nom del fitxer no pot ser buit.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "L'emmagatzematge de {owner} està ple, els arxius no es poden actualitzar o sincronitzar més!",
"Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzemament és ple, els fitxers ja no es poden actualitzar o sincronitzar!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Emmagatzematge de {owner} està gairebé ple ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "El vostre espai d'emmagatzemament és gairebé ple ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"{dirs} and {files}" : "{dirs} i {files}",
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index 9433acbf95e..8235311a5a7 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Uploader %n fil","Uploader %n filer"],
"\"{name}\" is an invalid file name." : "'{name}' er et ugyldigt filnavn.",
"File name cannot be empty." : "Filnavnet kan ikke stå tomt.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Opbevaringspladsen tilhørende {owner} er fyldt op - filer kan ikke længere opdateres eller synkroniseres!",
"Your storage is full, files can not be updated or synced anymore!" : "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkroniseres længere!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Opbevaringspladsen tilhørende {owner} er næsten fyldt op ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["match '{filter}'","match '{filter}'"],
"{dirs} and {files}" : "{dirs} og {files}",
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index 0fb4159ef5c..449408fa9b1 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Uploader %n fil","Uploader %n filer"],
"\"{name}\" is an invalid file name." : "'{name}' er et ugyldigt filnavn.",
"File name cannot be empty." : "Filnavnet kan ikke stå tomt.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Opbevaringspladsen tilhørende {owner} er fyldt op - filer kan ikke længere opdateres eller synkroniseres!",
"Your storage is full, files can not be updated or synced anymore!" : "Din opbevaringsplads er fyldt op, filer kan ikke opdateres eller synkroniseres længere!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Opbevaringspladsen tilhørende {owner} er næsten fyldt op ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Din opbevaringsplads er næsten fyldt op ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["match '{filter}'","match '{filter}'"],
"{dirs} and {files}" : "{dirs} og {files}",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index a0584c3a7d5..3e636d96275 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hochgeladen","%n Dateien werden hochgeladen"],
"\"{name}\" is an invalid file name." : "»{name}« ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Der Speicher von {owner} ist voll, Dateien können nicht mehr aktualisiert oder synchronisiert werden!",
"Your storage is full, files can not be updated or synced anymore!" : "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Der Speicher von {owner} ist beinahe voll ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Dein Speicher ist fast voll ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"],
"{dirs} and {files}" : "{dirs} und {files}",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index a767f6dc129..6b7be416ed3 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hochgeladen","%n Dateien werden hochgeladen"],
"\"{name}\" is an invalid file name." : "»{name}« ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Der Speicher von {owner} ist voll, Dateien können nicht mehr aktualisiert oder synchronisiert werden!",
"Your storage is full, files can not be updated or synced anymore!" : "Dein Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Der Speicher von {owner} ist beinahe voll ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Dein Speicher ist fast voll ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"],
"{dirs} and {files}" : "{dirs} und {files}",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 1877607d449..b9578f9ac88 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hoch geladen","%n Dateien werden hoch geladen"],
"\"{name}\" is an invalid file name." : "„{name}“ ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Der Speicher von {owner} ist voll, Dateien können nicht mehr aktualisiert oder synchronisiert werden!",
"Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Der Speicher von {owner} ist beinahe voll ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ihr Speicher ist fast voll ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"],
"{dirs} and {files}" : "{dirs} und {files}",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index ab58d02491a..7595fced712 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["%n Datei wird hoch geladen","%n Dateien werden hoch geladen"],
"\"{name}\" is an invalid file name." : "„{name}“ ist kein gültiger Dateiname.",
"File name cannot be empty." : "Der Dateiname darf nicht leer sein.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Der Speicher von {owner} ist voll, Dateien können nicht mehr aktualisiert oder synchronisiert werden!",
"Your storage is full, files can not be updated or synced anymore!" : "Ihr Speicher ist voll, daher können keine Dateien mehr aktualisiert oder synchronisiert werden!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Der Speicher von {owner} ist beinahe voll ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ihr Speicher ist fast voll ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["stimmt mit '{filter}' überein","stimmen mit '{filter}' überein"],
"{dirs} and {files}" : "{dirs} und {files}",
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index 284b92a0c18..10f7326d928 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Ανέβασμα %n αρχείου","Ανέβασμα %n αρχείων"],
"\"{name}\" is an invalid file name." : "Το \"{name}\" είναι μη έγκυρο όνομα αρχείου.",
"File name cannot be empty." : "Το όνομα αρχείου δεν μπορεί να είναι κενό.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Ο αποθηκευτικός χώρος του {owner} είναι πλήρης, τα αρχεία δεν δύναται να ενημερωθούν ή να συγχρονίσουν!",
"Your storage is full, files can not be updated or synced anymore!" : "Ο αποθηκευτικός σας χώρος είναι γεμάτος, τα αρχεία δεν μπορούν να ενημερωθούν ή να συγχρονιστούν πια!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Ο αποθηκευτικός χώρος του {owner} είναι σχεδόν πλήρης ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["ταιριάζουν '{filter}' ","ταιριάζουν '{filter}'"],
"{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}",
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index 9ff4a93567f..8f3d92e53cf 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Ανέβασμα %n αρχείου","Ανέβασμα %n αρχείων"],
"\"{name}\" is an invalid file name." : "Το \"{name}\" είναι μη έγκυρο όνομα αρχείου.",
"File name cannot be empty." : "Το όνομα αρχείου δεν μπορεί να είναι κενό.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Ο αποθηκευτικός χώρος του {owner} είναι πλήρης, τα αρχεία δεν δύναται να ενημερωθούν ή να συγχρονίσουν!",
"Your storage is full, files can not be updated or synced anymore!" : "Ο αποθηκευτικός σας χώρος είναι γεμάτος, τα αρχεία δεν μπορούν να ενημερωθούν ή να συγχρονιστούν πια!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Ο αποθηκευτικός χώρος του {owner} είναι σχεδόν πλήρης ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["ταιριάζουν '{filter}' ","ταιριάζουν '{filter}'"],
"{dirs} and {files}" : "{Κατάλογοι αρχείων} και {αρχεία}",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index bb1beafc12a..6add18226fc 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"],
"\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.",
"File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "El almacen de {owner} está lleno, ¡los archivos no se actualizarán ni sincronizarán más!",
"Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "El almacen de {owner} está casi lleno en un ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidencias '{filter}'","coincidencia '{filter}'"],
"{dirs} and {files}" : "{dirs} y {files}",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index d2cef744146..7fbdb56ce3f 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Subiendo %n archivos"],
"\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido.",
"File name cannot be empty." : "El nombre de archivo no puede estar vacío.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "El almacen de {owner} está lleno, ¡los archivos no se actualizarán ni sincronizarán más!",
"Your storage is full, files can not be updated or synced anymore!" : "Su almacenamiento está lleno, ¡los archivos no se actualizarán ni sincronizarán más!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "El almacen de {owner} está casi lleno en un ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Su almacenamiento está casi lleno ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidencias '{filter}'","coincidencia '{filter}'"],
"{dirs} and {files}" : "{dirs} y {files}",
diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js
index 39fa18bd8ae..cfd0b29b834 100644
--- a/apps/files/l10n/fi_FI.js
+++ b/apps/files/l10n/fi_FI.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Lähetetään %n tiedosto","Lähetetään %n tiedostoa"],
"\"{name}\" is an invalid file name." : "\"{name}\" on virheellinen tiedostonimi.",
"File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Käyttäjän {owner} tallennustila on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"Your storage is full, files can not be updated or synced anymore!" : "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Käyttäjän {owner} tallennustila on melkein täynnä ({usedSpacePercent} %)",
"Your storage is almost full ({usedSpacePercent}%)" : "Tallennustila on melkein loppu ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["vastaa '{filter}'","vastaa '{filter}'"],
"{dirs} and {files}" : "{dirs} ja {files}",
diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json
index 82a1f64cc5b..a4852188af0 100644
--- a/apps/files/l10n/fi_FI.json
+++ b/apps/files/l10n/fi_FI.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Lähetetään %n tiedosto","Lähetetään %n tiedostoa"],
"\"{name}\" is an invalid file name." : "\"{name}\" on virheellinen tiedostonimi.",
"File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Käyttäjän {owner} tallennustila on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"Your storage is full, files can not be updated or synced anymore!" : "Tallennustila on loppu, tiedostoja ei voi enää päivittää tai synkronoida!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Käyttäjän {owner} tallennustila on melkein täynnä ({usedSpacePercent} %)",
"Your storage is almost full ({usedSpacePercent}%)" : "Tallennustila on melkein loppu ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["vastaa '{filter}'","vastaa '{filter}'"],
"{dirs} and {files}" : "{dirs} ja {files}",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 86114d7ddfb..1b516707995 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Téléversement de %n fichier","Téléversement de %n fichiers"],
"\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.",
"File name cannot be empty." : "Le nom de fichier ne peut être vide.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "L'espace de stockage de {owner} est plein. Les fichiers ne peuvent plus être mis à jour ou synchronisés!",
"Your storage is full, files can not be updated or synced anymore!" : "Votre espage de stockage est plein, les fichiers ne peuvent plus être ajoutés ou synchronisés !",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "L'espace de stockage de {owner} est presque plein ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Votre espace de stockage est presque plein ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["correspond à '{filter}'","correspondent à '{filter}'"],
"{dirs} and {files}" : "{dirs} et {files}",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 467aa830ce2..d0308da56e0 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Téléversement de %n fichier","Téléversement de %n fichiers"],
"\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.",
"File name cannot be empty." : "Le nom de fichier ne peut être vide.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "L'espace de stockage de {owner} est plein. Les fichiers ne peuvent plus être mis à jour ou synchronisés!",
"Your storage is full, files can not be updated or synced anymore!" : "Votre espage de stockage est plein, les fichiers ne peuvent plus être ajoutés ou synchronisés !",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "L'espace de stockage de {owner} est presque plein ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Votre espace de stockage est presque plein ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["correspond à '{filter}'","correspondent à '{filter}'"],
"{dirs} and {files}" : "{dirs} et {files}",
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index cc1a61a32b6..3eb5a9bc101 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Cargando %n ficheiro","Cargando %n ficheiros"],
"\"{name}\" is an invalid file name." : "«{name}» é un nome incorrecto de ficheiro.",
"File name cannot be empty." : "O nome de ficheiro non pode estar baleiro",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "O espazo de almacenamento de {owner} está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!",
"Your storage is full, files can not be updated or synced anymore!" : "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "O espazo de almacenamento de {owner} está case cheo ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidente con «{filter}»","coincidentes con «{filter}»"],
"{dirs} and {files}" : "{dirs} e {files}",
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index e178d9ce831..f50da3bba01 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Cargando %n ficheiro","Cargando %n ficheiros"],
"\"{name}\" is an invalid file name." : "«{name}» é un nome incorrecto de ficheiro.",
"File name cannot be empty." : "O nome de ficheiro non pode estar baleiro",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "O espazo de almacenamento de {owner} está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!",
"Your storage is full, files can not be updated or synced anymore!" : "O seu espazo de almacenamento está cheo, non é posíbel actualizar ou sincronizar máis os ficheiros!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "O espazo de almacenamento de {owner} está case cheo ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "O seu espazo de almacenamento está case cheo ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidente con «{filter}»","coincidentes con «{filter}»"],
"{dirs} and {files}" : "{dirs} e {files}",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 64faf5318e0..a766d07f1d2 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Caricamento di %n file in corso","Caricamento di %n file in corso"],
"\"{name}\" is an invalid file name." : "\"{name}\" non è un nome file valido.",
"File name cannot be empty." : "Il nome del file non può essere vuoto.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Lo spazio di archiviazione di {owner} è pieno, i file non possono essere più aggiornati o sincronizzati!",
"Your storage is full, files can not be updated or synced anymore!" : "Lo spazio di archiviazione è pieno, i file non possono essere più aggiornati o sincronizzati!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Lo spazio di archiviazione di {owner} è quasi pieno ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["corrispondono a '{filter}'","corrisponde a '{filter}'"],
"{dirs} and {files}" : "{dirs} e {files}",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 62861a64611..aa9704291d1 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Caricamento di %n file in corso","Caricamento di %n file in corso"],
"\"{name}\" is an invalid file name." : "\"{name}\" non è un nome file valido.",
"File name cannot be empty." : "Il nome del file non può essere vuoto.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Lo spazio di archiviazione di {owner} è pieno, i file non possono essere più aggiornati o sincronizzati!",
"Your storage is full, files can not be updated or synced anymore!" : "Lo spazio di archiviazione è pieno, i file non possono essere più aggiornati o sincronizzati!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Lo spazio di archiviazione di {owner} è quasi pieno ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Lo spazio di archiviazione è quasi pieno ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["corrispondono a '{filter}'","corrisponde a '{filter}'"],
"{dirs} and {files}" : "{dirs} e {files}",
diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js
index 7e45f374988..3870544e19b 100644
--- a/apps/files/l10n/nb_NO.js
+++ b/apps/files/l10n/nb_NO.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Laster opp %n fil","Laster opp %n filer"],
"\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.",
"File name cannot be empty." : "Filnavn kan ikke være tomt.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Lagringsplass for {owner} er full, filer kan ikke oppdateres eller synkroniseres lenger!",
"Your storage is full, files can not be updated or synced anymore!" : "Lagringsplass er oppbrukt, filer kan ikke lenger oppdateres eller synkroniseres!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Lagringsplass for {owner} er nesten full ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Lagringsplass er nesten brukt opp ([usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : [" stemmer med '{filter}'"," stemmer med '{filter}'"],
"{dirs} and {files}" : "{dirs} og {files}",
@@ -71,7 +73,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>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Begrens varsling om oppretting og endringer til <strong>favorittfilene</strong> dine <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",
@@ -87,10 +89,10 @@ OC.L10N.register(
"%s could not be renamed" : "Kunne ikke gi nytt navn til %s",
"Upload (max. %s)" : "Opplasting (maks. %s)",
"File handling" : "Filhåndtering",
- "Maximum upload size" : "Maksimum opplastingsstørrelse",
+ "Maximum upload size" : "Største opplastingsstørrelse",
"max. possible: " : "max. mulige:",
"Save" : "Lagre",
- "Can not be edited from here due to insufficient permissions." : "Kan ikke redigeres her pga. utilstrekkelige rettigheter.",
+ "Can not be edited from here due to insufficient permissions." : "Kan ikke redigeres her pga. manglende rettigheter.",
"Settings" : "Innstillinger",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Bruk denne adressen for å <a href=\"%s\" target=\"_blank\">få tilgang til filene dine via WebDAV</a>",
@@ -106,7 +108,7 @@ OC.L10N.register(
"No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Select all" : "Velg alle",
"Upload too large" : "Filen er for stor",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store for å laste opp til denne serveren.",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store til å laste opp til denne serveren.",
"Files are being scanned, please wait." : "Skanner filer, vennligst vent.",
"Currently scanning" : "Skanner nå",
"No favorites" : "Ingen favoritter",
diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json
index 4e6779e36c8..28fb382255e 100644
--- a/apps/files/l10n/nb_NO.json
+++ b/apps/files/l10n/nb_NO.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Laster opp %n fil","Laster opp %n filer"],
"\"{name}\" is an invalid file name." : "\"{name}\" er et uglydig filnavn.",
"File name cannot be empty." : "Filnavn kan ikke være tomt.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Lagringsplass for {owner} er full, filer kan ikke oppdateres eller synkroniseres lenger!",
"Your storage is full, files can not be updated or synced anymore!" : "Lagringsplass er oppbrukt, filer kan ikke lenger oppdateres eller synkroniseres!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Lagringsplass for {owner} er nesten full ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Lagringsplass er nesten brukt opp ([usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : [" stemmer med '{filter}'"," stemmer med '{filter}'"],
"{dirs} and {files}" : "{dirs} og {files}",
@@ -69,7 +71,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>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Begrens varsling om oppretting og endringer til <strong>favorittfilene</strong> dine <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",
@@ -85,10 +87,10 @@
"%s could not be renamed" : "Kunne ikke gi nytt navn til %s",
"Upload (max. %s)" : "Opplasting (maks. %s)",
"File handling" : "Filhåndtering",
- "Maximum upload size" : "Maksimum opplastingsstørrelse",
+ "Maximum upload size" : "Største opplastingsstørrelse",
"max. possible: " : "max. mulige:",
"Save" : "Lagre",
- "Can not be edited from here due to insufficient permissions." : "Kan ikke redigeres her pga. utilstrekkelige rettigheter.",
+ "Can not be edited from here due to insufficient permissions." : "Kan ikke redigeres her pga. manglende rettigheter.",
"Settings" : "Innstillinger",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Bruk denne adressen for å <a href=\"%s\" target=\"_blank\">få tilgang til filene dine via WebDAV</a>",
@@ -104,7 +106,7 @@
"No entries found in this folder" : "Ingen oppføringer funnet i denne mappen",
"Select all" : "Velg alle",
"Upload too large" : "Filen er for stor",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store for å laste opp til denne serveren.",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Filene du prøver å laste opp er for store til å laste opp til denne serveren.",
"Files are being scanned, please wait." : "Skanner filer, vennligst vent.",
"Currently scanning" : "Skanner nå",
"No favorites" : "Ingen favoritter",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 84907aa2af7..b345b5ca04d 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -61,7 +61,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["%n bestand aan het uploaden","%n bestanden aan het uploaden"],
"\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.",
"File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Opslagruimte van {owner} zit vol, bestanden kunnen niet meer worden ge-upload of gesynchroniseerd!",
"Your storage is full, files can not be updated or synced anymore!" : "Uw opslagruimte zit vol. Bestanden kunnen niet meer worden gewijzigd of gesynchroniseerd!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Opslagruimte van {owner} zit bijna vol ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["komt overeen met '{filter}'","komen overeen met '{filter}'"],
"{dirs} and {files}" : "{dirs} en {files}",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index cee8ce6886d..cb3a2eb1438 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -59,7 +59,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["%n bestand aan het uploaden","%n bestanden aan het uploaden"],
"\"{name}\" is an invalid file name." : "\"{name}\" is een ongeldige bestandsnaam.",
"File name cannot be empty." : "Bestandsnaam kan niet leeg zijn.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Opslagruimte van {owner} zit vol, bestanden kunnen niet meer worden ge-upload of gesynchroniseerd!",
"Your storage is full, files can not be updated or synced anymore!" : "Uw opslagruimte zit vol. Bestanden kunnen niet meer worden gewijzigd of gesynchroniseerd!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Opslagruimte van {owner} zit bijna vol ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Uw opslagruimte zit bijna vol ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["komt overeen met '{filter}'","komen overeen met '{filter}'"],
"{dirs} and {files}" : "{dirs} en {files}",
diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js
index c8d4d9c180b..a3beb77ef2a 100644
--- a/apps/files/l10n/oc.js
+++ b/apps/files/l10n/oc.js
@@ -1,38 +1,115 @@
OC.L10N.register(
"files",
{
- "There is no error, the file uploaded with success" : "Amontcargament capitat, pas d'errors",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lo fichièr amontcargat es mai gròs que la directiva «MAX_FILE_SIZE» especifiada dins lo formulari HTML",
- "The uploaded file was only partially uploaded" : "Lo fichièr foguèt pas completament amontcargat",
- "No file was uploaded" : "Cap de fichièrs son estats amontcargats",
- "Missing a temporary folder" : "Un dorsièr temporari manca",
- "Failed to write to disk" : "L'escriptura sul disc a fracassat",
+ "Storage not available" : "Supòrt d'emmagazinatge pas disponible",
+ "Storage invalid" : "Supòrt d'emmagazinatge pas valable",
+ "Unknown error" : "Error Desconeguda ",
+ "Could not move %s - File with this name already exists" : "Impossible de desplaçar %s - Un fichièr que pòrta aqueste nom existís ja",
+ "Could not move %s" : "Impossible de desplaçar %s",
+ "Permission denied" : "Permission refusada",
+ "The target folder has been moved or deleted." : "Lo dorsièr cibla es estat desplaçat o suprimit.",
+ "The name %s is already used in the folder %s. Please choose a different name." : "Lo nom %s es ja utilizat dins lo dorsièr %s. Mercé de causir un nom diferent.",
+ "Error when creating the file" : "Error pendent la creacion del fichièr",
+ "Error when creating the folder" : "Error pendent la creacion del dorsièr",
+ "Unable to set upload directory." : "Impossible de definir lo dorsièr de destinacion.",
+ "Invalid Token" : "Geton invalid",
+ "No file was uploaded. Unknown error" : "Cap de fichièr es pas estat mandat. Error desconeguda",
+ "There is no error, the file uploaded with success" : "Pas cap d'error, lo fichièr es estat mandat amb succès.",
+ "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Lo fichièr mandat depassa l'instruccion upload_max_filesize situada dins lo fichièr php.ini :",
+ "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lo fichièr mandat depassa la valor MAX_FILE_SIZE qu'èra especificada dins lo formulari HTML.",
+ "The uploaded file was only partially uploaded" : "Lo fichièr es estat mandat sonque parcialament.",
+ "No file was uploaded" : "Pas de fichièr mandat.",
+ "Missing a temporary folder" : "Abséncia de dorsièr temporari",
+ "Failed to write to disk" : "Error d'escritura sul disc",
+ "Not enough storage available" : "Pas pro d'espaci d'emmagazinatge de disponible",
+ "Upload failed. Could not find uploaded file" : "Lo mandadís a fracassat. Impossible de trobar lo fichièr mandat.",
+ "Upload failed. Could not get file info." : "Lo mandadís a fracassat. Impossible d'obténer las informacions del fichièr.",
+ "Invalid directory." : "Dorsièr invalid.",
"Files" : "Fichièrs",
- "Upload cancelled." : "Amontcargar anullat.",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ",
- "Rename" : "Torna nomenar",
- "Delete" : "Escafa",
- "Unshare" : "Pas partejador",
- "Download" : "Avalcarga",
- "Pending" : "Al esperar",
+ "All files" : "Totes los fichièrs",
+ "Favorites" : "Favorits",
+ "Home" : "Mos fichièrs",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossible de mandar {filename} perque s'agís d'un repertòri o d'un fichièr de talha nulla",
+ "Total file size {size1} exceeds upload limit {size2}" : "La talha totala del fichièr {size1} excedís la talha maximala de mandadís {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espaci liure insufisent : ensajatz de mandar {size1} mas solament {size2} son disponibles",
+ "Upload cancelled." : "Mandadís anullat.",
+ "Could not get result from server." : "Pòt pas recebre los resultats del servidor.",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "Lo mandadís del fichièr es en cors. Quitar aquesta pagina ara anullarà lo mandadís del fichièr.",
+ "{new_name} already exists" : "{new_name} existís ja",
+ "Could not create file" : "Impossible de crear lo fichièr",
+ "Could not create folder" : "Impossible de crear lo dorsièr",
+ "Rename" : "Renomenar",
+ "Delete" : "Suprimir",
+ "Disconnect storage" : "Desconnectar aqueste supòrt d'emmagazinatge",
+ "Unshare" : "Partejar pas mai",
+ "No permission to delete" : "Pas de permission de supression",
+ "Download" : "Telecargar",
+ "Select" : "Seleccionar",
+ "Pending" : "En espèra",
+ "Unable to determine date" : "Impossible de determinar la data",
+ "Error moving file." : "Error al moment del desplaçament del fichièr.",
+ "Error moving file" : "Error al moment del desplaçament del fichièr",
"Error" : "Error",
+ "Could not rename file" : "Impossible de renomenar lo fichièr",
+ "Error deleting file." : "Error pendent la supression del fichièr.",
+ "No entries in this folder match '{filter}'" : "Cap d'entrada d'aqueste dorsièr correspond pas a '{filter}'",
"Name" : "Nom",
"Size" : "Talha",
"Modified" : "Modificat",
- "File handling" : "Manejament de fichièr",
- "Maximum upload size" : "Talha maximum d'amontcargament",
- "max. possible: " : "max. possible: ",
- "Save" : "Enregistra",
+ "_%n folder_::_%n folders_" : ["%n dorsièr","%n dorsièrs"],
+ "_%n file_::_%n files_" : ["%n fichièr","%n fichièrs"],
+ "You don’t have permission to upload or create files here" : "Avètz pas la permission d'apondre de fichièrs aicí",
+ "_Uploading %n file_::_Uploading %n files_" : ["Mandadís de %n fichièr","Mandadís de %n fichièrs"],
+ "\"{name}\" is an invalid file name." : "\"{name}\" es pas un nom de fichièr valid.",
+ "File name cannot be empty." : "Lo nom de fichièr pòt pas èsser void.",
+ "Your storage is full, files can not be updated or synced anymore!" : "Vòstre espaci d'emmagazinatge es plen, los fichièrs pòdon pas mai èsser aponduts o sincronizats !",
+ "Your storage is almost full ({usedSpacePercent}%)" : "Vòstre espace d'emmagazinatge es gaireben plen ({usedSpacePercent}%)",
+ "_matches '{filter}'_::_match '{filter}'_" : ["correspond a '{filter}'","correspondon a '{filter}'"],
+ "{dirs} and {files}" : "{dirs} e {files}",
+ "Favorited" : "Marcat coma favorit",
+ "Favorite" : "Favorit",
+ "An error occurred while trying to update the tags" : "Una error s'es produsida al moment de la mesa a jorn de las etiquetas",
+ "A new file or folder has been <strong>created</strong>" : "Un novèl fichièr o repertòri es estat <strong>creat</strong>",
+ "A file or folder has been <strong>changed</strong>" : "Un fichièr o un repertòri es estat <strong>modificat</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar las notifications a çò que concernís la creacion e la modificacion de vòstres <strong>fichièrs favorits</strong> <em>(Flux unicament)</em>",
+ "A file or folder has been <strong>deleted</strong>" : "Un fichièr o un repertòri es estat <strong>suprimit</strong>",
+ "A file or folder has been <strong>restored</strong>" : "Un fichièr o un repertòri es estat <strong>restablit</strong>",
+ "You created %1$s" : "Avètz creat %1$s",
+ "%2$s created %1$s" : "%2$s a creat %1$s",
+ "%1$s was created in a public folder" : "%1$s es estat creat dins un dorsièr public",
+ "You changed %1$s" : "Avètz modificat %1$s",
+ "%2$s changed %1$s" : "%2$s a modificat %1$s",
+ "You deleted %1$s" : "Avètz suprimit %1$s",
+ "%2$s deleted %1$s" : "%2$s a suprimit %1$s",
+ "You restored %1$s" : "Avètz restablit %1$s",
+ "%2$s restored %1$s" : "%2$s a restablit %1$s",
+ "%s could not be renamed as it has been deleted" : "%s pòt pas èsser renomenat perque es estat suprimit ",
+ "%s could not be renamed" : "%s pòt pas èsser renomenat",
+ "Upload (max. %s)" : "Mandadís (max. %s)",
+ "File handling" : "Gestion de fichièrs",
+ "Maximum upload size" : "Talha max. de mandadís",
+ "max. possible: " : "Max. possible :",
+ "Save" : "Salvar",
+ "Can not be edited from here due to insufficient permissions." : "Pòt pas èsser modificat aicí a causa de permissions insufisentas.",
"Settings" : "Paramètres",
- "New" : "Nòu",
- "Text file" : "Fichièr de tèxte",
+ "WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Utilizatz aquesta adreça per <a href=\"%s\" target=\"_blank\">accedir a vòstres fichièrs per WebDAV</a>",
+ "New" : "Novèl",
+ "New text file" : "Novèl fichièr tèxte",
+ "Text file" : "Fichièr tèxte",
+ "New folder" : "Novèl dorsièr",
"Folder" : "Dorsièr",
- "Upload" : "Amontcarga",
- "Cancel upload" : " Anulla l'amontcargar",
+ "Upload" : "Cargament",
+ "Cancel upload" : "Anullar lo mandadís",
+ "No files in here" : "Pas cap de fichièr aicí",
+ "Upload some content or sync with your devices!" : "Depausatz de contengut o sincronizatz vòstres aparelhs !",
"No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
"Select all" : "Seleccionar tot",
- "Upload too large" : "Amontcargament tròp gròs",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.",
- "Files are being scanned, please wait." : "Los fiichièrs son a èsser explorats, "
+ "Upload too large" : "Mandadís tròp voluminós",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los fichièrs qu'ensajatz de mandar depassan la talha maximala de mandadís permesa per aqueste servidor.",
+ "Files are being scanned, please wait." : "Los fichièrs son en cors d'analisi, pacientatz.",
+ "Currently scanning" : "Analisi en cors",
+ "No favorites" : "Pas cap de favorit",
+ "Files and folders you mark as favorite will show up here" : "Los fichièrs e dorsièrs aponduts a vòstres favorits apareisseràn aicí"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json
index 7c8bd93d166..1a904502025 100644
--- a/apps/files/l10n/oc.json
+++ b/apps/files/l10n/oc.json
@@ -1,36 +1,113 @@
{ "translations": {
- "There is no error, the file uploaded with success" : "Amontcargament capitat, pas d'errors",
- "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lo fichièr amontcargat es mai gròs que la directiva «MAX_FILE_SIZE» especifiada dins lo formulari HTML",
- "The uploaded file was only partially uploaded" : "Lo fichièr foguèt pas completament amontcargat",
- "No file was uploaded" : "Cap de fichièrs son estats amontcargats",
- "Missing a temporary folder" : "Un dorsièr temporari manca",
- "Failed to write to disk" : "L'escriptura sul disc a fracassat",
+ "Storage not available" : "Supòrt d'emmagazinatge pas disponible",
+ "Storage invalid" : "Supòrt d'emmagazinatge pas valable",
+ "Unknown error" : "Error Desconeguda ",
+ "Could not move %s - File with this name already exists" : "Impossible de desplaçar %s - Un fichièr que pòrta aqueste nom existís ja",
+ "Could not move %s" : "Impossible de desplaçar %s",
+ "Permission denied" : "Permission refusada",
+ "The target folder has been moved or deleted." : "Lo dorsièr cibla es estat desplaçat o suprimit.",
+ "The name %s is already used in the folder %s. Please choose a different name." : "Lo nom %s es ja utilizat dins lo dorsièr %s. Mercé de causir un nom diferent.",
+ "Error when creating the file" : "Error pendent la creacion del fichièr",
+ "Error when creating the folder" : "Error pendent la creacion del dorsièr",
+ "Unable to set upload directory." : "Impossible de definir lo dorsièr de destinacion.",
+ "Invalid Token" : "Geton invalid",
+ "No file was uploaded. Unknown error" : "Cap de fichièr es pas estat mandat. Error desconeguda",
+ "There is no error, the file uploaded with success" : "Pas cap d'error, lo fichièr es estat mandat amb succès.",
+ "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Lo fichièr mandat depassa l'instruccion upload_max_filesize situada dins lo fichièr php.ini :",
+ "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Lo fichièr mandat depassa la valor MAX_FILE_SIZE qu'èra especificada dins lo formulari HTML.",
+ "The uploaded file was only partially uploaded" : "Lo fichièr es estat mandat sonque parcialament.",
+ "No file was uploaded" : "Pas de fichièr mandat.",
+ "Missing a temporary folder" : "Abséncia de dorsièr temporari",
+ "Failed to write to disk" : "Error d'escritura sul disc",
+ "Not enough storage available" : "Pas pro d'espaci d'emmagazinatge de disponible",
+ "Upload failed. Could not find uploaded file" : "Lo mandadís a fracassat. Impossible de trobar lo fichièr mandat.",
+ "Upload failed. Could not get file info." : "Lo mandadís a fracassat. Impossible d'obténer las informacions del fichièr.",
+ "Invalid directory." : "Dorsièr invalid.",
"Files" : "Fichièrs",
- "Upload cancelled." : "Amontcargar anullat.",
- "File upload is in progress. Leaving the page now will cancel the upload." : "Un amontcargar es a se far. Daissar aquesta pagina ara tamparà lo cargament. ",
- "Rename" : "Torna nomenar",
- "Delete" : "Escafa",
- "Unshare" : "Pas partejador",
- "Download" : "Avalcarga",
- "Pending" : "Al esperar",
+ "All files" : "Totes los fichièrs",
+ "Favorites" : "Favorits",
+ "Home" : "Mos fichièrs",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "Impossible de mandar {filename} perque s'agís d'un repertòri o d'un fichièr de talha nulla",
+ "Total file size {size1} exceeds upload limit {size2}" : "La talha totala del fichièr {size1} excedís la talha maximala de mandadís {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espaci liure insufisent : ensajatz de mandar {size1} mas solament {size2} son disponibles",
+ "Upload cancelled." : "Mandadís anullat.",
+ "Could not get result from server." : "Pòt pas recebre los resultats del servidor.",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "Lo mandadís del fichièr es en cors. Quitar aquesta pagina ara anullarà lo mandadís del fichièr.",
+ "{new_name} already exists" : "{new_name} existís ja",
+ "Could not create file" : "Impossible de crear lo fichièr",
+ "Could not create folder" : "Impossible de crear lo dorsièr",
+ "Rename" : "Renomenar",
+ "Delete" : "Suprimir",
+ "Disconnect storage" : "Desconnectar aqueste supòrt d'emmagazinatge",
+ "Unshare" : "Partejar pas mai",
+ "No permission to delete" : "Pas de permission de supression",
+ "Download" : "Telecargar",
+ "Select" : "Seleccionar",
+ "Pending" : "En espèra",
+ "Unable to determine date" : "Impossible de determinar la data",
+ "Error moving file." : "Error al moment del desplaçament del fichièr.",
+ "Error moving file" : "Error al moment del desplaçament del fichièr",
"Error" : "Error",
+ "Could not rename file" : "Impossible de renomenar lo fichièr",
+ "Error deleting file." : "Error pendent la supression del fichièr.",
+ "No entries in this folder match '{filter}'" : "Cap d'entrada d'aqueste dorsièr correspond pas a '{filter}'",
"Name" : "Nom",
"Size" : "Talha",
"Modified" : "Modificat",
- "File handling" : "Manejament de fichièr",
- "Maximum upload size" : "Talha maximum d'amontcargament",
- "max. possible: " : "max. possible: ",
- "Save" : "Enregistra",
+ "_%n folder_::_%n folders_" : ["%n dorsièr","%n dorsièrs"],
+ "_%n file_::_%n files_" : ["%n fichièr","%n fichièrs"],
+ "You don’t have permission to upload or create files here" : "Avètz pas la permission d'apondre de fichièrs aicí",
+ "_Uploading %n file_::_Uploading %n files_" : ["Mandadís de %n fichièr","Mandadís de %n fichièrs"],
+ "\"{name}\" is an invalid file name." : "\"{name}\" es pas un nom de fichièr valid.",
+ "File name cannot be empty." : "Lo nom de fichièr pòt pas èsser void.",
+ "Your storage is full, files can not be updated or synced anymore!" : "Vòstre espaci d'emmagazinatge es plen, los fichièrs pòdon pas mai èsser aponduts o sincronizats !",
+ "Your storage is almost full ({usedSpacePercent}%)" : "Vòstre espace d'emmagazinatge es gaireben plen ({usedSpacePercent}%)",
+ "_matches '{filter}'_::_match '{filter}'_" : ["correspond a '{filter}'","correspondon a '{filter}'"],
+ "{dirs} and {files}" : "{dirs} e {files}",
+ "Favorited" : "Marcat coma favorit",
+ "Favorite" : "Favorit",
+ "An error occurred while trying to update the tags" : "Una error s'es produsida al moment de la mesa a jorn de las etiquetas",
+ "A new file or folder has been <strong>created</strong>" : "Un novèl fichièr o repertòri es estat <strong>creat</strong>",
+ "A file or folder has been <strong>changed</strong>" : "Un fichièr o un repertòri es estat <strong>modificat</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar las notifications a çò que concernís la creacion e la modificacion de vòstres <strong>fichièrs favorits</strong> <em>(Flux unicament)</em>",
+ "A file or folder has been <strong>deleted</strong>" : "Un fichièr o un repertòri es estat <strong>suprimit</strong>",
+ "A file or folder has been <strong>restored</strong>" : "Un fichièr o un repertòri es estat <strong>restablit</strong>",
+ "You created %1$s" : "Avètz creat %1$s",
+ "%2$s created %1$s" : "%2$s a creat %1$s",
+ "%1$s was created in a public folder" : "%1$s es estat creat dins un dorsièr public",
+ "You changed %1$s" : "Avètz modificat %1$s",
+ "%2$s changed %1$s" : "%2$s a modificat %1$s",
+ "You deleted %1$s" : "Avètz suprimit %1$s",
+ "%2$s deleted %1$s" : "%2$s a suprimit %1$s",
+ "You restored %1$s" : "Avètz restablit %1$s",
+ "%2$s restored %1$s" : "%2$s a restablit %1$s",
+ "%s could not be renamed as it has been deleted" : "%s pòt pas èsser renomenat perque es estat suprimit ",
+ "%s could not be renamed" : "%s pòt pas èsser renomenat",
+ "Upload (max. %s)" : "Mandadís (max. %s)",
+ "File handling" : "Gestion de fichièrs",
+ "Maximum upload size" : "Talha max. de mandadís",
+ "max. possible: " : "Max. possible :",
+ "Save" : "Salvar",
+ "Can not be edited from here due to insufficient permissions." : "Pòt pas èsser modificat aicí a causa de permissions insufisentas.",
"Settings" : "Paramètres",
- "New" : "Nòu",
- "Text file" : "Fichièr de tèxte",
+ "WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Utilizatz aquesta adreça per <a href=\"%s\" target=\"_blank\">accedir a vòstres fichièrs per WebDAV</a>",
+ "New" : "Novèl",
+ "New text file" : "Novèl fichièr tèxte",
+ "Text file" : "Fichièr tèxte",
+ "New folder" : "Novèl dorsièr",
"Folder" : "Dorsièr",
- "Upload" : "Amontcarga",
- "Cancel upload" : " Anulla l'amontcargar",
+ "Upload" : "Cargament",
+ "Cancel upload" : "Anullar lo mandadís",
+ "No files in here" : "Pas cap de fichièr aicí",
+ "Upload some content or sync with your devices!" : "Depausatz de contengut o sincronizatz vòstres aparelhs !",
"No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
"Select all" : "Seleccionar tot",
- "Upload too large" : "Amontcargament tròp gròs",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los fichièrs que sias a amontcargar son tròp pesucs per la talha maxi pel servidor.",
- "Files are being scanned, please wait." : "Los fiichièrs son a èsser explorats, "
+ "Upload too large" : "Mandadís tròp voluminós",
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los fichièrs qu'ensajatz de mandar depassan la talha maximala de mandadís permesa per aqueste servidor.",
+ "Files are being scanned, please wait." : "Los fichièrs son en cors d'analisi, pacientatz.",
+ "Currently scanning" : "Analisi en cors",
+ "No favorites" : "Pas cap de favorit",
+ "Files and folders you mark as favorite will show up here" : "Los fichièrs e dorsièrs aponduts a vòstres favorits apareisseràn aicí"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 94edeb52755..daa623d3cde 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -42,14 +42,17 @@ OC.L10N.register(
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj współdzielenie",
+ "No permission to delete" : "Brak uprawnień do usunięcia",
"Download" : "Pobierz",
"Select" : "Wybierz",
"Pending" : "Oczekujące",
+ "Unable to determine date" : "Nie można ustalić daty",
"Error moving file." : "Błąd podczas przenoszenia pliku.",
"Error moving file" : "Błąd prz przenoszeniu pliku",
"Error" : "Błąd",
"Could not rename file" : "Nie można zmienić nazwy pliku",
"Error deleting file." : "Błąd podczas usuwania pliku",
+ "No entries in this folder match '{filter}'" : "Brak wyników pasujących do '{filter}'",
"Name" : "Nazwa",
"Size" : "Rozmiar",
"Modified" : "Modyfikacja",
@@ -59,9 +62,12 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Wysyłanie %n pliku","Wysyłanie %n plików","Wysyłanie %n plików"],
"\"{name}\" is an invalid file name." : "\"{name}\" jest nieprawidłową nazwą pliku.",
"File name cannot be empty." : "Nazwa pliku nie może być pusta.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Brak wolnego miejsca {owner}, pliki nie mogą zostać zaktualizowane lub synchronizowane! ",
"Your storage is full, files can not be updated or synced anymore!" : "Magazyn jest pełny. Pliki nie mogą zostać zaktualizowane lub zsynchronizowane!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Miejsce dla {owner} jest na wyczerpaniu ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorited" : "Ulubione",
"Favorite" : "Ulubione",
"A new file or folder has been <strong>created</strong>" : "Nowy plik lub folder został <strong>utworzony</strong>",
"A file or folder has been <strong>changed</strong>" : "Plik lub folder został <strong>zmieniony</strong>",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 28ca7f7170c..a46afbcc9f0 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -40,14 +40,17 @@
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj współdzielenie",
+ "No permission to delete" : "Brak uprawnień do usunięcia",
"Download" : "Pobierz",
"Select" : "Wybierz",
"Pending" : "Oczekujące",
+ "Unable to determine date" : "Nie można ustalić daty",
"Error moving file." : "Błąd podczas przenoszenia pliku.",
"Error moving file" : "Błąd prz przenoszeniu pliku",
"Error" : "Błąd",
"Could not rename file" : "Nie można zmienić nazwy pliku",
"Error deleting file." : "Błąd podczas usuwania pliku",
+ "No entries in this folder match '{filter}'" : "Brak wyników pasujących do '{filter}'",
"Name" : "Nazwa",
"Size" : "Rozmiar",
"Modified" : "Modyfikacja",
@@ -57,9 +60,12 @@
"_Uploading %n file_::_Uploading %n files_" : ["Wysyłanie %n pliku","Wysyłanie %n plików","Wysyłanie %n plików"],
"\"{name}\" is an invalid file name." : "\"{name}\" jest nieprawidłową nazwą pliku.",
"File name cannot be empty." : "Nazwa pliku nie może być pusta.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Brak wolnego miejsca {owner}, pliki nie mogą zostać zaktualizowane lub synchronizowane! ",
"Your storage is full, files can not be updated or synced anymore!" : "Magazyn jest pełny. Pliki nie mogą zostać zaktualizowane lub zsynchronizowane!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Miejsce dla {owner} jest na wyczerpaniu ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)",
"{dirs} and {files}" : "{dirs} i {files}",
+ "Favorited" : "Ulubione",
"Favorite" : "Ulubione",
"A new file or folder has been <strong>created</strong>" : "Nowy plik lub folder został <strong>utworzony</strong>",
"A file or folder has been <strong>changed</strong>" : "Plik lub folder został <strong>zmieniony</strong>",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 70aafce6827..f961bfd341d 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n arquivos"],
"\"{name}\" is an invalid file name." : "\"{name}\" é um nome de arquivo inválido.",
"File name cannot be empty." : "O nome do arquivo não pode estar vazio.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Armazenamento do {owner} está cheio, os arquivos não podem ser mais atualizados ou sincronizados!",
"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!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Armazenamento do {owner} está quase cheio ({usedSpacePercent}%)",
"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}",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 941073fe630..29cc2ce34c4 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Enviando %n arquivo","Enviando %n arquivos"],
"\"{name}\" is an invalid file name." : "\"{name}\" é um nome de arquivo inválido.",
"File name cannot be empty." : "O nome do arquivo não pode estar vazio.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Armazenamento do {owner} está cheio, os arquivos não podem ser mais atualizados ou sincronizados!",
"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!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Armazenamento do {owner} está quase cheio ({usedSpacePercent}%)",
"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}",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index f69b4a9817e..7ad52c51ee6 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов","Закачка %n файлов"],
"\"{name}\" is an invalid file name." : "\"{name}\" это неправильное имя файла.",
"File name cannot be empty." : "Имя файла не может быть пустым.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Хранилище {owner} переполнено, файлы больше не могут быть обновлены или синхронизированы!",
"Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Хранилище {owner} практически заполнено ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"],
"{dirs} and {files}" : "{dirs} и {files}",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 1099ca30b0d..1772b494914 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов","Закачка %n файлов"],
"\"{name}\" is an invalid file name." : "\"{name}\" это неправильное имя файла.",
"File name cannot be empty." : "Имя файла не может быть пустым.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Хранилище {owner} переполнено, файлы больше не могут быть обновлены или синхронизированы!",
"Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Хранилище {owner} практически заполнено ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"],
"{dirs} and {files}" : "{dirs} и {files}",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index eb0d35954e7..7a173fe694b 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["Отпремам %n фајл","Отпремам %n фајла","Отпремам %n фајлова"],
"\"{name}\" is an invalid file name." : "\"{name}\" није исправан назив фајла.",
"File name cannot be empty." : "Назив фајла не може бити празан.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Складиште корисника {owner} је пуно. Фајлови се не могу ажурирати нити синхронизовати!",
"Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Фајлови више не могу бити ажурирани ни синхронизовани!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Складиште корисника {owner} је скоро пуно ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро пуно ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["се поклапа са '{filter}'","се поклапају са '{filter}'","се поклапа са '{filter}'"],
"{dirs} and {files}" : "{dirs} и {files}",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index 5451caae81b..f535f4fb013 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["Отпремам %n фајл","Отпремам %n фајла","Отпремам %n фајлова"],
"\"{name}\" is an invalid file name." : "\"{name}\" није исправан назив фајла.",
"File name cannot be empty." : "Назив фајла не може бити празан.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "Складиште корисника {owner} је пуно. Фајлови се не могу ажурирати нити синхронизовати!",
"Your storage is full, files can not be updated or synced anymore!" : "Ваше складиште је пуно. Фајлови више не могу бити ажурирани ни синхронизовани!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "Складиште корисника {owner} је скоро пуно ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Ваше складиште је скоро пуно ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["се поклапа са '{filter}'","се поклапају са '{filter}'","се поклапа са '{filter}'"],
"{dirs} and {files}" : "{dirs} и {files}",
diff --git a/apps/files/l10n/th_TH.js b/apps/files/l10n/th_TH.js
index e0c43462094..cc13af78f64 100644
--- a/apps/files/l10n/th_TH.js
+++ b/apps/files/l10n/th_TH.js
@@ -1,9 +1,18 @@
OC.L10N.register(
"files",
{
+ "Storage not available" : "ไม่สามารถใช้พื้นที่จัดเก็บข้อมูลได้",
+ "Storage invalid" : "การจัดเก็บข้อมูลไม่ถูกต้อง",
"Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"Could not move %s - File with this name already exists" : "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว",
"Could not move %s" : "ไม่สามารถย้าย %s ได้",
+ "Permission denied" : "ไม่อนุญาต",
+ "The target folder has been moved or deleted." : "โฟลเดอร์ปลายทางถูกย้ายหรือลบ",
+ "The name %s is already used in the folder %s. Please choose a different name." : "ชื่อ %s ถูกใช้ไปแล้วในโฟลเดอร์ %s โปรดเลือกชื่ออื่นที่แตกต่างกัน",
+ "Error when creating the file" : "เกิดข้อผิดพลาดเมื่อมีการสร้างไฟล์",
+ "Error when creating the folder" : "เกิดข้อผิดพลาดเมื่อมีการสร้างโฟลเดอร์",
+ "Unable to set upload directory." : "ไม่สามารถตั้งค่าอัพโหลดไดเรกทอรี",
+ "Invalid Token" : "โทเค็นไม่ถูกต้อง",
"No file was uploaded. Unknown error" : "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"There is no error, the file uploaded with success" : "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini",
@@ -13,41 +22,96 @@ OC.L10N.register(
"Missing a temporary folder" : "โฟลเดอร์ชั่วคราวเกิดการสูญหาย",
"Failed to write to disk" : "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว",
"Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน",
+ "Upload failed. Could not find uploaded file" : "อัปโหลดล้มเหลว ไม่สามารถหาไฟล์ที่จะอัพโหลด",
+ "Upload failed. Could not get file info." : "อัพโหลดล้มเหลว ไม่สามารถรับข้อมูลไฟล์",
"Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง",
"Files" : "ไฟล์",
+ "All files" : "ไฟล์ทั้งหมด",
"Favorites" : "รายการโปรด",
"Home" : "บ้าน",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ไม่สามารถอัพโหลด {filename} มันเป็นไดเรกทอรีหรือมี 0 ไบต์",
+ "Total file size {size1} exceeds upload limit {size2}" : "ขนาดไฟล์ {size1} ทั้งหมดเกินขีดจำกัด ของการอัพโหลด {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "พื้นที่ว่างไม่เพียงพอคุณจะอัพโหลด {size1} แต่มีพืนที่แค่ {size2}",
"Upload cancelled." : "การอัพโหลดถูกยกเลิก",
+ "Could not get result from server." : "ไม่สามารถรับผลลัพธ์จากเซิร์ฟเวอร์",
"File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
"{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
+ "Could not create file" : "ไม่สามารถสร้างไฟล์",
+ "Could not create folder" : "ไม่สามารถสร้างโฟลเดอร์",
"Rename" : "เปลี่ยนชื่อ",
"Delete" : "ลบ",
+ "Disconnect storage" : "ยกเลิกการเชื่อมต่อการจัดเก็บข้อมูล",
"Unshare" : "ยกเลิกการแชร์",
+ "No permission to delete" : "ไม่อนุญาตให้ลบ",
"Download" : "ดาวน์โหลด",
"Select" : "เลือก",
"Pending" : "อยู่ระหว่างดำเนินการ",
+ "Unable to determine date" : "ไม่สามารถกำหนดวัน",
+ "Error moving file." : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
+ "Error moving file" : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
"Error" : "ข้อผิดพลาด",
+ "Could not rename file" : "ไม่สามารถเปลี่ยนชื่อไฟล์",
+ "Error deleting file." : "เกิดข้อผิดพลาดในการลบไฟล์",
+ "No entries in this folder match '{filter}'" : "ไม่มีรายการในโฟลเดอร์นี้ที่ตรงกับ '{filter}'",
"Name" : "ชื่อ",
"Size" : "ขนาด",
"Modified" : "แก้ไขแล้ว",
+ "_%n folder_::_%n folders_" : ["%n โฟลเดอร์"],
+ "_%n file_::_%n files_" : ["%n ไฟล์"],
+ "You don’t have permission to upload or create files here" : "คุณไม่ได้รับอนุญาตให้อัพโหลดหรือสร้างไฟล์ที่นี่",
+ "_Uploading %n file_::_Uploading %n files_" : ["อัพโหลด %n ไฟล์"],
+ "\"{name}\" is an invalid file name." : "\"{name}\" เป็นชื่อไฟล์ที่ไม่ถูกต้อง",
"File name cannot be empty." : "ชื่อไฟล์ไม่สามารถเว้นว่างได้",
- "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป",
- "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของ {owner} เต็มแล้ว ไฟล์ไม่สามารถอัพเดทหรือผสานข้อมูลได้อีก!",
+ "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานข้อมูลได้อีก!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของ {owner} ใกล้เต็มแล้ว\nใช้พื้นที่ไปแล้ว: ({usedSpacePercent}%)",
+ "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว \nใช้พื้นที่ไปแล้ว: ({usedSpacePercent}%)",
+ "_matches '{filter}'_::_match '{filter}'_" : ["ตรงกับ '{filter}'"],
+ "{dirs} and {files}" : "{dirs} และ {files}",
+ "Favorited" : "รายการโปรด",
"Favorite" : "รายการโปรด",
- "File handling" : "การจัดกาไฟล์",
+ "An error occurred while trying to update the tags" : "เกิดข้อผิดพลาดขณะที่พยายามจะปรับปรุงแท็ก",
+ "A new file or folder has been <strong>created</strong>" : "มีไฟล์ใหม่หรือโฟลเดอร์ได้ถูก <strong>สร้างขึ้น!</strong>",
+ "A file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ได้ถูก <strong>เปลี่ยน!</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "จำกัดการแจ้งเตือนเกี่ยวกับการสร้างและการเปลี่ยนแปลงของคุณ <strong>ไฟล์ที่ชื่นชอบ</strong> <em>(สตรีมเท่านั้น)</em>",
+ "A file or folder has been <strong>deleted</strong>" : "ไฟล์หรือโฟลเดอร์ถูก <strong>ลบ</strong>",
+ "A file or folder has been <strong>restored</strong>" : "ไฟล์หรือโฟลเดอร์ถูก <strong>กู้คืน</strong>",
+ "You created %1$s" : "คุณสร้าง %1$s",
+ "%2$s created %1$s" : "%2$s สร้าง %1$s",
+ "%1$s was created in a public folder" : "%1$s ถูกสร้างขึ้นในโฟลเดอร์สาธารณะ",
+ "You changed %1$s" : "คุณทำการเปลี่ยนแปลง %1$s",
+ "%2$s changed %1$s" : "%2$s ได้เปลี่ยนแปลง %1$s",
+ "You deleted %1$s" : "คุณลบ %1$s ออก",
+ "%2$s deleted %1$s" : "%2$s ลบ %1$s ออก",
+ "You restored %1$s" : "คุณกู้คืน %1$s",
+ "%2$s restored %1$s" : "%2$s ได้กู้คืน %1$s",
+ "%s could not be renamed as it has been deleted" : "%s ไม่สามารถเปลี่ยนชื่อเนื่องจากถูกลบไปแล้ว",
+ "%s could not be renamed" : "%s ไม่สามารถเปลี่ยนชื่อ",
+ "Upload (max. %s)" : "อัพโหลด (สูงสุด %s)",
+ "File handling" : "การจัดการไฟล์",
"Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้",
"max. possible: " : "จำนวนสูงสุดที่สามารถทำได้: ",
"Save" : "บันทึก",
+ "Can not be edited from here due to insufficient permissions." : "ไม่สามารถแก้ไขได้จากที่นี่เนื่องจากสิทธิ์ไม่เพียงพอ",
"Settings" : "ตั้งค่า",
"WebDAV" : "WebDAV",
- "New" : "อัพโหลดไฟล์ใหม่",
+ "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "ใช้ที่อยู่นี้เพื่อ <a href=\"%s\" target=\"_blank\">เข้าถึงไฟล์ของคุณผ่าน WebDAV</a>",
+ "New" : "ใหม่",
+ "New text file" : "ไฟล์ข้อความใหม่",
"Text file" : "ไฟล์ข้อความ",
"New folder" : "โฟลเดอร์ใหม่",
"Folder" : "แฟ้มเอกสาร",
"Upload" : "อัพโหลด",
"Cancel upload" : "ยกเลิกการอัพโหลด",
+ "No files in here" : "ไม่มีไฟล์ที่นี่",
+ "Upload some content or sync with your devices!" : "อัพโหลดเนื้อหาบางส่วนหรือผสานข้อมูลกับอุปกรณ์ของคุณ! อีกครั้ง",
+ "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
+ "Select all" : "เลือกทั้งหมด",
"Upload too large" : "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้",
- "Files are being scanned, please wait." : "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่."
+ "Files are being scanned, please wait." : "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่.",
+ "Currently scanning" : "ปัจจุบันกำลังสแกน",
+ "No favorites" : "ไม่มีรายการโปรด",
+ "Files and folders you mark as favorite will show up here" : "ไฟล์และโฟลเดอร์ที่คุณทำเครื่องหมายเป็นรายการโปรดจะปรากฏขึ้นที่นี่"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/th_TH.json b/apps/files/l10n/th_TH.json
index 03d43e9b516..b1b26261c7a 100644
--- a/apps/files/l10n/th_TH.json
+++ b/apps/files/l10n/th_TH.json
@@ -1,7 +1,16 @@
{ "translations": {
+ "Storage not available" : "ไม่สามารถใช้พื้นที่จัดเก็บข้อมูลได้",
+ "Storage invalid" : "การจัดเก็บข้อมูลไม่ถูกต้อง",
"Unknown error" : "ข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"Could not move %s - File with this name already exists" : "ไม่สามารถย้าย %s ได้ - ไฟล์ที่ใช้ชื่อนี้มีอยู่แล้ว",
"Could not move %s" : "ไม่สามารถย้าย %s ได้",
+ "Permission denied" : "ไม่อนุญาต",
+ "The target folder has been moved or deleted." : "โฟลเดอร์ปลายทางถูกย้ายหรือลบ",
+ "The name %s is already used in the folder %s. Please choose a different name." : "ชื่อ %s ถูกใช้ไปแล้วในโฟลเดอร์ %s โปรดเลือกชื่ออื่นที่แตกต่างกัน",
+ "Error when creating the file" : "เกิดข้อผิดพลาดเมื่อมีการสร้างไฟล์",
+ "Error when creating the folder" : "เกิดข้อผิดพลาดเมื่อมีการสร้างโฟลเดอร์",
+ "Unable to set upload directory." : "ไม่สามารถตั้งค่าอัพโหลดไดเรกทอรี",
+ "Invalid Token" : "โทเค็นไม่ถูกต้อง",
"No file was uploaded. Unknown error" : "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"There is no error, the file uploaded with success" : "ไม่พบข้อผิดพลาดใดๆ, ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini",
@@ -11,41 +20,96 @@
"Missing a temporary folder" : "โฟลเดอร์ชั่วคราวเกิดการสูญหาย",
"Failed to write to disk" : "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว",
"Not enough storage available" : "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน",
+ "Upload failed. Could not find uploaded file" : "อัปโหลดล้มเหลว ไม่สามารถหาไฟล์ที่จะอัพโหลด",
+ "Upload failed. Could not get file info." : "อัพโหลดล้มเหลว ไม่สามารถรับข้อมูลไฟล์",
"Invalid directory." : "ไดเร็กทอรี่ไม่ถูกต้อง",
"Files" : "ไฟล์",
+ "All files" : "ไฟล์ทั้งหมด",
"Favorites" : "รายการโปรด",
"Home" : "บ้าน",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "ไม่สามารถอัพโหลด {filename} มันเป็นไดเรกทอรีหรือมี 0 ไบต์",
+ "Total file size {size1} exceeds upload limit {size2}" : "ขนาดไฟล์ {size1} ทั้งหมดเกินขีดจำกัด ของการอัพโหลด {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "พื้นที่ว่างไม่เพียงพอคุณจะอัพโหลด {size1} แต่มีพืนที่แค่ {size2}",
"Upload cancelled." : "การอัพโหลดถูกยกเลิก",
+ "Could not get result from server." : "ไม่สามารถรับผลลัพธ์จากเซิร์ฟเวอร์",
"File upload is in progress. Leaving the page now will cancel the upload." : "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
"{new_name} already exists" : "{new_name} มีอยู่แล้วในระบบ",
+ "Could not create file" : "ไม่สามารถสร้างไฟล์",
+ "Could not create folder" : "ไม่สามารถสร้างโฟลเดอร์",
"Rename" : "เปลี่ยนชื่อ",
"Delete" : "ลบ",
+ "Disconnect storage" : "ยกเลิกการเชื่อมต่อการจัดเก็บข้อมูล",
"Unshare" : "ยกเลิกการแชร์",
+ "No permission to delete" : "ไม่อนุญาตให้ลบ",
"Download" : "ดาวน์โหลด",
"Select" : "เลือก",
"Pending" : "อยู่ระหว่างดำเนินการ",
+ "Unable to determine date" : "ไม่สามารถกำหนดวัน",
+ "Error moving file." : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
+ "Error moving file" : "ข้อผิดพลาดในการเคลื่อนย้ายไฟล์",
"Error" : "ข้อผิดพลาด",
+ "Could not rename file" : "ไม่สามารถเปลี่ยนชื่อไฟล์",
+ "Error deleting file." : "เกิดข้อผิดพลาดในการลบไฟล์",
+ "No entries in this folder match '{filter}'" : "ไม่มีรายการในโฟลเดอร์นี้ที่ตรงกับ '{filter}'",
"Name" : "ชื่อ",
"Size" : "ขนาด",
"Modified" : "แก้ไขแล้ว",
+ "_%n folder_::_%n folders_" : ["%n โฟลเดอร์"],
+ "_%n file_::_%n files_" : ["%n ไฟล์"],
+ "You don’t have permission to upload or create files here" : "คุณไม่ได้รับอนุญาตให้อัพโหลดหรือสร้างไฟล์ที่นี่",
+ "_Uploading %n file_::_Uploading %n files_" : ["อัพโหลด %n ไฟล์"],
+ "\"{name}\" is an invalid file name." : "\"{name}\" เป็นชื่อไฟล์ที่ไม่ถูกต้อง",
"File name cannot be empty." : "ชื่อไฟล์ไม่สามารถเว้นว่างได้",
- "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานไฟล์ต่างๆได้อีกต่อไป",
- "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว ({usedSpacePercent}%)",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของ {owner} เต็มแล้ว ไฟล์ไม่สามารถอัพเดทหรือผสานข้อมูลได้อีก!",
+ "Your storage is full, files can not be updated or synced anymore!" : "พื้นที่จัดเก็บข้อมูลของคุณเต็มแล้ว ไม่สามารถอัพเดทหรือผสานข้อมูลได้อีก!",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของ {owner} ใกล้เต็มแล้ว\nใช้พื้นที่ไปแล้ว: ({usedSpacePercent}%)",
+ "Your storage is almost full ({usedSpacePercent}%)" : "พื้นที่จัดเก็บข้อมูลของคุณใกล้เต็มแล้ว \nใช้พื้นที่ไปแล้ว: ({usedSpacePercent}%)",
+ "_matches '{filter}'_::_match '{filter}'_" : ["ตรงกับ '{filter}'"],
+ "{dirs} and {files}" : "{dirs} และ {files}",
+ "Favorited" : "รายการโปรด",
"Favorite" : "รายการโปรด",
- "File handling" : "การจัดกาไฟล์",
+ "An error occurred while trying to update the tags" : "เกิดข้อผิดพลาดขณะที่พยายามจะปรับปรุงแท็ก",
+ "A new file or folder has been <strong>created</strong>" : "มีไฟล์ใหม่หรือโฟลเดอร์ได้ถูก <strong>สร้างขึ้น!</strong>",
+ "A file or folder has been <strong>changed</strong>" : "มีไฟล์หรือโฟลเดอร์ได้ถูก <strong>เปลี่ยน!</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "จำกัดการแจ้งเตือนเกี่ยวกับการสร้างและการเปลี่ยนแปลงของคุณ <strong>ไฟล์ที่ชื่นชอบ</strong> <em>(สตรีมเท่านั้น)</em>",
+ "A file or folder has been <strong>deleted</strong>" : "ไฟล์หรือโฟลเดอร์ถูก <strong>ลบ</strong>",
+ "A file or folder has been <strong>restored</strong>" : "ไฟล์หรือโฟลเดอร์ถูก <strong>กู้คืน</strong>",
+ "You created %1$s" : "คุณสร้าง %1$s",
+ "%2$s created %1$s" : "%2$s สร้าง %1$s",
+ "%1$s was created in a public folder" : "%1$s ถูกสร้างขึ้นในโฟลเดอร์สาธารณะ",
+ "You changed %1$s" : "คุณทำการเปลี่ยนแปลง %1$s",
+ "%2$s changed %1$s" : "%2$s ได้เปลี่ยนแปลง %1$s",
+ "You deleted %1$s" : "คุณลบ %1$s ออก",
+ "%2$s deleted %1$s" : "%2$s ลบ %1$s ออก",
+ "You restored %1$s" : "คุณกู้คืน %1$s",
+ "%2$s restored %1$s" : "%2$s ได้กู้คืน %1$s",
+ "%s could not be renamed as it has been deleted" : "%s ไม่สามารถเปลี่ยนชื่อเนื่องจากถูกลบไปแล้ว",
+ "%s could not be renamed" : "%s ไม่สามารถเปลี่ยนชื่อ",
+ "Upload (max. %s)" : "อัพโหลด (สูงสุด %s)",
+ "File handling" : "การจัดการไฟล์",
"Maximum upload size" : "ขนาดไฟล์สูงสุดที่อัพโหลดได้",
"max. possible: " : "จำนวนสูงสุดที่สามารถทำได้: ",
"Save" : "บันทึก",
+ "Can not be edited from here due to insufficient permissions." : "ไม่สามารถแก้ไขได้จากที่นี่เนื่องจากสิทธิ์ไม่เพียงพอ",
"Settings" : "ตั้งค่า",
"WebDAV" : "WebDAV",
- "New" : "อัพโหลดไฟล์ใหม่",
+ "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "ใช้ที่อยู่นี้เพื่อ <a href=\"%s\" target=\"_blank\">เข้าถึงไฟล์ของคุณผ่าน WebDAV</a>",
+ "New" : "ใหม่",
+ "New text file" : "ไฟล์ข้อความใหม่",
"Text file" : "ไฟล์ข้อความ",
"New folder" : "โฟลเดอร์ใหม่",
"Folder" : "แฟ้มเอกสาร",
"Upload" : "อัพโหลด",
"Cancel upload" : "ยกเลิกการอัพโหลด",
+ "No files in here" : "ไม่มีไฟล์ที่นี่",
+ "Upload some content or sync with your devices!" : "อัพโหลดเนื้อหาบางส่วนหรือผสานข้อมูลกับอุปกรณ์ของคุณ! อีกครั้ง",
+ "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
+ "Select all" : "เลือกทั้งหมด",
"Upload too large" : "ไฟล์ที่อัพโหลดมีขนาดใหญ่เกินไป",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "ไฟล์ที่คุณพยายามที่จะอัพโหลดมีขนาดเกินกว่าขนาดสูงสุดที่กำหนดไว้ให้อัพโหลดได้สำหรับเซิร์ฟเวอร์นี้",
- "Files are being scanned, please wait." : "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่."
+ "Files are being scanned, please wait." : "ไฟล์กำลังอยู่ระหว่างการสแกน, กรุณารอสักครู่.",
+ "Currently scanning" : "ปัจจุบันกำลังสแกน",
+ "No favorites" : "ไม่มีรายการโปรด",
+ "Files and folders you mark as favorite will show up here" : "ไฟล์และโฟลเดอร์ที่คุณทำเครื่องหมายเป็นรายการโปรดจะปรากฏขึ้นที่นี่"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index e7c197c1adc..a92d45e2481 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -62,7 +62,9 @@ OC.L10N.register(
"_Uploading %n file_::_Uploading %n files_" : ["%n dosya yükleniyor","%n dosya yükleniyor"],
"\"{name}\" is an invalid file name." : "\"{name}\" geçersiz bir dosya adı.",
"File name cannot be empty." : "Dosya adı boş olamaz.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner} depolama alanı dolu, artık dosyalar güncellenmeyecek yada eşitlenmeyecek.",
"Your storage is full, files can not be updated or synced anymore!" : "Depolama alanınız dolu, artık dosyalar güncellenmeyecek veya eşitlenmeyecek.",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : " {owner} depolama alanı neredeyse dolu ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Depolama alanınız neredeyse dolu (%{usedSpacePercent})",
"_matches '{filter}'_::_match '{filter}'_" : ["'{filter}' ile eşleşiyor","'{filter}' ile eşleşiyor"],
"{dirs} and {files}" : "{dirs} ve {files}",
@@ -71,7 +73,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "Etiketler güncellenmeye çalışılırken bir hata oluştu",
"A new file or folder has been <strong>created</strong>" : "Yeni bir dosya veya klasör <strong>oluşturuldu</strong>",
"A file or folder has been <strong>changed</strong>" : "Bir dosya veya klasör <strong>değiştirildi</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>Favori dosyalarınızın</strong> <em>(Sadece akış olanların)</em> oluşturulması ve değiştirilmesi hakkında ki bildirimleri sınırla",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>Sık kullanılan dosyalarınızın</strong> oluşturulma ve değiştirilme hakkındaki bildirimlerini sınırla <em>(Sadece akışta)</em>",
"A file or folder has been <strong>deleted</strong>" : "Bir dosya veya klasör <strong>silindi</strong>",
"A file or folder has been <strong>restored</strong>" : "Bir dosya veya klasör <strong>geri alındı</strong>",
"You created %1$s" : "%1$s dosyasını oluşturdunuz",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 82c83bfc690..1eb5534accb 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -60,7 +60,9 @@
"_Uploading %n file_::_Uploading %n files_" : ["%n dosya yükleniyor","%n dosya yükleniyor"],
"\"{name}\" is an invalid file name." : "\"{name}\" geçersiz bir dosya adı.",
"File name cannot be empty." : "Dosya adı boş olamaz.",
+ "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner} depolama alanı dolu, artık dosyalar güncellenmeyecek yada eşitlenmeyecek.",
"Your storage is full, files can not be updated or synced anymore!" : "Depolama alanınız dolu, artık dosyalar güncellenmeyecek veya eşitlenmeyecek.",
+ "Storage of {owner} is almost full ({usedSpacePercent}%)" : " {owner} depolama alanı neredeyse dolu ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Depolama alanınız neredeyse dolu (%{usedSpacePercent})",
"_matches '{filter}'_::_match '{filter}'_" : ["'{filter}' ile eşleşiyor","'{filter}' ile eşleşiyor"],
"{dirs} and {files}" : "{dirs} ve {files}",
@@ -69,7 +71,7 @@
"An error occurred while trying to update the tags" : "Etiketler güncellenmeye çalışılırken bir hata oluştu",
"A new file or folder has been <strong>created</strong>" : "Yeni bir dosya veya klasör <strong>oluşturuldu</strong>",
"A file or folder has been <strong>changed</strong>" : "Bir dosya veya klasör <strong>değiştirildi</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>Favori dosyalarınızın</strong> <em>(Sadece akış olanların)</em> oluşturulması ve değiştirilmesi hakkında ki bildirimleri sınırla",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>Sık kullanılan dosyalarınızın</strong> oluşturulma ve değiştirilme hakkındaki bildirimlerini sınırla <em>(Sadece akışta)</em>",
"A file or folder has been <strong>deleted</strong>" : "Bir dosya veya klasör <strong>silindi</strong>",
"A file or folder has been <strong>restored</strong>" : "Bir dosya veya klasör <strong>geri alındı</strong>",
"You created %1$s" : "%1$s dosyasını oluşturdunuz",
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index d0fda488921..c724f5f73ea 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"files",
{
+ "Storage not available" : "Lưu trữ không có sẵn",
+ "Storage invalid" : "Lưu trữ không hợp lệ",
"Unknown error" : "Lỗi chưa biết",
"Could not move %s - File with this name already exists" : "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống",
"Could not move %s" : "Không thể di chuyển %s",
@@ -68,6 +70,7 @@ OC.L10N.register(
"Upload" : "Tải lên",
"Cancel upload" : "Hủy upload",
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
+ "Select all" : "Chọn tất cả",
"Upload too large" : "Tập tin tải lên quá lớn",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .",
"Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ."
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index e6581323d89..5a4519cf84b 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "Storage not available" : "Lưu trữ không có sẵn",
+ "Storage invalid" : "Lưu trữ không hợp lệ",
"Unknown error" : "Lỗi chưa biết",
"Could not move %s - File with this name already exists" : "Không thể di chuyển %s - Đã có tên tập tin này trên hệ thống",
"Could not move %s" : "Không thể di chuyển %s",
@@ -66,6 +68,7 @@
"Upload" : "Tải lên",
"Cancel upload" : "Hủy upload",
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
+ "Select all" : "Chọn tất cả",
"Upload too large" : "Tập tin tải lên quá lớn",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Các tập tin bạn đang tải lên vượt quá kích thước tối đa cho phép trên máy chủ .",
"Files are being scanned, please wait." : "Tập tin đang được quét ,vui lòng chờ."
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index e966e60d00a..6bfdc0a095c 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -52,7 +52,9 @@ class Helper {
'uploadMaxFilesize' => $maxUploadFileSize,
'maxHumanFilesize' => $maxHumanFileSize,
'freeSpace' => $storageInfo['free'],
- 'usedSpacePercent' => (int)$storageInfo['relative']
+ 'usedSpacePercent' => (int)$storageInfo['relative'],
+ 'owner' => $storageInfo['owner'],
+ 'ownerDisplayName' => $storageInfo['ownerDisplayName'],
];
}
diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php
index 70b98303b06..512300e3a58 100644
--- a/apps/files/templates/appnavigation.php
+++ b/apps/files/templates/appnavigation.php
@@ -12,7 +12,7 @@
<div id="app-settings">
<div id="app-settings-header">
<button class="settings-button" data-apps-slide-toggle="#app-settings-content">
- <span><?php p($l->t('Settings'));?></span>
+ <?php p($l->t('Settings'));?>
</button>
</div>
<div id="app-settings-content">
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 77f80bc346d..e825c300d31 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -6,11 +6,14 @@
<?php print_unescaped($content['content']) ?>
</div>
<?php } ?>
+ <div id="searchresults" class="hidden"></div>
</div><!-- closing app-content -->
<!-- config hints for javascript -->
<input type="hidden" name="filesApp" id="filesApp" value="1" />
<input type="hidden" name="usedSpacePercent" id="usedSpacePercent" value="<?php p($_['usedSpacePercent']); ?>" />
+<input type="hidden" name="owner" id="owner" value="<?php p($_['owner']); ?>" />
+<input type="hidden" name="ownerDisplayName" id="ownerDisplayName" value="<?php p($_['ownerDisplayName']); ?>" />
<?php if (!$_['isPublic']) :?>
<input type="hidden" name="mailNotificationEnabled" id="mailNotificationEnabled" value="<?php p($_['mailNotificationEnabled']) ?>" />
<input type="hidden" name="mailPublicNotificationEnabled" id="mailPublicNotificationEnabled" value="<?php p($_['mailPublicNotificationEnabled']) ?>" />
diff --git a/apps/files_external/l10n/ar.js b/apps/files_external/l10n/ar.js
index c2825869a7e..a4ded22fae3 100644
--- a/apps/files_external/l10n/ar.js
+++ b/apps/files_external/l10n/ar.js
@@ -2,14 +2,24 @@ OC.L10N.register(
"files_external",
{
"Location" : "المكان",
+ "Key" : "المفتاح",
+ "Secret" : "سر",
+ "Bucket" : "الحزمة",
+ "Access Key" : "مفتاح الدخول",
+ "Secret Key" : "المفتاح السري",
+ "Hostname" : "إسم الإستضافة",
"Port" : "المنفذ",
"Region" : "المنطقة",
+ "App key" : "مفتاح التطبيق",
+ "App secret" : "التطبيق السري",
"Host" : "المضيف",
"Username" : "إسم المستخدم",
"Password" : "كلمة السر",
"Share" : "شارك",
"URL" : "عنوان الموقع",
"Personal" : "شخصي",
+ "System" : "النظام",
+ "Never" : "أبدا",
"Saved" : "حفظ",
"Name" : "اسم",
"Folder name" : "اسم المجلد",
diff --git a/apps/files_external/l10n/ar.json b/apps/files_external/l10n/ar.json
index 64650283140..8900ee04f9d 100644
--- a/apps/files_external/l10n/ar.json
+++ b/apps/files_external/l10n/ar.json
@@ -1,13 +1,23 @@
{ "translations": {
"Location" : "المكان",
+ "Key" : "المفتاح",
+ "Secret" : "سر",
+ "Bucket" : "الحزمة",
+ "Access Key" : "مفتاح الدخول",
+ "Secret Key" : "المفتاح السري",
+ "Hostname" : "إسم الإستضافة",
"Port" : "المنفذ",
"Region" : "المنطقة",
+ "App key" : "مفتاح التطبيق",
+ "App secret" : "التطبيق السري",
"Host" : "المضيف",
"Username" : "إسم المستخدم",
"Password" : "كلمة السر",
"Share" : "شارك",
"URL" : "عنوان الموقع",
"Personal" : "شخصي",
+ "System" : "النظام",
+ "Never" : "أبدا",
"Saved" : "حفظ",
"Name" : "اسم",
"Folder name" : "اسم المجلد",
diff --git a/apps/files_external/l10n/ca.js b/apps/files_external/l10n/ca.js
index 56f6be8f28d..b3ccb76ccdb 100644
--- a/apps/files_external/l10n/ca.js
+++ b/apps/files_external/l10n/ca.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"Username as share" : "Nom d'usuari per compartir",
"URL" : "URL",
"Secure https://" : "Protocol segur https://",
+ "SFTP with secret key login" : "Inici de sessió SFTP amb clau secreta",
"Public key" : "Clau pública",
"Storage with id \"%i\" not found" : "No s'ha trobat emmagatzematge amb id \"%i\"",
"Invalid mount point" : "Punt de muntatge no vàlid",
@@ -53,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Error en configurar l'emmagatzemament Google Drive",
"Personal" : "Personal",
"System" : "Sistema",
+ "Enable encryption" : "Habilitar xifrat",
+ "Enable previews" : "Habilitar vistes prèvies",
+ "Check for changes" : "Comproveu si hi ha canvis",
+ "Never" : "Mai",
+ "Once every direct access" : "Un cop cada accés directe",
+ "Every time the filesystem is used" : "Cada vegada que s'utilitza el sistema d'arxius",
"All users. Type to select user or group." : "Tots els usuaris. Escriu per seleccionar un usuari o grup.",
"(group)" : "(grup)",
"Saved" : "Desat",
diff --git a/apps/files_external/l10n/ca.json b/apps/files_external/l10n/ca.json
index 0bc21eb324b..6295ed8df3d 100644
--- a/apps/files_external/l10n/ca.json
+++ b/apps/files_external/l10n/ca.json
@@ -41,6 +41,7 @@
"Username as share" : "Nom d'usuari per compartir",
"URL" : "URL",
"Secure https://" : "Protocol segur https://",
+ "SFTP with secret key login" : "Inici de sessió SFTP amb clau secreta",
"Public key" : "Clau pública",
"Storage with id \"%i\" not found" : "No s'ha trobat emmagatzematge amb id \"%i\"",
"Invalid mount point" : "Punt de muntatge no vàlid",
@@ -51,6 +52,12 @@
"Error configuring Google Drive storage" : "Error en configurar l'emmagatzemament Google Drive",
"Personal" : "Personal",
"System" : "Sistema",
+ "Enable encryption" : "Habilitar xifrat",
+ "Enable previews" : "Habilitar vistes prèvies",
+ "Check for changes" : "Comproveu si hi ha canvis",
+ "Never" : "Mai",
+ "Once every direct access" : "Un cop cada accés directe",
+ "Every time the filesystem is used" : "Cada vegada que s'utilitza el sistema d'arxius",
"All users. Type to select user or group." : "Tots els usuaris. Escriu per seleccionar un usuari o grup.",
"(group)" : "(grup)",
"Saved" : "Desat",
diff --git a/apps/files_external/l10n/cs_CZ.js b/apps/files_external/l10n/cs_CZ.js
index 1ba836528d9..f2e86b5748c 100644
--- a/apps/files_external/l10n/cs_CZ.js
+++ b/apps/files_external/l10n/cs_CZ.js
@@ -54,6 +54,7 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Chyba při nastavení úložiště Google Drive",
"Personal" : "Osobní",
"System" : "Systém",
+ "Enable encryption" : "Povolit šifrování",
"All users. Type to select user or group." : "Všichni uživatelé. Začněte psát pro výběr uživatelů a skupin.",
"(group)" : "(skupina)",
"Saved" : "Uloženo",
diff --git a/apps/files_external/l10n/cs_CZ.json b/apps/files_external/l10n/cs_CZ.json
index 012a335cf4e..b96a2e52274 100644
--- a/apps/files_external/l10n/cs_CZ.json
+++ b/apps/files_external/l10n/cs_CZ.json
@@ -52,6 +52,7 @@
"Error configuring Google Drive storage" : "Chyba při nastavení úložiště Google Drive",
"Personal" : "Osobní",
"System" : "Systém",
+ "Enable encryption" : "Povolit šifrování",
"All users. Type to select user or group." : "Všichni uživatelé. Začněte psát pro výběr uživatelů a skupin.",
"(group)" : "(skupina)",
"Saved" : "Uloženo",
diff --git a/apps/files_external/l10n/da.js b/apps/files_external/l10n/da.js
index 54bf95a774a..bafebbbf879 100644
--- a/apps/files_external/l10n/da.js
+++ b/apps/files_external/l10n/da.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"Username as share" : "Brugernavn som deling",
"URL" : "URL",
"Secure https://" : "Sikker https://",
+ "SFTP with secret key login" : "SFTP med hemmelig nøglelogin",
"Public key" : "Offentlig nøgle",
"Storage with id \"%i\" not found" : "Lager med ID'et \"%i% er ikke fundet",
"Invalid mount point" : "Fokert monteringspunkt",
@@ -53,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Fejl ved konfiguration af Google Drive-plads",
"Personal" : "Personligt",
"System" : "System",
+ "Enable encryption" : "Slå kryptering til",
+ "Enable previews" : "Slå forhåndsvisninger til",
+ "Check for changes" : "Tjek for ændringer",
+ "Never" : "Aldrig",
+ "Once every direct access" : "Kun ved hver direkte tilgang",
+ "Every time the filesystem is used" : "Hver gang filsystemet benyttes",
"All users. Type to select user or group." : "Alle brugere. Indtast for at vælge bruger eller gruppe.",
"(group)" : "(gruppe)",
"Saved" : "Gemt",
diff --git a/apps/files_external/l10n/da.json b/apps/files_external/l10n/da.json
index 885d9d63925..663cf93b6ff 100644
--- a/apps/files_external/l10n/da.json
+++ b/apps/files_external/l10n/da.json
@@ -41,6 +41,7 @@
"Username as share" : "Brugernavn som deling",
"URL" : "URL",
"Secure https://" : "Sikker https://",
+ "SFTP with secret key login" : "SFTP med hemmelig nøglelogin",
"Public key" : "Offentlig nøgle",
"Storage with id \"%i\" not found" : "Lager med ID'et \"%i% er ikke fundet",
"Invalid mount point" : "Fokert monteringspunkt",
@@ -51,6 +52,12 @@
"Error configuring Google Drive storage" : "Fejl ved konfiguration af Google Drive-plads",
"Personal" : "Personligt",
"System" : "System",
+ "Enable encryption" : "Slå kryptering til",
+ "Enable previews" : "Slå forhåndsvisninger til",
+ "Check for changes" : "Tjek for ændringer",
+ "Never" : "Aldrig",
+ "Once every direct access" : "Kun ved hver direkte tilgang",
+ "Every time the filesystem is used" : "Hver gang filsystemet benyttes",
"All users. Type to select user or group." : "Alle brugere. Indtast for at vælge bruger eller gruppe.",
"(group)" : "(gruppe)",
"Saved" : "Gemt",
diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js
index cd57210cef4..31f4dc7923f 100644
--- a/apps/files_external/l10n/de.js
+++ b/apps/files_external/l10n/de.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive",
"Personal" : "Persönlich",
"System" : "System",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "Enable previews" : "Vorschau aktivieren",
+ "Check for changes" : "Auf Änderungen überprüfen",
+ "Never" : "Nie",
+ "Once every direct access" : "Einmal bei jedem Direktzugriff",
+ "Every time the filesystem is used" : "Immer, wenn das Dateisystem benutzt wird",
"All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.",
"(group)" : "(group)",
"Saved" : "Gespeichert",
diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json
index cb82b90b24a..ef96c6e84a8 100644
--- a/apps/files_external/l10n/de.json
+++ b/apps/files_external/l10n/de.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive",
"Personal" : "Persönlich",
"System" : "System",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "Enable previews" : "Vorschau aktivieren",
+ "Check for changes" : "Auf Änderungen überprüfen",
+ "Never" : "Nie",
+ "Once every direct access" : "Einmal bei jedem Direktzugriff",
+ "Every time the filesystem is used" : "Immer, wenn das Dateisystem benutzt wird",
"All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.",
"(group)" : "(group)",
"Saved" : "Gespeichert",
diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js
index a4c2d87d254..0f9fac23553 100644
--- a/apps/files_external/l10n/de_DE.js
+++ b/apps/files_external/l10n/de_DE.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive",
"Personal" : "Persönlich",
"System" : "System",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "Enable previews" : "Vorschau aktivieren",
+ "Check for changes" : "Auf Änderungen überprüfen",
+ "Never" : "Nie",
+ "Once every direct access" : "Einmal bei jedem Direktzugriff",
+ "Every time the filesystem is used" : "Immer, wenn das Dateisystem benutzt wird",
"All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.",
"(group)" : "(group)",
"Saved" : "Gespeichert",
diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json
index 9c0d2555fbf..ad137e56751 100644
--- a/apps/files_external/l10n/de_DE.json
+++ b/apps/files_external/l10n/de_DE.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Fehler beim Einrichten von Google Drive",
"Personal" : "Persönlich",
"System" : "System",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "Enable previews" : "Vorschau aktivieren",
+ "Check for changes" : "Auf Änderungen überprüfen",
+ "Never" : "Nie",
+ "Once every direct access" : "Einmal bei jedem Direktzugriff",
+ "Every time the filesystem is used" : "Immer, wenn das Dateisystem benutzt wird",
"All users. Type to select user or group." : "Alle Benutzer. Benutzer oder Gruppe zur Auswahl eingeben.",
"(group)" : "(group)",
"Saved" : "Gespeichert",
diff --git a/apps/files_external/l10n/el.js b/apps/files_external/l10n/el.js
index a5e6a59ff1a..e3b96e4cc4a 100644
--- a/apps/files_external/l10n/el.js
+++ b/apps/files_external/l10n/el.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"Username as share" : "Όνομα χρήστη ως διαμοιραζόμενος φάκελος",
"URL" : "URL",
"Secure https://" : "Ασφαλής σύνδεση https://",
+ "SFTP with secret key login" : "SFTP με σύνδεση με κρυφό κλειδί",
"Public key" : "Δημόσιο κλειδί",
"Storage with id \"%i\" not found" : "Αποθήκευση με id \"%i\" δεν βρέθηκε",
"Invalid mount point" : "Μη έγκυρο σημείο ανάρτησης",
@@ -53,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive ",
"Personal" : "Προσωπικά",
"System" : "Σύστημα",
+ "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης",
+ "Enable previews" : "Ενεργοποίηση προεπισκοπήσεων",
+ "Check for changes" : "Έλεγχος για αλλαγές",
+ "Never" : "Ποτέ",
+ "Once every direct access" : "Σε κάθε απευθείας πρόσβαση",
+ "Every time the filesystem is used" : "Κάθε φορά που χρησιμοποιείται το σύστημα αρχείων",
"All users. Type to select user or group." : "Όλοι οι χρήστες. Πληκτρολογήστε για να επιλέξετε χρήστη ή ομάδα.",
"(group)" : "(ομάδα)",
"Saved" : "Αποθηκεύτηκαν",
diff --git a/apps/files_external/l10n/el.json b/apps/files_external/l10n/el.json
index 5a3d820c39b..e62da96551c 100644
--- a/apps/files_external/l10n/el.json
+++ b/apps/files_external/l10n/el.json
@@ -41,6 +41,7 @@
"Username as share" : "Όνομα χρήστη ως διαμοιραζόμενος φάκελος",
"URL" : "URL",
"Secure https://" : "Ασφαλής σύνδεση https://",
+ "SFTP with secret key login" : "SFTP με σύνδεση με κρυφό κλειδί",
"Public key" : "Δημόσιο κλειδί",
"Storage with id \"%i\" not found" : "Αποθήκευση με id \"%i\" δεν βρέθηκε",
"Invalid mount point" : "Μη έγκυρο σημείο ανάρτησης",
@@ -51,6 +52,12 @@
"Error configuring Google Drive storage" : "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive ",
"Personal" : "Προσωπικά",
"System" : "Σύστημα",
+ "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης",
+ "Enable previews" : "Ενεργοποίηση προεπισκοπήσεων",
+ "Check for changes" : "Έλεγχος για αλλαγές",
+ "Never" : "Ποτέ",
+ "Once every direct access" : "Σε κάθε απευθείας πρόσβαση",
+ "Every time the filesystem is used" : "Κάθε φορά που χρησιμοποιείται το σύστημα αρχείων",
"All users. Type to select user or group." : "Όλοι οι χρήστες. Πληκτρολογήστε για να επιλέξετε χρήστη ή ομάδα.",
"(group)" : "(ομάδα)",
"Saved" : "Αποθηκεύτηκαν",
diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js
index e4dfb3effcc..29c1eebb7e3 100644
--- a/apps/files_external/l10n/en_GB.js
+++ b/apps/files_external/l10n/en_GB.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"Username as share" : "Username as share",
"URL" : "URL",
"Secure https://" : "Secure https://",
+ "SFTP with secret key login" : "SFTP with secret key login",
"Public key" : "Public key",
"Storage with id \"%i\" not found" : "Storage with id \"%i\" not found",
"Invalid mount point" : "Invalid mount point",
@@ -53,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Error configuring Google Drive storage",
"Personal" : "Personal",
"System" : "System",
+ "Enable encryption" : "Enable encryption",
+ "Enable previews" : "Enable previews",
+ "Check for changes" : "Check for changes",
+ "Never" : "Never",
+ "Once every direct access" : "Once every direct access",
+ "Every time the filesystem is used" : "Every time the filesystem is used",
"All users. Type to select user or group." : "All users. Type to select user or group.",
"(group)" : "(group)",
"Saved" : "Saved",
diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json
index 6b66198cef4..af3950f8ef0 100644
--- a/apps/files_external/l10n/en_GB.json
+++ b/apps/files_external/l10n/en_GB.json
@@ -41,6 +41,7 @@
"Username as share" : "Username as share",
"URL" : "URL",
"Secure https://" : "Secure https://",
+ "SFTP with secret key login" : "SFTP with secret key login",
"Public key" : "Public key",
"Storage with id \"%i\" not found" : "Storage with id \"%i\" not found",
"Invalid mount point" : "Invalid mount point",
@@ -51,6 +52,12 @@
"Error configuring Google Drive storage" : "Error configuring Google Drive storage",
"Personal" : "Personal",
"System" : "System",
+ "Enable encryption" : "Enable encryption",
+ "Enable previews" : "Enable previews",
+ "Check for changes" : "Check for changes",
+ "Never" : "Never",
+ "Once every direct access" : "Once every direct access",
+ "Every time the filesystem is used" : "Every time the filesystem is used",
"All users. Type to select user or group." : "All users. Type to select user or group.",
"(group)" : "(group)",
"Saved" : "Saved",
diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js
index efd3d7fc40d..dbe7923d1f6 100644
--- a/apps/files_external/l10n/es.js
+++ b/apps/files_external/l10n/es.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Error al configurar el almacenamiento de Google Drive",
"Personal" : "Personal",
"System" : "Sistema",
+ "Enable encryption" : "Habilitar cifrado",
+ "Enable previews" : "Habilitar previsualizaciones",
+ "Check for changes" : "Comprobar si hay cambios",
+ "Never" : "Nunca",
+ "Once every direct access" : "Una vez cada acceso directo",
+ "Every time the filesystem is used" : "Cada vez que filesystem es utilizado",
"All users. Type to select user or group." : "Todos los usuarios. Teclee para seleccionar un usuario o grupo.",
"(group)" : "(grupo)",
"Saved" : "Guardado",
diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json
index 231ea39b681..f2439287934 100644
--- a/apps/files_external/l10n/es.json
+++ b/apps/files_external/l10n/es.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Error al configurar el almacenamiento de Google Drive",
"Personal" : "Personal",
"System" : "Sistema",
+ "Enable encryption" : "Habilitar cifrado",
+ "Enable previews" : "Habilitar previsualizaciones",
+ "Check for changes" : "Comprobar si hay cambios",
+ "Never" : "Nunca",
+ "Once every direct access" : "Una vez cada acceso directo",
+ "Every time the filesystem is used" : "Cada vez que filesystem es utilizado",
"All users. Type to select user or group." : "Todos los usuarios. Teclee para seleccionar un usuario o grupo.",
"(group)" : "(grupo)",
"Saved" : "Guardado",
diff --git a/apps/files_external/l10n/fi_FI.js b/apps/files_external/l10n/fi_FI.js
index 78650275e40..430702d686a 100644
--- a/apps/files_external/l10n/fi_FI.js
+++ b/apps/files_external/l10n/fi_FI.js
@@ -45,6 +45,11 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Virhe Google Drive levyn asetuksia tehtäessä",
"Personal" : "Henkilökohtainen",
"System" : "Järjestelmä",
+ "Enable encryption" : "Käytä salausta",
+ "Check for changes" : "Tarkista muutokset",
+ "Never" : "Ei koskaan",
+ "Once every direct access" : "Kerran aina suoran käytön yhteydessä",
+ "Every time the filesystem is used" : "Aina kun tiedostojärjestelmää käytetään",
"All users. Type to select user or group." : "Kaikki käyttäjät. Kirjoita valitaksesi käyttäjän tai ryhmän.",
"(group)" : "(ryhmä)",
"Saved" : "Tallennettu",
diff --git a/apps/files_external/l10n/fi_FI.json b/apps/files_external/l10n/fi_FI.json
index 5faae6052c0..1f3bf46423e 100644
--- a/apps/files_external/l10n/fi_FI.json
+++ b/apps/files_external/l10n/fi_FI.json
@@ -43,6 +43,11 @@
"Error configuring Google Drive storage" : "Virhe Google Drive levyn asetuksia tehtäessä",
"Personal" : "Henkilökohtainen",
"System" : "Järjestelmä",
+ "Enable encryption" : "Käytä salausta",
+ "Check for changes" : "Tarkista muutokset",
+ "Never" : "Ei koskaan",
+ "Once every direct access" : "Kerran aina suoran käytön yhteydessä",
+ "Every time the filesystem is used" : "Aina kun tiedostojärjestelmää käytetään",
"All users. Type to select user or group." : "Kaikki käyttäjät. Kirjoita valitaksesi käyttäjän tai ryhmän.",
"(group)" : "(ryhmä)",
"Saved" : "Tallennettu",
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index 087c88522ec..f56418616bc 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -33,7 +33,7 @@ OC.L10N.register(
"OpenStack Object Storage" : "OpenStack Object Storage",
"Region (optional for OpenStack Object Storage)" : "Région (optionnel pour OpenStack Object Storage)",
"API Key (required for Rackspace Cloud Files)" : "Clé API (requis pour Rackspace Cloud Files)",
- "Tenantname (required for OpenStack Object Storage)" : "Nom du locataire (requis pour le stockage OpenStack)",
+ "Tenantname (required for OpenStack Object Storage)" : "Tenantname (requis pour le stockage OpenStack)",
"Password (required for OpenStack Object Storage)" : "Mot de passe (requis pour OpenStack Object Storage)",
"Service Name (required for OpenStack Object Storage)" : "Nom du service (requis pour le stockage OpenStack)",
"URL of identity endpoint (required for OpenStack Object Storage)" : "URL du point d'accès d'identité (requis pour le stockage OpenStack)",
@@ -43,7 +43,7 @@ OC.L10N.register(
"Username as share" : "Nom d'utilisateur comme nom de partage",
"URL" : "URL",
"Secure https://" : "Sécurisation https://",
- "SFTP with secret key login" : "SFTP avec un identifiant secret",
+ "SFTP with secret key login" : "SFTP avec identification par clé",
"Public key" : "Clef publique",
"Storage with id \"%i\" not found" : "Stockage avec l'id \"%i\" non trouvé",
"Invalid mount point" : "Point de montage non valide",
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Erreur lors de la configuration du stockage Google Drive",
"Personal" : "Personnel",
"System" : "Système",
+ "Enable encryption" : "Activer le chiffrement",
+ "Enable previews" : "Activer les prévisualisations",
+ "Check for changes" : "Rechercher les modifications",
+ "Never" : "Jamais",
+ "Once every direct access" : "Une fois à chaque accès direct",
+ "Every time the filesystem is used" : "Chaque fois que le système de fichiers est utilisé",
"All users. Type to select user or group." : "Tous les utilisateurs. Cliquez ici pour restreindre.",
"(group)" : "(groupe)",
"Saved" : "Sauvegardé",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index b2edf4c363c..9a283e2b78f 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -31,7 +31,7 @@
"OpenStack Object Storage" : "OpenStack Object Storage",
"Region (optional for OpenStack Object Storage)" : "Région (optionnel pour OpenStack Object Storage)",
"API Key (required for Rackspace Cloud Files)" : "Clé API (requis pour Rackspace Cloud Files)",
- "Tenantname (required for OpenStack Object Storage)" : "Nom du locataire (requis pour le stockage OpenStack)",
+ "Tenantname (required for OpenStack Object Storage)" : "Tenantname (requis pour le stockage OpenStack)",
"Password (required for OpenStack Object Storage)" : "Mot de passe (requis pour OpenStack Object Storage)",
"Service Name (required for OpenStack Object Storage)" : "Nom du service (requis pour le stockage OpenStack)",
"URL of identity endpoint (required for OpenStack Object Storage)" : "URL du point d'accès d'identité (requis pour le stockage OpenStack)",
@@ -41,7 +41,7 @@
"Username as share" : "Nom d'utilisateur comme nom de partage",
"URL" : "URL",
"Secure https://" : "Sécurisation https://",
- "SFTP with secret key login" : "SFTP avec un identifiant secret",
+ "SFTP with secret key login" : "SFTP avec identification par clé",
"Public key" : "Clef publique",
"Storage with id \"%i\" not found" : "Stockage avec l'id \"%i\" non trouvé",
"Invalid mount point" : "Point de montage non valide",
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Erreur lors de la configuration du stockage Google Drive",
"Personal" : "Personnel",
"System" : "Système",
+ "Enable encryption" : "Activer le chiffrement",
+ "Enable previews" : "Activer les prévisualisations",
+ "Check for changes" : "Rechercher les modifications",
+ "Never" : "Jamais",
+ "Once every direct access" : "Une fois à chaque accès direct",
+ "Every time the filesystem is used" : "Chaque fois que le système de fichiers est utilisé",
"All users. Type to select user or group." : "Tous les utilisateurs. Cliquez ici pour restreindre.",
"(group)" : "(groupe)",
"Saved" : "Sauvegardé",
diff --git a/apps/files_external/l10n/gl.js b/apps/files_external/l10n/gl.js
index 2c1b7b77b6f..9c46aa40b2d 100644
--- a/apps/files_external/l10n/gl.js
+++ b/apps/files_external/l10n/gl.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Produciuse un erro ao configurar o almacenamento en Google Drive",
"Personal" : "Persoal",
"System" : "Sistema",
+ "Enable encryption" : "Activar o cifrado",
+ "Enable previews" : "Activar as vistas previas",
+ "Check for changes" : "Comprobar se hai cambios",
+ "Never" : "Nunca",
+ "Once every direct access" : "Unha vez cada acceso directo",
+ "Every time the filesystem is used" : "Cada vez que se utiliza o sistema de ficheiros",
"All users. Type to select user or group." : "Todos os usuarios. Escriba para seleccionar usuario ou grupo.",
"(group)" : "(grupo)",
"Saved" : "Gardado",
diff --git a/apps/files_external/l10n/gl.json b/apps/files_external/l10n/gl.json
index dc4e151eebd..18069fcd2b8 100644
--- a/apps/files_external/l10n/gl.json
+++ b/apps/files_external/l10n/gl.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Produciuse un erro ao configurar o almacenamento en Google Drive",
"Personal" : "Persoal",
"System" : "Sistema",
+ "Enable encryption" : "Activar o cifrado",
+ "Enable previews" : "Activar as vistas previas",
+ "Check for changes" : "Comprobar se hai cambios",
+ "Never" : "Nunca",
+ "Once every direct access" : "Unha vez cada acceso directo",
+ "Every time the filesystem is used" : "Cada vez que se utiliza o sistema de ficheiros",
"All users. Type to select user or group." : "Todos os usuarios. Escriba para seleccionar usuario ou grupo.",
"(group)" : "(grupo)",
"Saved" : "Gardado",
diff --git a/apps/files_external/l10n/hy.js b/apps/files_external/l10n/hy.js
index 00c24e3f92a..2030a284acb 100644
--- a/apps/files_external/l10n/hy.js
+++ b/apps/files_external/l10n/hy.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"files_external",
{
+ "Personal" : "Անձնական",
"Delete" : "Ջնջել"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/hy.json b/apps/files_external/l10n/hy.json
index 081a2c5f49e..fa925e0854d 100644
--- a/apps/files_external/l10n/hy.json
+++ b/apps/files_external/l10n/hy.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Personal" : "Անձնական",
"Delete" : "Ջնջել"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js
index 81d243b12ae..ff582a863e9 100644
--- a/apps/files_external/l10n/id.js
+++ b/apps/files_external/l10n/id.js
@@ -53,6 +53,7 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Kesalahan dalam mengkonfigurasi penyimpanan Google Drive",
"Personal" : "Pribadi",
"System" : "Sistem",
+ "Enable encryption" : "Aktifkan enkripsi",
"All users. Type to select user or group." : "Semua pengguna. Ketik untuk memilih pengguna atau grup.",
"(group)" : "(grup)",
"Saved" : "Disimpan",
diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json
index b8acdedfd2d..2c1c450e9af 100644
--- a/apps/files_external/l10n/id.json
+++ b/apps/files_external/l10n/id.json
@@ -51,6 +51,7 @@
"Error configuring Google Drive storage" : "Kesalahan dalam mengkonfigurasi penyimpanan Google Drive",
"Personal" : "Pribadi",
"System" : "Sistem",
+ "Enable encryption" : "Aktifkan enkripsi",
"All users. Type to select user or group." : "Semua pengguna. Ketik untuk memilih pengguna atau grup.",
"(group)" : "(grup)",
"Saved" : "Disimpan",
diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js
index 72aba20087e..c5d46777cf8 100644
--- a/apps/files_external/l10n/it.js
+++ b/apps/files_external/l10n/it.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Errore durante la configurazione dell'archivio Google Drive",
"Personal" : "Personale",
"System" : "Sistema",
+ "Enable encryption" : "Abilita cifratura",
+ "Enable previews" : "Abilita le anteprime",
+ "Check for changes" : "Controlla le modifiche",
+ "Never" : "Mai",
+ "Once every direct access" : "Una volta per ogni accesso diretto",
+ "Every time the filesystem is used" : "Ogni volta che il filesystem viene utilizzato",
"All users. Type to select user or group." : "Tutti gli utenti. Digita per selezionare utente o gruppo.",
"(group)" : "(gruppo)",
"Saved" : "Salvato",
diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json
index d2549d790cd..6bda84a7e2d 100644
--- a/apps/files_external/l10n/it.json
+++ b/apps/files_external/l10n/it.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Errore durante la configurazione dell'archivio Google Drive",
"Personal" : "Personale",
"System" : "Sistema",
+ "Enable encryption" : "Abilita cifratura",
+ "Enable previews" : "Abilita le anteprime",
+ "Check for changes" : "Controlla le modifiche",
+ "Never" : "Mai",
+ "Once every direct access" : "Una volta per ogni accesso diretto",
+ "Every time the filesystem is used" : "Ogni volta che il filesystem viene utilizzato",
"All users. Type to select user or group." : "Tutti gli utenti. Digita per selezionare utente o gruppo.",
"(group)" : "(gruppo)",
"Saved" : "Salvato",
diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js
index cd50ae8c530..7abf8067b6d 100644
--- a/apps/files_external/l10n/ja.js
+++ b/apps/files_external/l10n/ja.js
@@ -53,6 +53,7 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Googleドライブストレージの設定エラー",
"Personal" : "個人",
"System" : "システム",
+ "Enable encryption" : "暗号化を有効に",
"All users. Type to select user or group." : "すべてのユーザー。ユーザー、グループを追加",
"(group)" : "(グループ)",
"Saved" : "保存されました",
diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json
index 81da7f57397..6da6fe15b12 100644
--- a/apps/files_external/l10n/ja.json
+++ b/apps/files_external/l10n/ja.json
@@ -51,6 +51,7 @@
"Error configuring Google Drive storage" : "Googleドライブストレージの設定エラー",
"Personal" : "個人",
"System" : "システム",
+ "Enable encryption" : "暗号化を有効に",
"All users. Type to select user or group." : "すべてのユーザー。ユーザー、グループを追加",
"(group)" : "(グループ)",
"Saved" : "保存されました",
diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js
index 61996d8ba27..79fe1e3f4bc 100644
--- a/apps/files_external/l10n/ko.js
+++ b/apps/files_external/l10n/ko.js
@@ -53,6 +53,7 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Google 드라이브 저장소 설정 오류",
"Personal" : "개인",
"System" : "시스템",
+ "Enable encryption" : "암호화 사용",
"All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오",
"(group)" : "(그룹)",
"Saved" : "저장됨",
diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json
index d0fabd105e1..ef286b2b347 100644
--- a/apps/files_external/l10n/ko.json
+++ b/apps/files_external/l10n/ko.json
@@ -51,6 +51,7 @@
"Error configuring Google Drive storage" : "Google 드라이브 저장소 설정 오류",
"Personal" : "개인",
"System" : "시스템",
+ "Enable encryption" : "암호화 사용",
"All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오",
"(group)" : "(그룹)",
"Saved" : "저장됨",
diff --git a/apps/files_external/l10n/nb_NO.js b/apps/files_external/l10n/nb_NO.js
index f120e34308a..9786647fb4a 100644
--- a/apps/files_external/l10n/nb_NO.js
+++ b/apps/files_external/l10n/nb_NO.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Feil med konfigurering av Google Drive",
"Personal" : "Personlig",
"System" : "System",
+ "Enable encryption" : "Aktiver kryptering",
+ "Enable previews" : "Tillat fohåndsvisning",
+ "Check for changes" : "Se etter endringer",
+ "Never" : "Aldri",
+ "Once every direct access" : "En gang pr. direkte aksess",
+ "Every time the filesystem is used" : "Hver gang filsystemet brukes",
"All users. Type to select user or group." : "Alle brukere. Tast for å velge bruker eller gruppe.",
"(group)" : "(gruppe)",
"Saved" : "Lagret",
diff --git a/apps/files_external/l10n/nb_NO.json b/apps/files_external/l10n/nb_NO.json
index 1ad6011fcf4..06f09c55182 100644
--- a/apps/files_external/l10n/nb_NO.json
+++ b/apps/files_external/l10n/nb_NO.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Feil med konfigurering av Google Drive",
"Personal" : "Personlig",
"System" : "System",
+ "Enable encryption" : "Aktiver kryptering",
+ "Enable previews" : "Tillat fohåndsvisning",
+ "Check for changes" : "Se etter endringer",
+ "Never" : "Aldri",
+ "Once every direct access" : "En gang pr. direkte aksess",
+ "Every time the filesystem is used" : "Hver gang filsystemet brukes",
"All users. Type to select user or group." : "Alle brukere. Tast for å velge bruker eller gruppe.",
"(group)" : "(gruppe)",
"Saved" : "Lagret",
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index 0b209d2ec37..dbfdb3bef6a 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Fout tijdens het configureren van Google Drive opslag",
"Personal" : "Persoonlijk",
"System" : "Systeem",
+ "Enable encryption" : "Versleuteling inschakelen",
+ "Enable previews" : "Activeren voorbeelden",
+ "Check for changes" : "Controleren op wijzigingen",
+ "Never" : "Nooit",
+ "Once every direct access" : "Een keer bij elke directe toegang",
+ "Every time the filesystem is used" : "Elke keer bij gebruik bestandssysteem",
"All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.",
"(group)" : "(groep)",
"Saved" : "Bewaard",
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index b5a6215f708..b3912b38a18 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Fout tijdens het configureren van Google Drive opslag",
"Personal" : "Persoonlijk",
"System" : "Systeem",
+ "Enable encryption" : "Versleuteling inschakelen",
+ "Enable previews" : "Activeren voorbeelden",
+ "Check for changes" : "Controleren op wijzigingen",
+ "Never" : "Nooit",
+ "Once every direct access" : "Een keer bij elke directe toegang",
+ "Every time the filesystem is used" : "Elke keer bij gebruik bestandssysteem",
"All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.",
"(group)" : "(groep)",
"Saved" : "Bewaard",
diff --git a/apps/files_external/l10n/oc.js b/apps/files_external/l10n/oc.js
index 230da341a28..590e6185bdc 100644
--- a/apps/files_external/l10n/oc.js
+++ b/apps/files_external/l10n/oc.js
@@ -1,14 +1,82 @@
OC.L10N.register(
"files_external",
{
- "Location" : "Plaça",
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La recuperacion dels getons d’autentificacion a fracassat. Verificatz vòstra clau d'aplicacion Dropbox amai lo senhal.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La requèsta d’accès als getons d’autentificacion a fracassat. Verificatz vòstra App-Key Dropbox amai lo senhal.",
+ "Please provide a valid Dropbox app key and secret." : "Provesissètz una clau d'aplicacion (app key) amai un senhal valids.",
+ "Step 1 failed. Exception: %s" : "L’etapa 1 a fracassat. Error : %s",
+ "Step 2 failed. Exception: %s" : "L’etapa 2 a fracassat. Error : %s",
+ "External storage" : "Emmagazinatge extèrne",
+ "Local" : "Local",
+ "Location" : "Emplaçament",
+ "Amazon S3" : "Amazon S3",
+ "Key" : "Clau",
+ "Secret" : "Secret",
+ "Bucket" : "Bucket",
+ "Amazon S3 and compliant" : "Amazon S3 e compatibles",
+ "Access Key" : "Clau d'accès",
+ "Secret Key" : "Clau secreta",
+ "Hostname" : "Nom de l'òste",
+ "Port" : "Pòrt",
+ "Region" : "Region",
+ "Enable SSL" : "Activar SSL",
+ "Enable Path Style" : "Accès per path",
+ "App key" : "App key",
+ "App secret" : "App secret",
"Host" : "Òste",
- "Username" : "Non d'usancièr",
+ "Username" : "Nom d'utilizaire",
"Password" : "Senhal",
- "Share" : "Parteja",
+ "Remote subfolder" : "Sosdorsièr distant",
+ "Secure ftps://" : "Securizacion ftps://",
+ "Client ID" : "ID Client",
+ "Client secret" : "Secret client",
+ "OpenStack Object Storage" : "OpenStack Object Storage",
+ "Region (optional for OpenStack Object Storage)" : "Region (opcional per OpenStack Object Storage)",
+ "API Key (required for Rackspace Cloud Files)" : "Clau API (requesit per Rackspace Cloud Files)",
+ "Tenantname (required for OpenStack Object Storage)" : "Nom del locatari (requesit per l'emmagazinatge OpenStack)",
+ "Password (required for OpenStack Object Storage)" : "Senhal (requesit per OpenStack Object Storage)",
+ "Service Name (required for OpenStack Object Storage)" : "Nom del servici (requesit per l'emmagazinatge OpenStack)",
+ "URL of identity endpoint (required for OpenStack Object Storage)" : "URL del punt d'accès d'identitat (requesit per l'emmagazinatge OpenStack)",
+ "Timeout of HTTP requests in seconds" : "Relmabi d'espèra maximal de las requèstas HTTP en segondas",
+ "Share" : "Partejar",
+ "SMB / CIFS using OC login" : "SMB / CIFS en utilizant los identificants OC",
+ "Username as share" : "Nom d'utilizaire coma nom de partiment",
"URL" : "URL",
+ "Secure https://" : "Securizacion https://",
+ "SFTP with secret key login" : "SFTP amb un identificant secret",
+ "Public key" : "Clau publica",
+ "Storage with id \"%i\" not found" : "Emmagazinatge amb l'id \"%i\" pas trobat",
+ "Invalid mount point" : "Punt de montatge invalid",
+ "Invalid storage backend \"%s\"" : "Servici d'emmagazinatge invalid : \"%s\"",
+ "Access granted" : "Accès autorizat",
+ "Error configuring Dropbox storage" : "Error al moment de la configuracion de l'emmagazinatge Dropbox",
+ "Grant access" : "Autorizar l'accès",
+ "Error configuring Google Drive storage" : "Error al moment de la configuracion de l'emmagazinatge Google Drive",
"Personal" : "Personal",
+ "System" : "Sistèma",
+ "Enable encryption" : "Activar lo chiframent",
+ "(group)" : "(grop)",
+ "Saved" : "Salvat",
+ "Generate keys" : "Generar de claus",
+ "Error generating key pair" : "Error al moment de la generacion de las claus",
+ "<b>Note:</b> " : "<b>Atencion :</b>",
+ "and" : " e ",
+ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion :</b> La presa en carga de cURL per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
+ "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> La presa en carga del FTP per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
+ "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> \"%s\" es pas installat. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
+ "No external storage configured" : "Aucun emmagazinatge externe configurat",
+ "You can add external storages in the personal settings" : "Podètz apondre des emmagazinatges externes dins los paramètres personals",
"Name" : "Nom",
- "Delete" : "Escafa"
+ "Storage type" : "Tipe d'emmagazinatge",
+ "Scope" : "Portada",
+ "External Storage" : "Emmagazinatge externe",
+ "Folder name" : "Nom del dorsièr",
+ "Configuration" : "Configuracion",
+ "Available for" : "Disponible per",
+ "Add storage" : "Apondre un supòrt d'emmagazinatge",
+ "Advanced settings" : "Paramètres avançats",
+ "Delete" : "Suprimir",
+ "Enable User External Storage" : "Autorizar los utilizaires a apondre d'emmagazinatges extèrnes",
+ "Allow users to mount the following external storage" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes seguents"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_external/l10n/oc.json b/apps/files_external/l10n/oc.json
index 66a250b2305..1696dfa56a9 100644
--- a/apps/files_external/l10n/oc.json
+++ b/apps/files_external/l10n/oc.json
@@ -1,12 +1,80 @@
{ "translations": {
- "Location" : "Plaça",
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "La recuperacion dels getons d’autentificacion a fracassat. Verificatz vòstra clau d'aplicacion Dropbox amai lo senhal.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "La requèsta d’accès als getons d’autentificacion a fracassat. Verificatz vòstra App-Key Dropbox amai lo senhal.",
+ "Please provide a valid Dropbox app key and secret." : "Provesissètz una clau d'aplicacion (app key) amai un senhal valids.",
+ "Step 1 failed. Exception: %s" : "L’etapa 1 a fracassat. Error : %s",
+ "Step 2 failed. Exception: %s" : "L’etapa 2 a fracassat. Error : %s",
+ "External storage" : "Emmagazinatge extèrne",
+ "Local" : "Local",
+ "Location" : "Emplaçament",
+ "Amazon S3" : "Amazon S3",
+ "Key" : "Clau",
+ "Secret" : "Secret",
+ "Bucket" : "Bucket",
+ "Amazon S3 and compliant" : "Amazon S3 e compatibles",
+ "Access Key" : "Clau d'accès",
+ "Secret Key" : "Clau secreta",
+ "Hostname" : "Nom de l'òste",
+ "Port" : "Pòrt",
+ "Region" : "Region",
+ "Enable SSL" : "Activar SSL",
+ "Enable Path Style" : "Accès per path",
+ "App key" : "App key",
+ "App secret" : "App secret",
"Host" : "Òste",
- "Username" : "Non d'usancièr",
+ "Username" : "Nom d'utilizaire",
"Password" : "Senhal",
- "Share" : "Parteja",
+ "Remote subfolder" : "Sosdorsièr distant",
+ "Secure ftps://" : "Securizacion ftps://",
+ "Client ID" : "ID Client",
+ "Client secret" : "Secret client",
+ "OpenStack Object Storage" : "OpenStack Object Storage",
+ "Region (optional for OpenStack Object Storage)" : "Region (opcional per OpenStack Object Storage)",
+ "API Key (required for Rackspace Cloud Files)" : "Clau API (requesit per Rackspace Cloud Files)",
+ "Tenantname (required for OpenStack Object Storage)" : "Nom del locatari (requesit per l'emmagazinatge OpenStack)",
+ "Password (required for OpenStack Object Storage)" : "Senhal (requesit per OpenStack Object Storage)",
+ "Service Name (required for OpenStack Object Storage)" : "Nom del servici (requesit per l'emmagazinatge OpenStack)",
+ "URL of identity endpoint (required for OpenStack Object Storage)" : "URL del punt d'accès d'identitat (requesit per l'emmagazinatge OpenStack)",
+ "Timeout of HTTP requests in seconds" : "Relmabi d'espèra maximal de las requèstas HTTP en segondas",
+ "Share" : "Partejar",
+ "SMB / CIFS using OC login" : "SMB / CIFS en utilizant los identificants OC",
+ "Username as share" : "Nom d'utilizaire coma nom de partiment",
"URL" : "URL",
+ "Secure https://" : "Securizacion https://",
+ "SFTP with secret key login" : "SFTP amb un identificant secret",
+ "Public key" : "Clau publica",
+ "Storage with id \"%i\" not found" : "Emmagazinatge amb l'id \"%i\" pas trobat",
+ "Invalid mount point" : "Punt de montatge invalid",
+ "Invalid storage backend \"%s\"" : "Servici d'emmagazinatge invalid : \"%s\"",
+ "Access granted" : "Accès autorizat",
+ "Error configuring Dropbox storage" : "Error al moment de la configuracion de l'emmagazinatge Dropbox",
+ "Grant access" : "Autorizar l'accès",
+ "Error configuring Google Drive storage" : "Error al moment de la configuracion de l'emmagazinatge Google Drive",
"Personal" : "Personal",
+ "System" : "Sistèma",
+ "Enable encryption" : "Activar lo chiframent",
+ "(group)" : "(grop)",
+ "Saved" : "Salvat",
+ "Generate keys" : "Generar de claus",
+ "Error generating key pair" : "Error al moment de la generacion de las claus",
+ "<b>Note:</b> " : "<b>Atencion :</b>",
+ "and" : " e ",
+ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion :</b> La presa en carga de cURL per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
+ "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> La presa en carga del FTP per PHP es pas activada o installada. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
+ "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Atencion : </b> \"%s\" es pas installat. Lo montatge de %s es pas possible. Contactatz vòstre administrator sistèma per l'installar.",
+ "No external storage configured" : "Aucun emmagazinatge externe configurat",
+ "You can add external storages in the personal settings" : "Podètz apondre des emmagazinatges externes dins los paramètres personals",
"Name" : "Nom",
- "Delete" : "Escafa"
+ "Storage type" : "Tipe d'emmagazinatge",
+ "Scope" : "Portada",
+ "External Storage" : "Emmagazinatge externe",
+ "Folder name" : "Nom del dorsièr",
+ "Configuration" : "Configuracion",
+ "Available for" : "Disponible per",
+ "Add storage" : "Apondre un supòrt d'emmagazinatge",
+ "Advanced settings" : "Paramètres avançats",
+ "Delete" : "Suprimir",
+ "Enable User External Storage" : "Autorizar los utilizaires a apondre d'emmagazinatges extèrnes",
+ "Allow users to mount the following external storage" : "Autorizar los utilizaires a montar los emmagazinatges extèrnes seguents"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/pl.js b/apps/files_external/l10n/pl.js
index 451e483e520..1c580075d61 100644
--- a/apps/files_external/l10n/pl.js
+++ b/apps/files_external/l10n/pl.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"Username as share" : "Użytkownik jako zasób",
"URL" : "URL",
"Secure https://" : "Bezpieczny https://",
+ "SFTP with secret key login" : "Logowanie tajnym kluczem do SFTP",
"Public key" : "Klucz publiczny",
"Storage with id \"%i\" not found" : "Id magazynu nie został znaleziony",
"Invalid mount point" : "Nieprawidłowy punkt montowania",
@@ -53,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Wystąpił błąd podczas konfigurowania zasobu Google Drive",
"Personal" : "Osobiste",
"System" : "System",
+ "Enable encryption" : "Włącz szyfrowanie",
+ "Enable previews" : "Włącz podgląd",
+ "Check for changes" : "Sprawdź zmiany",
+ "Never" : "Nigdy",
+ "Once every direct access" : "Jeden raz przy każdym dostępie",
+ "Every time the filesystem is used" : "Każdorazowo, kiedy system plików jest w użyciu",
"All users. Type to select user or group." : "Wszyscy użytkownicy. Zacznij pisać, aby wybrać użytkownika lub grupę.",
"(group)" : "(grupa)",
"Saved" : "Zapisano",
diff --git a/apps/files_external/l10n/pl.json b/apps/files_external/l10n/pl.json
index b8e707d401a..dee33026ca6 100644
--- a/apps/files_external/l10n/pl.json
+++ b/apps/files_external/l10n/pl.json
@@ -41,6 +41,7 @@
"Username as share" : "Użytkownik jako zasób",
"URL" : "URL",
"Secure https://" : "Bezpieczny https://",
+ "SFTP with secret key login" : "Logowanie tajnym kluczem do SFTP",
"Public key" : "Klucz publiczny",
"Storage with id \"%i\" not found" : "Id magazynu nie został znaleziony",
"Invalid mount point" : "Nieprawidłowy punkt montowania",
@@ -51,6 +52,12 @@
"Error configuring Google Drive storage" : "Wystąpił błąd podczas konfigurowania zasobu Google Drive",
"Personal" : "Osobiste",
"System" : "System",
+ "Enable encryption" : "Włącz szyfrowanie",
+ "Enable previews" : "Włącz podgląd",
+ "Check for changes" : "Sprawdź zmiany",
+ "Never" : "Nigdy",
+ "Once every direct access" : "Jeden raz przy każdym dostępie",
+ "Every time the filesystem is used" : "Każdorazowo, kiedy system plików jest w użyciu",
"All users. Type to select user or group." : "Wszyscy użytkownicy. Zacznij pisać, aby wybrać użytkownika lub grupę.",
"(group)" : "(grupa)",
"Saved" : "Zapisano",
diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js
index d1036957f99..c05f2089536 100644
--- a/apps/files_external/l10n/pt_BR.js
+++ b/apps/files_external/l10n/pt_BR.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Erro ao configurar armazenamento do Google Drive",
"Personal" : "Pessoal",
"System" : "Sistema",
+ "Enable encryption" : "Ativar criptografia",
+ "Enable previews" : "Habilitar visualizações prévias",
+ "Check for changes" : "Verifique se há alterações",
+ "Never" : "Nunca",
+ "Once every direct access" : "Uma vez a cada acesso direto",
+ "Every time the filesystem is used" : "Toda vez que o sistema de arquivos é usado",
"All users. Type to select user or group." : "Todos os usuários. Digite para selecionar usuário ou grupo.",
"(group)" : "(grupo)",
"Saved" : "Salvo",
diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json
index e6dcc5bd03a..92423280fca 100644
--- a/apps/files_external/l10n/pt_BR.json
+++ b/apps/files_external/l10n/pt_BR.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Erro ao configurar armazenamento do Google Drive",
"Personal" : "Pessoal",
"System" : "Sistema",
+ "Enable encryption" : "Ativar criptografia",
+ "Enable previews" : "Habilitar visualizações prévias",
+ "Check for changes" : "Verifique se há alterações",
+ "Never" : "Nunca",
+ "Once every direct access" : "Uma vez a cada acesso direto",
+ "Every time the filesystem is used" : "Toda vez que o sistema de arquivos é usado",
"All users. Type to select user or group." : "Todos os usuários. Digite para selecionar usuário ou grupo.",
"(group)" : "(grupo)",
"Saved" : "Salvo",
diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js
index aafb4b36551..32db7c48d55 100644
--- a/apps/files_external/l10n/ru.js
+++ b/apps/files_external/l10n/ru.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"Username as share" : "Имя пользователя в качестве имени общего ресурса",
"URL" : "Ссылка",
"Secure https://" : "Безопасный https://",
+ "SFTP with secret key login" : "SFTP с помощью секретного ключа",
"Public key" : "Открытый ключ",
"Storage with id \"%i\" not found" : "Хранилище с идентификатором \"%i\" не найдено",
"Invalid mount point" : "Неправильная точка входа",
@@ -53,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Ошибка при настройке хранилища Google Drive",
"Personal" : "Личное",
"System" : "Система",
+ "Enable encryption" : "Включить шифрование",
+ "Enable previews" : "Включить предпросмотр",
+ "Check for changes" : "Проверять изменения",
+ "Never" : "Никогда",
+ "Once every direct access" : "Один раз при прямом доступе",
+ "Every time the filesystem is used" : "Каждый раз при обращении к файловой системе",
"All users. Type to select user or group." : "Все пользователи. Введите имя пользователя или группы.",
"(group)" : "(группа)",
"Saved" : "Сохранено",
diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json
index b01779e83d1..8966cac2221 100644
--- a/apps/files_external/l10n/ru.json
+++ b/apps/files_external/l10n/ru.json
@@ -41,6 +41,7 @@
"Username as share" : "Имя пользователя в качестве имени общего ресурса",
"URL" : "Ссылка",
"Secure https://" : "Безопасный https://",
+ "SFTP with secret key login" : "SFTP с помощью секретного ключа",
"Public key" : "Открытый ключ",
"Storage with id \"%i\" not found" : "Хранилище с идентификатором \"%i\" не найдено",
"Invalid mount point" : "Неправильная точка входа",
@@ -51,6 +52,12 @@
"Error configuring Google Drive storage" : "Ошибка при настройке хранилища Google Drive",
"Personal" : "Личное",
"System" : "Система",
+ "Enable encryption" : "Включить шифрование",
+ "Enable previews" : "Включить предпросмотр",
+ "Check for changes" : "Проверять изменения",
+ "Never" : "Никогда",
+ "Once every direct access" : "Один раз при прямом доступе",
+ "Every time the filesystem is used" : "Каждый раз при обращении к файловой системе",
"All users. Type to select user or group." : "Все пользователи. Введите имя пользователя или группы.",
"(group)" : "(группа)",
"Saved" : "Сохранено",
diff --git a/apps/files_external/l10n/sr.js b/apps/files_external/l10n/sr.js
index b321445fefa..1609ac0191c 100644
--- a/apps/files_external/l10n/sr.js
+++ b/apps/files_external/l10n/sr.js
@@ -54,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Грешка при подешавању Гугл диск складишта",
"Personal" : "Лично",
"System" : "Систем",
+ "Enable encryption" : "Укључи шифровање",
+ "Enable previews" : "Укључи прегледе",
+ "Check for changes" : "Провери измене",
+ "Never" : "никад",
+ "Once every direct access" : "једном при сваком директном приступу",
+ "Every time the filesystem is used" : "сваки пут кад се фајл-систем користи",
"All users. Type to select user or group." : "Сви корисници. Куцајте за избор корисника или групе.",
"(group)" : "(група)",
"Saved" : "Сачувано",
diff --git a/apps/files_external/l10n/sr.json b/apps/files_external/l10n/sr.json
index 3ae53ba8409..b6a85b1e1b7 100644
--- a/apps/files_external/l10n/sr.json
+++ b/apps/files_external/l10n/sr.json
@@ -52,6 +52,12 @@
"Error configuring Google Drive storage" : "Грешка при подешавању Гугл диск складишта",
"Personal" : "Лично",
"System" : "Систем",
+ "Enable encryption" : "Укључи шифровање",
+ "Enable previews" : "Укључи прегледе",
+ "Check for changes" : "Провери измене",
+ "Never" : "никад",
+ "Once every direct access" : "једном при сваком директном приступу",
+ "Every time the filesystem is used" : "сваки пут кад се фајл-систем користи",
"All users. Type to select user or group." : "Сви корисници. Куцајте за избор корисника или групе.",
"(group)" : "(група)",
"Saved" : "Сачувано",
diff --git a/apps/files_external/l10n/th_TH.js b/apps/files_external/l10n/th_TH.js
index 70646a59a02..ba2271f5f89 100644
--- a/apps/files_external/l10n/th_TH.js
+++ b/apps/files_external/l10n/th_TH.js
@@ -1,26 +1,88 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "ร้องขอโทเค็นล้มเหลว กรุณาตรวจสอบแอพฯคีย์และ Secret ของ Dropbox ของคุณว่าถูกต้องหรือไม่",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "โทเค็นการเข้าถึงล้มเหลว กรุณาตรวจสอบแอพฯคีย์และ Secret ของ Dropbox ของคุณว่าถูกต้องหรือไม่",
"Please provide a valid Dropbox app key and secret." : "กรุณากรอกรหัส app key ของ Dropbox และรหัสลับ",
+ "Step 1 failed. Exception: %s" : "ขั้นตอนที่ 1 ล้มเหลว ข้อยกเว้น: %s",
+ "Step 2 failed. Exception: %s" : "ขั้นตอนที่ 2 ล้มเหลว ข้อยกเว้น: %s",
+ "External storage" : "จัดเก็บข้อมูลภายนอก",
+ "Local" : "ต้นทาง",
"Location" : "ตำแหน่งที่อยู่",
+ "Amazon S3" : "Amazon S3",
+ "Key" : "รหัส",
+ "Secret" : "Secret",
+ "Bucket" : "Bucket",
+ "Amazon S3 and compliant" : "Amazon S3 และ Compliant",
+ "Access Key" : "รหัสการเข้าถึง",
+ "Secret Key" : "รหัสลับ",
+ "Hostname" : "ชื่อโฮสต์",
"Port" : "พอร์ต",
"Region" : "พื้นที่",
+ "Enable SSL" : "เปิดใช้งาน SSL",
+ "Enable Path Style" : "เปิดใช้งานสไตล์เส้นทาง",
+ "App key" : "App key",
+ "App secret" : "App secret",
"Host" : "โฮสต์",
"Username" : "ชื่อผู้ใช้งาน",
"Password" : "รหัสผ่าน",
+ "Remote subfolder" : "โฟลเดอร์ย่อยระยะไกล",
+ "Secure ftps://" : "โหมดปลอดภัย ftps://",
+ "Client ID" : "Client ID",
+ "Client secret" : "Client secret",
+ "OpenStack Object Storage" : "OpenStack Object Storage",
+ "Region (optional for OpenStack Object Storage)" : "ภูมิภาค (จำเป็นสำหรับ OpenStack Object Storage)",
+ "API Key (required for Rackspace Cloud Files)" : "API Key (จำเป็นสำหรับ Rackspace Cloud Files)",
+ "Tenantname (required for OpenStack Object Storage)" : "ชื่อผู้เช่า (จำเป็นสำหรับ OpenStack Object Storage)",
+ "Password (required for OpenStack Object Storage)" : "รหัสผ่าน (ที่จำเป็นสำหรับ OpenStack Object Storage)",
+ "Service Name (required for OpenStack Object Storage)" : "ชื่อบริการ (จำเป็นสำหรับ OpenStack Object Storage)",
+ "URL of identity endpoint (required for OpenStack Object Storage)" : "ตัวตนของ URL ปลายทาง (จำเป็นสำหรับ OpenStack Object Storage)",
+ "Timeout of HTTP requests in seconds" : "หมดเวลาของการร้องขอ HTTP ในไม่กี่วินาที",
"Share" : "แชร์",
+ "SMB / CIFS using OC login" : "SMB/CIFS กำลังใช้ OC เข้าสู่ระบบ",
+ "Username as share" : "ชื่อผู้ใช้ที่แชร์",
"URL" : "URL",
+ "Secure https://" : "โหมดปลอดภัย https://",
+ "SFTP with secret key login" : "SFTP กับคีย์ลับสำหรับเข้าสู่ระบบ",
+ "Public key" : "คีย์สาธารณะ",
+ "Storage with id \"%i\" not found" : "ไม่พบจัดการเก็บข้อมูลของ ID \"%i\"",
+ "Invalid mount point" : "จุดเชื่อมต่อที่ไม่ถูกต้อง",
+ "Invalid storage backend \"%s\"" : "การจัดเก็บข้อมูลแบ็กเอนด์ไม่ถูกต้อง \"%s\"",
"Access granted" : "การเข้าถึงได้รับอนุญาตแล้ว",
"Error configuring Dropbox storage" : "เกิดข้อผิดพลาดในการกำหนดค่าพื้นที่จัดเก็บข้อมูล Dropbox",
"Grant access" : "อนุญาตให้เข้าถึงได้",
"Error configuring Google Drive storage" : "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive",
"Personal" : "ส่วนตัว",
+ "System" : "ระบบ",
+ "Enable encryption" : "เปิดใช้งานการเข้ารหัส",
+ "Enable previews" : "เปิดใช้งานการแสดงตัวอย่าง",
+ "Check for changes" : "ตรวจสอบการเปลี่ยนแปลง",
+ "Never" : "ไม่เคย",
+ "Once every direct access" : "เมื่อทุกคนเข้าถึงโดยตรง",
+ "Every time the filesystem is used" : "ทุกครั้งที่แฟ้มระบบถูกใช้งาน",
+ "All users. Type to select user or group." : "ผู้ใช้ทุกคน พิมพ์เพื่อเลือกผู้ใช้หรือกลุ่ม",
+ "(group)" : "(กลุ่ม)",
"Saved" : "บันทึกแล้ว",
+ "Generate keys" : "สร้างคีย์",
+ "Error generating key pair" : "ข้อผิดพลาดในการสร้างคีย์แบบเป็นคู่",
+ "<b>Note:</b> " : "<b>หมายเหตุ:</b>",
+ "and" : "และ",
+ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>หมายเหตุ:</b> การสนับสนุน cURL ใน PHP ไม่ได้เปิดใช้งานหรือติดตั้ง %s เป็นไปไม่ได้ กรุณาขอให้ผู้ดูแลระบบของคุณติดตั้งมัน",
+ "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>หมายเหตุ:</b> การสนับสนุน FTP ใน PHP ไม่ได้เปิดใช้งานหรือติดตั้ง %s เป็นไปไม่ได้ กรุณาขอให้ผู้ดูแลระบบของคุณติดตั้งมัน",
+ "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>หมายเหตุ:</b> %s ไม่ได้ติดตั้ง การติดตั้ง %s เป็นไปไม่ได้ กรุณาขอให้ผู้ดูแลระบบของคุณติดตั้งมัน",
+ "No external storage configured" : "ไม่มีการกำหนดค่าจัดเก็บข้อมูลภายนอก",
+ "You can add external storages in the personal settings" : "คุณสามารถเพิ่มการเก็บรักษาภายนอกในการตั้งค่าส่วนบุคคล",
"Name" : "ชื่อ",
+ "Storage type" : "ชนิดการจัดเก็บข้อมูล",
+ "Scope" : "ขอบเขต",
"External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก",
"Folder name" : "ชื่อโฟลเดอร์",
"Configuration" : "การกำหนดค่า",
+ "Available for" : "สามารถใช้ได้สำหรับ",
+ "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล",
+ "Advanced settings" : "ตั้งค่าขั้นสูง",
"Delete" : "ลบ",
- "Enable User External Storage" : "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้"
+ "Enable User External Storage" : "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้",
+ "Allow users to mount the following external storage" : "อนุญาตให้ผู้ใช้ติดตั้งจัดเก็บข้อมูลภายนอกต่อไปนี้"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_external/l10n/th_TH.json b/apps/files_external/l10n/th_TH.json
index a69043a0c55..957cc5570c6 100644
--- a/apps/files_external/l10n/th_TH.json
+++ b/apps/files_external/l10n/th_TH.json
@@ -1,24 +1,86 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "ร้องขอโทเค็นล้มเหลว กรุณาตรวจสอบแอพฯคีย์และ Secret ของ Dropbox ของคุณว่าถูกต้องหรือไม่",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "โทเค็นการเข้าถึงล้มเหลว กรุณาตรวจสอบแอพฯคีย์และ Secret ของ Dropbox ของคุณว่าถูกต้องหรือไม่",
"Please provide a valid Dropbox app key and secret." : "กรุณากรอกรหัส app key ของ Dropbox และรหัสลับ",
+ "Step 1 failed. Exception: %s" : "ขั้นตอนที่ 1 ล้มเหลว ข้อยกเว้น: %s",
+ "Step 2 failed. Exception: %s" : "ขั้นตอนที่ 2 ล้มเหลว ข้อยกเว้น: %s",
+ "External storage" : "จัดเก็บข้อมูลภายนอก",
+ "Local" : "ต้นทาง",
"Location" : "ตำแหน่งที่อยู่",
+ "Amazon S3" : "Amazon S3",
+ "Key" : "รหัส",
+ "Secret" : "Secret",
+ "Bucket" : "Bucket",
+ "Amazon S3 and compliant" : "Amazon S3 และ Compliant",
+ "Access Key" : "รหัสการเข้าถึง",
+ "Secret Key" : "รหัสลับ",
+ "Hostname" : "ชื่อโฮสต์",
"Port" : "พอร์ต",
"Region" : "พื้นที่",
+ "Enable SSL" : "เปิดใช้งาน SSL",
+ "Enable Path Style" : "เปิดใช้งานสไตล์เส้นทาง",
+ "App key" : "App key",
+ "App secret" : "App secret",
"Host" : "โฮสต์",
"Username" : "ชื่อผู้ใช้งาน",
"Password" : "รหัสผ่าน",
+ "Remote subfolder" : "โฟลเดอร์ย่อยระยะไกล",
+ "Secure ftps://" : "โหมดปลอดภัย ftps://",
+ "Client ID" : "Client ID",
+ "Client secret" : "Client secret",
+ "OpenStack Object Storage" : "OpenStack Object Storage",
+ "Region (optional for OpenStack Object Storage)" : "ภูมิภาค (จำเป็นสำหรับ OpenStack Object Storage)",
+ "API Key (required for Rackspace Cloud Files)" : "API Key (จำเป็นสำหรับ Rackspace Cloud Files)",
+ "Tenantname (required for OpenStack Object Storage)" : "ชื่อผู้เช่า (จำเป็นสำหรับ OpenStack Object Storage)",
+ "Password (required for OpenStack Object Storage)" : "รหัสผ่าน (ที่จำเป็นสำหรับ OpenStack Object Storage)",
+ "Service Name (required for OpenStack Object Storage)" : "ชื่อบริการ (จำเป็นสำหรับ OpenStack Object Storage)",
+ "URL of identity endpoint (required for OpenStack Object Storage)" : "ตัวตนของ URL ปลายทาง (จำเป็นสำหรับ OpenStack Object Storage)",
+ "Timeout of HTTP requests in seconds" : "หมดเวลาของการร้องขอ HTTP ในไม่กี่วินาที",
"Share" : "แชร์",
+ "SMB / CIFS using OC login" : "SMB/CIFS กำลังใช้ OC เข้าสู่ระบบ",
+ "Username as share" : "ชื่อผู้ใช้ที่แชร์",
"URL" : "URL",
+ "Secure https://" : "โหมดปลอดภัย https://",
+ "SFTP with secret key login" : "SFTP กับคีย์ลับสำหรับเข้าสู่ระบบ",
+ "Public key" : "คีย์สาธารณะ",
+ "Storage with id \"%i\" not found" : "ไม่พบจัดการเก็บข้อมูลของ ID \"%i\"",
+ "Invalid mount point" : "จุดเชื่อมต่อที่ไม่ถูกต้อง",
+ "Invalid storage backend \"%s\"" : "การจัดเก็บข้อมูลแบ็กเอนด์ไม่ถูกต้อง \"%s\"",
"Access granted" : "การเข้าถึงได้รับอนุญาตแล้ว",
"Error configuring Dropbox storage" : "เกิดข้อผิดพลาดในการกำหนดค่าพื้นที่จัดเก็บข้อมูล Dropbox",
"Grant access" : "อนุญาตให้เข้าถึงได้",
"Error configuring Google Drive storage" : "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive",
"Personal" : "ส่วนตัว",
+ "System" : "ระบบ",
+ "Enable encryption" : "เปิดใช้งานการเข้ารหัส",
+ "Enable previews" : "เปิดใช้งานการแสดงตัวอย่าง",
+ "Check for changes" : "ตรวจสอบการเปลี่ยนแปลง",
+ "Never" : "ไม่เคย",
+ "Once every direct access" : "เมื่อทุกคนเข้าถึงโดยตรง",
+ "Every time the filesystem is used" : "ทุกครั้งที่แฟ้มระบบถูกใช้งาน",
+ "All users. Type to select user or group." : "ผู้ใช้ทุกคน พิมพ์เพื่อเลือกผู้ใช้หรือกลุ่ม",
+ "(group)" : "(กลุ่ม)",
"Saved" : "บันทึกแล้ว",
+ "Generate keys" : "สร้างคีย์",
+ "Error generating key pair" : "ข้อผิดพลาดในการสร้างคีย์แบบเป็นคู่",
+ "<b>Note:</b> " : "<b>หมายเหตุ:</b>",
+ "and" : "และ",
+ "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>หมายเหตุ:</b> การสนับสนุน cURL ใน PHP ไม่ได้เปิดใช้งานหรือติดตั้ง %s เป็นไปไม่ได้ กรุณาขอให้ผู้ดูแลระบบของคุณติดตั้งมัน",
+ "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>หมายเหตุ:</b> การสนับสนุน FTP ใน PHP ไม่ได้เปิดใช้งานหรือติดตั้ง %s เป็นไปไม่ได้ กรุณาขอให้ผู้ดูแลระบบของคุณติดตั้งมัน",
+ "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>หมายเหตุ:</b> %s ไม่ได้ติดตั้ง การติดตั้ง %s เป็นไปไม่ได้ กรุณาขอให้ผู้ดูแลระบบของคุณติดตั้งมัน",
+ "No external storage configured" : "ไม่มีการกำหนดค่าจัดเก็บข้อมูลภายนอก",
+ "You can add external storages in the personal settings" : "คุณสามารถเพิ่มการเก็บรักษาภายนอกในการตั้งค่าส่วนบุคคล",
"Name" : "ชื่อ",
+ "Storage type" : "ชนิดการจัดเก็บข้อมูล",
+ "Scope" : "ขอบเขต",
"External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก",
"Folder name" : "ชื่อโฟลเดอร์",
"Configuration" : "การกำหนดค่า",
+ "Available for" : "สามารถใช้ได้สำหรับ",
+ "Add storage" : "เพิ่มพื้นที่จัดเก็บข้อมูล",
+ "Advanced settings" : "ตั้งค่าขั้นสูง",
"Delete" : "ลบ",
- "Enable User External Storage" : "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้"
+ "Enable User External Storage" : "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้",
+ "Allow users to mount the following external storage" : "อนุญาตให้ผู้ใช้ติดตั้งจัดเก็บข้อมูลภายนอกต่อไปนี้"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/tr.js b/apps/files_external/l10n/tr.js
index 3845e0fd97b..afd80de3b6a 100644
--- a/apps/files_external/l10n/tr.js
+++ b/apps/files_external/l10n/tr.js
@@ -43,6 +43,7 @@ OC.L10N.register(
"Username as share" : "Paylaşım olarak kullanıcı adı",
"URL" : "URL",
"Secure https://" : "Güvenli https://",
+ "SFTP with secret key login" : "Gizli anahtar oturumu ile SFTP",
"Public key" : "Ortak anahtar",
"Storage with id \"%i\" not found" : "\"%i\" kimliği ile bir depolama bulunamadı",
"Invalid mount point" : "Geçersiz bağlama noktası",
@@ -53,6 +54,12 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Google Drive depo yapılandırma hatası",
"Personal" : "Kişisel",
"System" : "Sistem",
+ "Enable encryption" : "Şifrelemeyi aç",
+ "Enable previews" : "Önizlemeleri aç",
+ "Check for changes" : "Değişiklikleri denetle",
+ "Never" : "Daha yeni",
+ "Once every direct access" : "Her doğrudan erişimde bir kez",
+ "Every time the filesystem is used" : "Dosya sistemi her kullanıldığında",
"All users. Type to select user or group." : "Tüm kullanıcılar. Kullanıcı veya grup seçmek için yazın.",
"(group)" : "(grup)",
"Saved" : "Kaydedildi",
diff --git a/apps/files_external/l10n/tr.json b/apps/files_external/l10n/tr.json
index 67af4f8d67d..07fa89651d2 100644
--- a/apps/files_external/l10n/tr.json
+++ b/apps/files_external/l10n/tr.json
@@ -41,6 +41,7 @@
"Username as share" : "Paylaşım olarak kullanıcı adı",
"URL" : "URL",
"Secure https://" : "Güvenli https://",
+ "SFTP with secret key login" : "Gizli anahtar oturumu ile SFTP",
"Public key" : "Ortak anahtar",
"Storage with id \"%i\" not found" : "\"%i\" kimliği ile bir depolama bulunamadı",
"Invalid mount point" : "Geçersiz bağlama noktası",
@@ -51,6 +52,12 @@
"Error configuring Google Drive storage" : "Google Drive depo yapılandırma hatası",
"Personal" : "Kişisel",
"System" : "Sistem",
+ "Enable encryption" : "Şifrelemeyi aç",
+ "Enable previews" : "Önizlemeleri aç",
+ "Check for changes" : "Değişiklikleri denetle",
+ "Never" : "Daha yeni",
+ "Once every direct access" : "Her doğrudan erişimde bir kez",
+ "Every time the filesystem is used" : "Dosya sistemi her kullanıldığında",
"All users. Type to select user or group." : "Tüm kullanıcılar. Kullanıcı veya grup seçmek için yazın.",
"(group)" : "(grup)",
"Saved" : "Kaydedildi",
diff --git a/apps/files_external/l10n/uk.js b/apps/files_external/l10n/uk.js
index d31efca661e..6e061a0526b 100644
--- a/apps/files_external/l10n/uk.js
+++ b/apps/files_external/l10n/uk.js
@@ -53,6 +53,7 @@ OC.L10N.register(
"Error configuring Google Drive storage" : "Помилка при налаштуванні сховища Google Drive",
"Personal" : "Особисте",
"System" : "Система",
+ "Enable encryption" : "Увімкнути шифрування",
"All users. Type to select user or group." : "Всі користувачі. Введіть ім'я користувача або групи.",
"(group)" : "(група)",
"Saved" : "Збережено",
diff --git a/apps/files_external/l10n/uk.json b/apps/files_external/l10n/uk.json
index e8306c44580..bb7c337595b 100644
--- a/apps/files_external/l10n/uk.json
+++ b/apps/files_external/l10n/uk.json
@@ -51,6 +51,7 @@
"Error configuring Google Drive storage" : "Помилка при налаштуванні сховища Google Drive",
"Personal" : "Особисте",
"System" : "Система",
+ "Enable encryption" : "Увімкнути шифрування",
"All users. Type to select user or group." : "Всі користувачі. Введіть ім'я користувача або групи.",
"(group)" : "(група)",
"Saved" : "Збережено",
diff --git a/apps/files_external/l10n/vi.js b/apps/files_external/l10n/vi.js
index 096ab0713cd..9c9405ba2b0 100644
--- a/apps/files_external/l10n/vi.js
+++ b/apps/files_external/l10n/vi.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"files_external",
{
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Yêu cầu tokens thất bại. Xác minh key và mã bí mật ứng dụng Dropbox của bạn là chính xác.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Yêu cầu tokens thất bại. Xác minh key và mã bí mật ứng dụng Dropbox của bạn là chính xác.",
"Please provide a valid Dropbox app key and secret." : "Xin vui lòng cung cấp một ứng dụng Dropbox hợp lệ và mã bí mật.",
"External storage" : "Lưu trữ ngoài",
"Location" : "Vị trí",
@@ -16,6 +18,7 @@ OC.L10N.register(
"Grant access" : "Cấp quyền truy cập",
"Error configuring Google Drive storage" : "Lỗi cấu hình lưu trữ Google Drive",
"Personal" : "Cá nhân",
+ "Saved" : "Đã lưu",
"Name" : "Tên",
"External Storage" : "Lưu trữ ngoài",
"Folder name" : "Tên thư mục",
diff --git a/apps/files_external/l10n/vi.json b/apps/files_external/l10n/vi.json
index 135f9cffdf4..fa45495d07b 100644
--- a/apps/files_external/l10n/vi.json
+++ b/apps/files_external/l10n/vi.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "Fetching request tokens failed. Verify that your Dropbox app key and secret are correct." : "Yêu cầu tokens thất bại. Xác minh key và mã bí mật ứng dụng Dropbox của bạn là chính xác.",
+ "Fetching access tokens failed. Verify that your Dropbox app key and secret are correct." : "Yêu cầu tokens thất bại. Xác minh key và mã bí mật ứng dụng Dropbox của bạn là chính xác.",
"Please provide a valid Dropbox app key and secret." : "Xin vui lòng cung cấp một ứng dụng Dropbox hợp lệ và mã bí mật.",
"External storage" : "Lưu trữ ngoài",
"Location" : "Vị trí",
@@ -14,6 +16,7 @@
"Grant access" : "Cấp quyền truy cập",
"Error configuring Google Drive storage" : "Lỗi cấu hình lưu trữ Google Drive",
"Personal" : "Cá nhân",
+ "Saved" : "Đã lưu",
"Name" : "Tên",
"External Storage" : "Lưu trữ ngoài",
"Folder name" : "Tên thư mục",
diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php
index acf976e8fe4..763cf59aa4c 100644
--- a/apps/files_external/lib/amazons3.php
+++ b/apps/files_external/lib/amazons3.php
@@ -274,6 +274,10 @@ class AmazonS3 extends \OC\Files\Storage\Common {
), array('return_prefixes' => true));
foreach ($result as $object) {
+ if (isset($object['Key']) && $object['Key'] === $path) {
+ // it's the directory itself, skip
+ continue;
+ }
$file = basename(
isset($object['Key']) ? $object['Key'] : $object['Prefix']
);
diff --git a/apps/files_sharing/ajax/publicpreview.php b/apps/files_sharing/ajax/publicpreview.php
index 7685cda9d71..0734c8c1159 100644
--- a/apps/files_sharing/ajax/publicpreview.php
+++ b/apps/files_sharing/ajax/publicpreview.php
@@ -63,6 +63,13 @@ $view = new \OC\Files\View('/' . $userId . '/files');
$pathId = $linkedItem['file_source'];
$path = $view->getPath($pathId);
+
+if($path === null) {
+ \OC_Response::setStatus(\OC_Response::STATUS_NOT_FOUND);
+ \OC_Log::write('core-preview', 'Could not resolve file for shared item', OC_Log::WARN);
+ exit;
+}
+
$pathInfo = $view->getFileInfo($path);
$sharedFile = null;
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 17bee7b3b68..5923e426f05 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -89,8 +89,8 @@ OCA.Sharing.PublicApp = {
// dynamically load image previews
var token = $('#sharingToken').val();
var bottomMargin = 350;
- var previewWidth = $(window).width() * window.devicePixelRatio;
- var previewHeight = $(window).height() - bottomMargin * window.devicePixelRatio;
+ var previewWidth = Math.floor($(window).width() * window.devicePixelRatio);
+ var previewHeight = Math.floor(($(window).height() - bottomMargin) * window.devicePixelRatio);
previewHeight = Math.max(200, previewHeight);
var params = {
x: previewWidth,
@@ -159,6 +159,8 @@ OCA.Sharing.PublicApp = {
this.fileList.generatePreviewUrl = function (urlSpec) {
urlSpec.t = $('#dirToken').val();
+ urlSpec.y = Math.floor(36 * window.devicePixelRatio);
+ urlSpec.x = Math.floor(36 * window.devicePixelRatio);
return OC.generateUrl('/apps/files_sharing/ajax/publicpreview.php?') + $.param(urlSpec);
};
diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js
index 6e1dbc35fbd..07e76f79c87 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Sammensluttet Cloud deling",
"Open documentation" : "Åben dokumentation",
"Allow users on this server to send shares to other servers" : "Tillad brugere på denne server, at sende delinger til andre servere",
- "Allow users on this server to receive shares from other servers" : "Tillad brugere på denne server, at modtage delinger fra andre servere"
+ "Allow users on this server to receive shares from other servers" : "Tillad brugere på denne server, at modtage delinger fra andre servere",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Dit ID til Federated Cloud: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json
index c154b1dd90d..2dcfa35deec 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Sammensluttet Cloud deling",
"Open documentation" : "Åben dokumentation",
"Allow users on this server to send shares to other servers" : "Tillad brugere på denne server, at sende delinger til andre servere",
- "Allow users on this server to receive shares from other servers" : "Tillad brugere på denne server, at modtage delinger fra andre servere"
+ "Allow users on this server to receive shares from other servers" : "Tillad brugere på denne server, at modtage delinger fra andre servere",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Dit ID til Federated Cloud: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index e5b7b7bcb32..ec8f2a92f7e 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -57,8 +57,10 @@ OC.L10N.register(
"Download %s" : "Download %s",
"Direct link" : "Direkter Link",
"Federated Cloud Sharing" : "Federated-Cloud-Sharing",
- "Open documentation" : "Offene Dokumentation",
+ "Open documentation" : "Dokumentation öffnen",
"Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben",
- "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben"
+ "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Deine Federated-Cloud-ID: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index a323072083d..71a87cc609e 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -55,8 +55,10 @@
"Download %s" : "Download %s",
"Direct link" : "Direkter Link",
"Federated Cloud Sharing" : "Federated-Cloud-Sharing",
- "Open documentation" : "Offene Dokumentation",
+ "Open documentation" : "Dokumentation öffnen",
"Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben",
- "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben"
+ "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Deine Federated-Cloud-ID: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index b75864375e2..21c7afd8115 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -57,8 +57,10 @@ OC.L10N.register(
"Download %s" : "Download %s",
"Direct link" : "Direkte Verlinkung",
"Federated Cloud Sharing" : "Federated-Cloud-Sharing",
- "Open documentation" : "Offene Dokumentation",
+ "Open documentation" : "Dokumentation öffnen",
"Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben",
- "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben"
+ "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Ihre Federated-Cloud-ID: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 730ec010017..636349afe3b 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -55,8 +55,10 @@
"Download %s" : "Download %s",
"Direct link" : "Direkte Verlinkung",
"Federated Cloud Sharing" : "Federated-Cloud-Sharing",
- "Open documentation" : "Offene Dokumentation",
+ "Open documentation" : "Dokumentation öffnen",
"Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben",
- "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben"
+ "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Ihre Federated-Cloud-ID: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index 9e3cbf9621a..099b0d0bb9c 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Διαμοιρασμός σε ομόσπονδα σύννεφα ",
"Open documentation" : "Ανοιχτή τεκμηρίωση.",
"Allow users on this server to send shares to other servers" : "Να επιτρέπεται σε χρήστες αυτού του διακομιστή να στέλνουν διαμοιρασμένους φακέλους σε άλλους διακομιστές",
- "Allow users on this server to receive shares from other servers" : "Να επιτρέπεται στους χρίστες του διακομιστή να λαμβάνουν διαμοιρασμένα αρχεία από άλλους διακομιστές"
+ "Allow users on this server to receive shares from other servers" : "Να επιτρέπεται στους χρίστες του διακομιστή να λαμβάνουν διαμοιρασμένα αρχεία από άλλους διακομιστές",
+ "Federated Cloud" : "Federated σύννεφο",
+ "Your Federated Cloud ID: %s" : "Το ID σας στο Federated σύννεφο: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index 3a796c25ae4..a426c1f9a4d 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Διαμοιρασμός σε ομόσπονδα σύννεφα ",
"Open documentation" : "Ανοιχτή τεκμηρίωση.",
"Allow users on this server to send shares to other servers" : "Να επιτρέπεται σε χρήστες αυτού του διακομιστή να στέλνουν διαμοιρασμένους φακέλους σε άλλους διακομιστές",
- "Allow users on this server to receive shares from other servers" : "Να επιτρέπεται στους χρίστες του διακομιστή να λαμβάνουν διαμοιρασμένα αρχεία από άλλους διακομιστές"
+ "Allow users on this server to receive shares from other servers" : "Να επιτρέπεται στους χρίστες του διακομιστή να λαμβάνουν διαμοιρασμένα αρχεία από άλλους διακομιστές",
+ "Federated Cloud" : "Federated σύννεφο",
+ "Your Federated Cloud ID: %s" : "Το ID σας στο Federated σύννεφο: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 75956e85025..7f6637fe651 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Open documentation",
"Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers",
- "Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers"
+ "Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Your Federated Cloud ID: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index 85d6ac5a2f8..5ec663df415 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Open documentation",
"Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers",
- "Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers"
+ "Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Your Federated Cloud ID: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index e77217a8427..23b437fb128 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Compartido en Cloud Federado",
"Open documentation" : "Documentación abierta",
"Allow users on this server to send shares to other servers" : "Permitir a usuarios de este servidor compartir con usuarios de otros servidores",
- "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores"
+ "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores",
+ "Federated Cloud" : "Nube Federada",
+ "Your Federated Cloud ID: %s" : "Su ID de nube federada: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index c3c414dcaba..8617fdff5c6 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Compartido en Cloud Federado",
"Open documentation" : "Documentación abierta",
"Allow users on this server to send shares to other servers" : "Permitir a usuarios de este servidor compartir con usuarios de otros servidores",
- "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores"
+ "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores",
+ "Federated Cloud" : "Nube Federada",
+ "Your Federated Cloud ID: %s" : "Su ID de nube federada: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fi_FI.js b/apps/files_sharing/l10n/fi_FI.js
index 7d9cc87dcba..d4a10b08a5f 100644
--- a/apps/files_sharing/l10n/fi_FI.js
+++ b/apps/files_sharing/l10n/fi_FI.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Federoitu pilvijakaminen",
"Open documentation" : "Avaa dokumentaatio",
"Allow users on this server to send shares to other servers" : "Salli tämän palvelimen käyttäjien lähettää jakoja muille palvelimille",
- "Allow users on this server to receive shares from other servers" : "Salli tämän palvelimen käyttäjien vastaanottaa jakoja muilta palvelimilta"
+ "Allow users on this server to receive shares from other servers" : "Salli tämän palvelimen käyttäjien vastaanottaa jakoja muilta palvelimilta",
+ "Federated Cloud" : "Federoitu pilvi",
+ "Your Federated Cloud ID: %s" : "Tunnisteesi federoituun pilveen: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/fi_FI.json b/apps/files_sharing/l10n/fi_FI.json
index 3c7f40bd76c..c1aef367a20 100644
--- a/apps/files_sharing/l10n/fi_FI.json
+++ b/apps/files_sharing/l10n/fi_FI.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Federoitu pilvijakaminen",
"Open documentation" : "Avaa dokumentaatio",
"Allow users on this server to send shares to other servers" : "Salli tämän palvelimen käyttäjien lähettää jakoja muille palvelimille",
- "Allow users on this server to receive shares from other servers" : "Salli tämän palvelimen käyttäjien vastaanottaa jakoja muilta palvelimilta"
+ "Allow users on this server to receive shares from other servers" : "Salli tämän palvelimen käyttäjien vastaanottaa jakoja muilta palvelimilta",
+ "Federated Cloud" : "Federoitu pilvi",
+ "Your Federated Cloud ID: %s" : "Tunnisteesi federoituun pilveen: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 6fd7bf4a9d9..28235efe093 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -13,7 +13,7 @@ OC.L10N.register(
"Nothing shared with you yet" : "Aucun fichier n'est partagé avec vous pour l'instant",
"Files and folders others share with you will show up here" : "Les fichiers et dossiers partagés avec vous apparaîtront ici",
"Nothing shared yet" : "Rien n'est partagé pour l'instant",
- "Files and folders you share will show up here" : "Les fichiers et dossiers que vous partagerez apparaîtront ici",
+ "Files and folders you share will show up here" : "Les fichiers et dossiers que vous partagez apparaîtront ici",
"No shared links" : "Aucun partage par lien",
"Files and folders you share by link will show up here" : "Les fichiers et dossiers que vous partagerez par lien apparaîtront ici",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Voulez-vous ajouter le partage distant {name} de {owner}@{remote} ?",
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Voir la documentation",
"Allow users on this server to send shares to other servers" : "Autoriser les utilisateurs de ce serveur à envoyer des partages vers d'autres serveurs",
- "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs"
+ "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Votre ID Federated Cloud : %s"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 07629def1d3..e2875e7e553 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -11,7 +11,7 @@
"Nothing shared with you yet" : "Aucun fichier n'est partagé avec vous pour l'instant",
"Files and folders others share with you will show up here" : "Les fichiers et dossiers partagés avec vous apparaîtront ici",
"Nothing shared yet" : "Rien n'est partagé pour l'instant",
- "Files and folders you share will show up here" : "Les fichiers et dossiers que vous partagerez apparaîtront ici",
+ "Files and folders you share will show up here" : "Les fichiers et dossiers que vous partagez apparaîtront ici",
"No shared links" : "Aucun partage par lien",
"Files and folders you share by link will show up here" : "Les fichiers et dossiers que vous partagerez par lien apparaîtront ici",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Voulez-vous ajouter le partage distant {name} de {owner}@{remote} ?",
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Voir la documentation",
"Allow users on this server to send shares to other servers" : "Autoriser les utilisateurs de ce serveur à envoyer des partages vers d'autres serveurs",
- "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs"
+ "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs",
+ "Federated Cloud" : "Federated Cloud",
+ "Your Federated Cloud ID: %s" : "Votre ID Federated Cloud : %s"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js
index 11cc0348f34..3b1a3e9586a 100644
--- a/apps/files_sharing/l10n/gl.js
+++ b/apps/files_sharing/l10n/gl.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Compartición de nube federada",
"Open documentation" : "Abrir a documentación",
"Allow users on this server to send shares to other servers" : "Permitir aos usuarios deste servidor enviar comparticións a outros servidores",
- "Allow users on this server to receive shares from other servers" : "Permitir aos usuarios deste servidor recibir comparticións de outros servidores"
+ "Allow users on this server to receive shares from other servers" : "Permitir aos usuarios deste servidor recibir comparticións de outros servidores",
+ "Federated Cloud" : "Nube federada",
+ "Your Federated Cloud ID: %s" : "ID da súa nube federada: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json
index 01972ddee16..7257898158c 100644
--- a/apps/files_sharing/l10n/gl.json
+++ b/apps/files_sharing/l10n/gl.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Compartición de nube federada",
"Open documentation" : "Abrir a documentación",
"Allow users on this server to send shares to other servers" : "Permitir aos usuarios deste servidor enviar comparticións a outros servidores",
- "Allow users on this server to receive shares from other servers" : "Permitir aos usuarios deste servidor recibir comparticións de outros servidores"
+ "Allow users on this server to receive shares from other servers" : "Permitir aos usuarios deste servidor recibir comparticións de outros servidores",
+ "Federated Cloud" : "Nube federada",
+ "Your Federated Cloud ID: %s" : "ID da súa nube federada: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index 33cb2e81bcf..52526b3d1ff 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Condivisione cloud federata",
"Open documentation" : "Apri la documentazione",
"Allow users on this server to send shares to other servers" : "Consenti agli utenti su questo server di inviare condivisioni ad altri server",
- "Allow users on this server to receive shares from other servers" : "Consenti agli utenti su questo server di ricevere condivisioni da altri server"
+ "Allow users on this server to receive shares from other servers" : "Consenti agli utenti su questo server di ricevere condivisioni da altri server",
+ "Federated Cloud" : "Cloud federata",
+ "Your Federated Cloud ID: %s" : "Il tuo ID di cloud federata: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index a738a79154e..3eee327779f 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Condivisione cloud federata",
"Open documentation" : "Apri la documentazione",
"Allow users on this server to send shares to other servers" : "Consenti agli utenti su questo server di inviare condivisioni ad altri server",
- "Allow users on this server to receive shares from other servers" : "Consenti agli utenti su questo server di ricevere condivisioni da altri server"
+ "Allow users on this server to receive shares from other servers" : "Consenti agli utenti su questo server di ricevere condivisioni da altri server",
+ "Federated Cloud" : "Cloud federata",
+ "Your Federated Cloud ID: %s" : "Il tuo ID di cloud federata: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nb_NO.js b/apps/files_sharing/l10n/nb_NO.js
index 2a181e0af49..57d40ff9651 100644
--- a/apps/files_sharing/l10n/nb_NO.js
+++ b/apps/files_sharing/l10n/nb_NO.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"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"
+ "Allow users on this server to receive shares from other servers" : "Tillat at brukere på denne serveren mottar delinger fra andre servere",
+ "Federated Cloud" : "Sammenknyttet sky",
+ "Your Federated Cloud ID: %s" : "Din ID for sammenknyttet sky: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nb_NO.json b/apps/files_sharing/l10n/nb_NO.json
index 0fb0ee46cc6..3bcd9fd7e54 100644
--- a/apps/files_sharing/l10n/nb_NO.json
+++ b/apps/files_sharing/l10n/nb_NO.json
@@ -57,6 +57,8 @@
"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"
+ "Allow users on this server to receive shares from other servers" : "Tillat at brukere på denne serveren mottar delinger fra andre servere",
+ "Federated Cloud" : "Sammenknyttet sky",
+ "Your Federated Cloud ID: %s" : "Din ID for sammenknyttet sky: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 5bebbcfdae0..a602a52bb76 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Open documentatie",
"Allow users on this server to send shares to other servers" : "Toestaan dat gebruikers op deze server shares sturen naar andere servers",
- "Allow users on this server to receive shares from other servers" : "Toestaan dat gebruikers op deze server shares ontvangen van andere servers"
+ "Allow users on this server to receive shares from other servers" : "Toestaan dat gebruikers op deze server shares ontvangen van andere servers",
+ "Federated Cloud" : "Gefedereerde Cloud",
+ "Your Federated Cloud ID: %s" : "Uw gefedereerde Cloud ID: %s"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index e5d1d7c3a7f..66a38414183 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"Open documentation" : "Open documentatie",
"Allow users on this server to send shares to other servers" : "Toestaan dat gebruikers op deze server shares sturen naar andere servers",
- "Allow users on this server to receive shares from other servers" : "Toestaan dat gebruikers op deze server shares ontvangen van andere servers"
+ "Allow users on this server to receive shares from other servers" : "Toestaan dat gebruikers op deze server shares ontvangen van andere servers",
+ "Federated Cloud" : "Gefedereerde Cloud",
+ "Your Federated Cloud ID: %s" : "Uw gefedereerde Cloud ID: %s"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/oc.js b/apps/files_sharing/l10n/oc.js
index 7d230228620..b171633a337 100644
--- a/apps/files_sharing/l10n/oc.js
+++ b/apps/files_sharing/l10n/oc.js
@@ -6,6 +6,7 @@ OC.L10N.register(
"Password" : "Senhal",
"No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
"Name" : "Nom",
- "Download" : "Avalcarga"
+ "Download" : "Avalcarga",
+ "Open documentation" : "Veire la documentacion"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/oc.json b/apps/files_sharing/l10n/oc.json
index 04f6602451f..0dd565d1a29 100644
--- a/apps/files_sharing/l10n/oc.json
+++ b/apps/files_sharing/l10n/oc.json
@@ -4,6 +4,7 @@
"Password" : "Senhal",
"No entries found in this folder" : "Cap d'entrada pas trobada dins aqueste dorsièr",
"Name" : "Nom",
- "Download" : "Avalcarga"
+ "Download" : "Avalcarga",
+ "Open documentation" : "Veire la documentacion"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 308cdc4a161..46c16583337 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -56,9 +56,11 @@ OC.L10N.register(
"Download" : "Baixar",
"Download %s" : "Baixar %s",
"Direct link" : "Link direto",
- "Federated Cloud Sharing" : "Núvem de Compartilhamento Federada",
+ "Federated Cloud Sharing" : "Compartilhamento de Nuvem Conglomerada",
"Open documentation" : "Abrir documentação",
"Allow users on this server to send shares to other servers" : "Permitir que os usuários deste servidor enviem compartilhamentos para outros servidores",
- "Allow users on this server to receive shares from other servers" : "Permitir que os usuários nesse servidor recebam compartilhamentos de outros servidores"
+ "Allow users on this server to receive shares from other servers" : "Permitir que os usuários nesse servidor recebam compartilhamentos de outros servidores",
+ "Federated Cloud" : "Nuvem Conglomerada",
+ "Your Federated Cloud ID: %s" : "ID de sua Nuvem Conglomerada: %s"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 9941074430a..534fe20991e 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -54,9 +54,11 @@
"Download" : "Baixar",
"Download %s" : "Baixar %s",
"Direct link" : "Link direto",
- "Federated Cloud Sharing" : "Núvem de Compartilhamento Federada",
+ "Federated Cloud Sharing" : "Compartilhamento de Nuvem Conglomerada",
"Open documentation" : "Abrir documentação",
"Allow users on this server to send shares to other servers" : "Permitir que os usuários deste servidor enviem compartilhamentos para outros servidores",
- "Allow users on this server to receive shares from other servers" : "Permitir que os usuários nesse servidor recebam compartilhamentos de outros servidores"
+ "Allow users on this server to receive shares from other servers" : "Permitir que os usuários nesse servidor recebam compartilhamentos de outros servidores",
+ "Federated Cloud" : "Nuvem Conglomerada",
+ "Your Federated Cloud ID: %s" : "ID de sua Nuvem Conglomerada: %s"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index b0c6aa04563..3207b524ca8 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Объединение облачных хранилищ",
"Open documentation" : "Открыть документацию",
"Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов",
- "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов"
+ "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов",
+ "Federated Cloud" : "Объединение облачных хранилищ",
+ "Your Federated Cloud ID: %s" : "Ваш ID в объединении облачных хранилищ: %s"
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index 0896cab7dd2..72ef22d8037 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Объединение облачных хранилищ",
"Open documentation" : "Открыть документацию",
"Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов",
- "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов"
+ "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов",
+ "Federated Cloud" : "Объединение облачных хранилищ",
+ "Your Federated Cloud ID: %s" : "Ваш ID в объединении облачных хранилищ: %s"
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index 97b4b3aee24..171d733351c 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -59,6 +59,8 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Здружено дељење у облаку",
"Open documentation" : "Отвори документацију",
"Allow users on this server to send shares to other servers" : "Дозвољава корисницима овог сервера да шаљу дељења на друге сервере",
- "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера"
+ "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера",
+ "Federated Cloud" : "Здружени облак",
+ "Your Federated Cloud ID: %s" : "ИД вашег здруженог облака: %s"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index f28772afe57..52f79d701a7 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -57,6 +57,8 @@
"Federated Cloud Sharing" : "Здружено дељење у облаку",
"Open documentation" : "Отвори документацију",
"Allow users on this server to send shares to other servers" : "Дозвољава корисницима овог сервера да шаљу дељења на друге сервере",
- "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера"
+ "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера",
+ "Federated Cloud" : "Здружени облак",
+ "Your Federated Cloud ID: %s" : "ИД вашег здруженог облака: %s"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/th_TH.js b/apps/files_sharing/l10n/th_TH.js
index d879c3d25af..d57c7e13824 100644
--- a/apps/files_sharing/l10n/th_TH.js
+++ b/apps/files_sharing/l10n/th_TH.js
@@ -1,11 +1,66 @@
OC.L10N.register(
"files_sharing",
{
+ "Server to server sharing is not enabled on this server" : "เซิร์ฟเวอร์ไปยังแชร์เซิร์ฟเวอร์ไม่ได้เปิดใช้งานบนเซิร์ฟเวอร์นี้",
+ "The mountpoint name contains invalid characters." : "ชื่อจุดเชื่อมต่อมีตัวอักษรที่ไม่ถูกต้อง",
+ "Invalid or untrusted SSL certificate" : "ใบรับรอง SSL ไม่ถูกต้องหรือไม่น่าเชื่อถือ",
+ "Could not authenticate to remote share, password might be wrong" : "ไม่สามารถรับรองความถูกต้องจากการแชร์ระยะไกลรหัสผ่านอาจจะผิด",
+ "Storage not valid" : "การจัดเก็บข้อมูลไม่ถูกต้อง",
+ "Couldn't add remote share" : "ไม่สามารถเพิ่มแชร์ระยะไกล",
+ "Shared with you" : "แชร์กับคุณ",
+ "Shared with others" : "แชร์กับผู้อื่น",
+ "Shared by link" : "แชร์โดยลิงค์",
+ "Nothing shared with you yet" : "ไม่มีอะไรที่แชร์กับคุณเลย",
+ "Files and folders others share with you will show up here" : "ไฟล์และโฟลเดอร์อื่นๆ ที่แชร์กับคุณจะปรากฏขึ้นที่นี่",
+ "Nothing shared yet" : "ไม่มีการแชร์ใดๆ",
+ "Files and folders you share will show up here" : "ไฟล์และโฟลเดอร์ที่คุณแชร์จะปรากฏขึ้นที่นี่",
+ "No shared links" : "ไม่มีลิงค์ที่แชร์",
+ "Files and folders you share by link will show up here" : "ไฟล์และโฟลเดอร์ที่คุณแชร์โดยลิงค์จะปรากฏขึ้นที่นี่",
+ "Do you want to add the remote share {name} from {owner}@{remote}?" : "คุณต้องการที่จะเพิ่มการแชร์ระยะไกล {name} จาก {owner}@{remote}?",
+ "Remote share" : "แชร์ระยะไกล",
+ "Remote share password" : "รหัสผ่านการแชร์ระยะไกล",
"Cancel" : "ยกเลิก",
+ "Add remote share" : "เพิ่มการแชร์ระยะไกล",
+ "You can upload into this folder" : "คุณสามารถอัพโหลดลงในโฟลเดอร์นี้",
+ "No ownCloud installation (7 or higher) found at {remote}" : "ไม่มีการติดตั้ง ownCloud (7 หรือสูงกว่า) พบได้ที่ {remote}",
+ "Invalid ownCloud url" : "URL ownCloud ไม่ถูกต้อง",
"Share" : "แชร์",
"Shared by" : "ถูกแชร์โดย",
+ "A file or folder has been <strong>shared</strong>" : "ไฟล์หรือโฟลเดอร์ได้ถูก <strong>แชร์</strong>",
+ "A file or folder was shared from <strong>another server</strong>" : "ไฟล์หรือโฟลเดอร์จะถูกแชร์จาก <strong>เซิร์ฟเวอร์อื่นๆ</ strong>",
+ "A public shared file or folder was <strong>downloaded</strong>" : "แชร์ไฟล์หรือโฟลเดอร์สาธารณะถูก <strong>ดาวน์โหลด</strong>",
+ "You received a new remote share from %s" : "คุณได้รับการแชร์ระยะไกลใหม่จาก %s",
+ "%1$s accepted remote share %2$s" : "%1$s ยอมรับการแชร์ %2$s จากระยะไกล",
+ "%1$s declined remote share %2$s" : "%1$s ปฏิเสธการแชร์ %2$s จากระยะไกล",
+ "%1$s unshared %2$s from you" : "%1$s ไม่ได้แชร์ %2$s จากคุณ",
+ "Public shared folder %1$s was downloaded" : "โฟลเดอร์สาธารณะ %1$s ที่แชร์ถูกดาวน์โหลด",
+ "Public shared file %1$s was downloaded" : "ไฟล์สาธารณะ %1$s ที่แชร์ถูกดาวน์โหลด",
+ "You shared %1$s with %2$s" : "คุณแชร์ %1$s กับ %2$s",
+ "You shared %1$s with group %2$s" : "คุณแชร์ %1$s กับกลุ่ม %2$s",
+ "%2$s shared %1$s with you" : "%2$s ถูกแชร์ %1$s กับคุณ",
+ "You shared %1$s via link" : "คุณแชร์ %1$s ผ่านลิงค์",
+ "Shares" : "แชร์",
+ "This share is password-protected" : "นี้แชร์การป้องกันด้วยรหัสผ่าน",
+ "The password is wrong. Try again." : "รหัสผ่านที่ไม่ถูกต้อง กรุณาลองอีกครั้ง",
"Password" : "รหัสผ่าน",
+ "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
"Name" : "ชื่อ",
- "Download" : "ดาวน์โหลด"
+ "Share time" : "แชร์เวลา",
+ "Sorry, this link doesn’t seem to work anymore." : "ขออภัยลิงค์นี้ดูเหมือนจะไม่ทำงานอีกต่อไป",
+ "Reasons might be:" : "เหตุผลอาจจะ:",
+ "the item was removed" : "รายการที่ถูกลบออก",
+ "the link expired" : "ลิงค์หมดอายุ",
+ "sharing is disabled" : "การแชร์ถูกปิดใช้งาน",
+ "For more info, please ask the person who sent this link." : "สำหรับข้อมูลเพิ่มเติมกรุณาสอบถามผู้ที่ส่งลิงค์นี้",
+ "Add to your ownCloud" : "เพิ่มลงใน ownCloud ของคุณ",
+ "Download" : "ดาวน์โหลด",
+ "Download %s" : "ดาวน์โหลด %s",
+ "Direct link" : "ลิงค์โดยตรง",
+ "Federated Cloud Sharing" : "สหพันธ์การแชร์คลาวด์",
+ "Open documentation" : "เปิดเอกสาร",
+ "Allow users on this server to send shares to other servers" : "อนุญาตให้ผู้ใช้บนเซิร์ฟเวอร์นี้ส่งแชร์ไปยังเซิร์ฟเวอร์อื่นๆ",
+ "Allow users on this server to receive shares from other servers" : "อนุญาตให้ผู้ใช้บนเซิร์ฟเวอร์นี้ได้รับการแชร์จากเซิร์ฟเวอร์อื่นๆ",
+ "Federated Cloud" : "สหพันธ์คลาวด์",
+ "Your Federated Cloud ID: %s" : "ไอดีสหพันธ์คลาวด์ของคุณ: %s"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/th_TH.json b/apps/files_sharing/l10n/th_TH.json
index 1e793855e2b..7f3b2616deb 100644
--- a/apps/files_sharing/l10n/th_TH.json
+++ b/apps/files_sharing/l10n/th_TH.json
@@ -1,9 +1,64 @@
{ "translations": {
+ "Server to server sharing is not enabled on this server" : "เซิร์ฟเวอร์ไปยังแชร์เซิร์ฟเวอร์ไม่ได้เปิดใช้งานบนเซิร์ฟเวอร์นี้",
+ "The mountpoint name contains invalid characters." : "ชื่อจุดเชื่อมต่อมีตัวอักษรที่ไม่ถูกต้อง",
+ "Invalid or untrusted SSL certificate" : "ใบรับรอง SSL ไม่ถูกต้องหรือไม่น่าเชื่อถือ",
+ "Could not authenticate to remote share, password might be wrong" : "ไม่สามารถรับรองความถูกต้องจากการแชร์ระยะไกลรหัสผ่านอาจจะผิด",
+ "Storage not valid" : "การจัดเก็บข้อมูลไม่ถูกต้อง",
+ "Couldn't add remote share" : "ไม่สามารถเพิ่มแชร์ระยะไกล",
+ "Shared with you" : "แชร์กับคุณ",
+ "Shared with others" : "แชร์กับผู้อื่น",
+ "Shared by link" : "แชร์โดยลิงค์",
+ "Nothing shared with you yet" : "ไม่มีอะไรที่แชร์กับคุณเลย",
+ "Files and folders others share with you will show up here" : "ไฟล์และโฟลเดอร์อื่นๆ ที่แชร์กับคุณจะปรากฏขึ้นที่นี่",
+ "Nothing shared yet" : "ไม่มีการแชร์ใดๆ",
+ "Files and folders you share will show up here" : "ไฟล์และโฟลเดอร์ที่คุณแชร์จะปรากฏขึ้นที่นี่",
+ "No shared links" : "ไม่มีลิงค์ที่แชร์",
+ "Files and folders you share by link will show up here" : "ไฟล์และโฟลเดอร์ที่คุณแชร์โดยลิงค์จะปรากฏขึ้นที่นี่",
+ "Do you want to add the remote share {name} from {owner}@{remote}?" : "คุณต้องการที่จะเพิ่มการแชร์ระยะไกล {name} จาก {owner}@{remote}?",
+ "Remote share" : "แชร์ระยะไกล",
+ "Remote share password" : "รหัสผ่านการแชร์ระยะไกล",
"Cancel" : "ยกเลิก",
+ "Add remote share" : "เพิ่มการแชร์ระยะไกล",
+ "You can upload into this folder" : "คุณสามารถอัพโหลดลงในโฟลเดอร์นี้",
+ "No ownCloud installation (7 or higher) found at {remote}" : "ไม่มีการติดตั้ง ownCloud (7 หรือสูงกว่า) พบได้ที่ {remote}",
+ "Invalid ownCloud url" : "URL ownCloud ไม่ถูกต้อง",
"Share" : "แชร์",
"Shared by" : "ถูกแชร์โดย",
+ "A file or folder has been <strong>shared</strong>" : "ไฟล์หรือโฟลเดอร์ได้ถูก <strong>แชร์</strong>",
+ "A file or folder was shared from <strong>another server</strong>" : "ไฟล์หรือโฟลเดอร์จะถูกแชร์จาก <strong>เซิร์ฟเวอร์อื่นๆ</ strong>",
+ "A public shared file or folder was <strong>downloaded</strong>" : "แชร์ไฟล์หรือโฟลเดอร์สาธารณะถูก <strong>ดาวน์โหลด</strong>",
+ "You received a new remote share from %s" : "คุณได้รับการแชร์ระยะไกลใหม่จาก %s",
+ "%1$s accepted remote share %2$s" : "%1$s ยอมรับการแชร์ %2$s จากระยะไกล",
+ "%1$s declined remote share %2$s" : "%1$s ปฏิเสธการแชร์ %2$s จากระยะไกล",
+ "%1$s unshared %2$s from you" : "%1$s ไม่ได้แชร์ %2$s จากคุณ",
+ "Public shared folder %1$s was downloaded" : "โฟลเดอร์สาธารณะ %1$s ที่แชร์ถูกดาวน์โหลด",
+ "Public shared file %1$s was downloaded" : "ไฟล์สาธารณะ %1$s ที่แชร์ถูกดาวน์โหลด",
+ "You shared %1$s with %2$s" : "คุณแชร์ %1$s กับ %2$s",
+ "You shared %1$s with group %2$s" : "คุณแชร์ %1$s กับกลุ่ม %2$s",
+ "%2$s shared %1$s with you" : "%2$s ถูกแชร์ %1$s กับคุณ",
+ "You shared %1$s via link" : "คุณแชร์ %1$s ผ่านลิงค์",
+ "Shares" : "แชร์",
+ "This share is password-protected" : "นี้แชร์การป้องกันด้วยรหัสผ่าน",
+ "The password is wrong. Try again." : "รหัสผ่านที่ไม่ถูกต้อง กรุณาลองอีกครั้ง",
"Password" : "รหัสผ่าน",
+ "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
"Name" : "ชื่อ",
- "Download" : "ดาวน์โหลด"
+ "Share time" : "แชร์เวลา",
+ "Sorry, this link doesn’t seem to work anymore." : "ขออภัยลิงค์นี้ดูเหมือนจะไม่ทำงานอีกต่อไป",
+ "Reasons might be:" : "เหตุผลอาจจะ:",
+ "the item was removed" : "รายการที่ถูกลบออก",
+ "the link expired" : "ลิงค์หมดอายุ",
+ "sharing is disabled" : "การแชร์ถูกปิดใช้งาน",
+ "For more info, please ask the person who sent this link." : "สำหรับข้อมูลเพิ่มเติมกรุณาสอบถามผู้ที่ส่งลิงค์นี้",
+ "Add to your ownCloud" : "เพิ่มลงใน ownCloud ของคุณ",
+ "Download" : "ดาวน์โหลด",
+ "Download %s" : "ดาวน์โหลด %s",
+ "Direct link" : "ลิงค์โดยตรง",
+ "Federated Cloud Sharing" : "สหพันธ์การแชร์คลาวด์",
+ "Open documentation" : "เปิดเอกสาร",
+ "Allow users on this server to send shares to other servers" : "อนุญาตให้ผู้ใช้บนเซิร์ฟเวอร์นี้ส่งแชร์ไปยังเซิร์ฟเวอร์อื่นๆ",
+ "Allow users on this server to receive shares from other servers" : "อนุญาตให้ผู้ใช้บนเซิร์ฟเวอร์นี้ได้รับการแชร์จากเซิร์ฟเวอร์อื่นๆ",
+ "Federated Cloud" : "สหพันธ์คลาวด์",
+ "Your Federated Cloud ID: %s" : "ไอดีสหพันธ์คลาวด์ของคุณ: %s"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index 6bcfce0cca2..4431a3157a4 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"Remote share password" : "Uzak paylaşım parolası",
"Cancel" : "İptal",
"Add remote share" : "Uzak paylaşım ekle",
- "You can upload into this folder" : "Bu dizine yükleme yapabilirsin",
+ "You can upload into this folder" : "Bu dizine yükleme yapabilirsiniz",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} üzerinde ownCloud (7 veya daha üstü) kurulumu bulunamadı",
"Invalid ownCloud url" : "Geçersiz ownCloud adresi",
"Share" : "Paylaş",
@@ -57,8 +57,10 @@ OC.L10N.register(
"Download %s" : "İndir: %s",
"Direct link" : "Doğrudan bağlantı",
"Federated Cloud Sharing" : "Birleşmiş Bulut Paylaşımı",
- "Open documentation" : "Dokümantasyonu aç",
+ "Open documentation" : "Belgelendirmeyi aç",
"Allow users on this server to send shares to other servers" : "Bu sunucudaki kullanıcıların diğer sunuculara paylaşım göndermelerine izin ver",
- "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunuculardan paylaşım almalarına izin ver"
+ "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunuculardan paylaşım almalarına izin ver",
+ "Federated Cloud" : "Birleşmiş Bulut",
+ "Your Federated Cloud ID: %s" : "Birleşmiş Bulut Kimliğiniz: %s"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index de2770b963a..62ee76f4513 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -19,7 +19,7 @@
"Remote share password" : "Uzak paylaşım parolası",
"Cancel" : "İptal",
"Add remote share" : "Uzak paylaşım ekle",
- "You can upload into this folder" : "Bu dizine yükleme yapabilirsin",
+ "You can upload into this folder" : "Bu dizine yükleme yapabilirsiniz",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} üzerinde ownCloud (7 veya daha üstü) kurulumu bulunamadı",
"Invalid ownCloud url" : "Geçersiz ownCloud adresi",
"Share" : "Paylaş",
@@ -55,8 +55,10 @@
"Download %s" : "İndir: %s",
"Direct link" : "Doğrudan bağlantı",
"Federated Cloud Sharing" : "Birleşmiş Bulut Paylaşımı",
- "Open documentation" : "Dokümantasyonu aç",
+ "Open documentation" : "Belgelendirmeyi aç",
"Allow users on this server to send shares to other servers" : "Bu sunucudaki kullanıcıların diğer sunuculara paylaşım göndermelerine izin ver",
- "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunuculardan paylaşım almalarına izin ver"
+ "Allow users on this server to receive shares from other servers" : "Bu sunucudaki kullanıcıların diğer sunuculardan paylaşım almalarına izin ver",
+ "Federated Cloud" : "Birleşmiş Bulut",
+ "Your Federated Cloud ID: %s" : "Birleşmiş Bulut Kimliğiniz: %s"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/vi.js b/apps/files_sharing/l10n/vi.js
index ccefbfacda3..a96969df222 100644
--- a/apps/files_sharing/l10n/vi.js
+++ b/apps/files_sharing/l10n/vi.js
@@ -1,6 +1,9 @@
OC.L10N.register(
"files_sharing",
{
+ "Server to server sharing is not enabled on this server" : "Máy chủ để chia sẻ máy chủ không được kích hoạt trên máy chủ này",
+ "The mountpoint name contains invalid characters." : "Tên mountpoint chứa các ký tự không hợp lệ.",
+ "Invalid or untrusted SSL certificate" : "Chứng chỉ SSL không hợp lệ hoặc không đáng tin cậy",
"Shared with you" : "Chia sẻ với bạn",
"Shared with others" : "Chia sẻ với người khác",
"Shared by link" : "Chia sẻ theo liên kết",
diff --git a/apps/files_sharing/l10n/vi.json b/apps/files_sharing/l10n/vi.json
index 6140ca95cd9..a53d3c9e386 100644
--- a/apps/files_sharing/l10n/vi.json
+++ b/apps/files_sharing/l10n/vi.json
@@ -1,4 +1,7 @@
{ "translations": {
+ "Server to server sharing is not enabled on this server" : "Máy chủ để chia sẻ máy chủ không được kích hoạt trên máy chủ này",
+ "The mountpoint name contains invalid characters." : "Tên mountpoint chứa các ký tự không hợp lệ.",
+ "Invalid or untrusted SSL certificate" : "Chứng chỉ SSL không hợp lệ hoặc không đáng tin cậy",
"Shared with you" : "Chia sẻ với bạn",
"Shared with others" : "Chia sẻ với người khác",
"Shared by link" : "Chia sẻ theo liên kết",
diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php
index da6667e2c8b..ecf3ee853ee 100644
--- a/apps/files_sharing/lib/controllers/sharecontroller.php
+++ b/apps/files_sharing/lib/controllers/sharecontroller.php
@@ -214,6 +214,7 @@ class ShareController extends Controller {
$shareTmpl['downloadURL'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadShare', array('token' => $token));
$shareTmpl['maxSizeAnimateGif'] = $this->config->getSystemValue('max_filesize_animated_gifs_public_sharing', 10);
+ $shareTmpl['previewEnabled'] = $this->config->getSystemValue('enable_previews', true);
$csp = new OCP\AppFramework\Http\ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index 5a0119747f1..dd0b2eebe21 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -89,7 +89,7 @@ $thumbSize = 1024;
<?php if (isset($_['folder'])): ?>
<?php print_unescaped($_['folder']); ?>
<?php else: ?>
- <?php if (substr($_['mimetype'], 0, strpos($_['mimetype'], '/')) == 'video'): ?>
+ <?php if ($_['previewEnabled'] && substr($_['mimetype'], 0, strpos($_['mimetype'], '/')) == 'video'): ?>
<div id="imgframe">
<video tabindex="0" controls="" preload="none">
<source src="<?php p($_['downloadURL']); ?>" type="<?php p($_['mimetype']); ?>" />
diff --git a/apps/files_sharing/tests/controller/sharecontroller.php b/apps/files_sharing/tests/controller/sharecontroller.php
index eaa7ce7bfde..8a075eeab9f 100644
--- a/apps/files_sharing/tests/controller/sharecontroller.php
+++ b/apps/files_sharing/tests/controller/sharecontroller.php
@@ -178,6 +178,7 @@ class ShareControllerTest extends \Test\TestCase {
'nonHumanFileSize' => 33,
'maxSizeAnimateGif' => 10,
'previewSupported' => true,
+ 'previewEnabled' => true,
);
$csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
diff --git a/apps/files_sharing/tests/external/managertest.php b/apps/files_sharing/tests/external/managertest.php
index f7b216530d5..df01ea0f738 100644
--- a/apps/files_sharing/tests/external/managertest.php
+++ b/apps/files_sharing/tests/external/managertest.php
@@ -76,7 +76,7 @@ class ManagerTest extends TestCase {
$this->assertCount(1, $openShares);
$this->assertExternalShareEntry($shareData1, $openShares[0], 1, '{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
- \Test_Helper::invokePrivate($this->manager, 'setupMounts');
+ self::invokePrivate($this->manager, 'setupMounts');
$this->assertNotMount('SharedFolder');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
@@ -88,7 +88,7 @@ class ManagerTest extends TestCase {
// New share falls back to "-1" appendix, because the name is already taken
$this->assertExternalShareEntry($shareData2, $openShares[1], 2, '{{TemporaryMountPointName#' . $shareData2['name'] . '}}-1');
- \Test_Helper::invokePrivate($this->manager, 'setupMounts');
+ self::invokePrivate($this->manager, 'setupMounts');
$this->assertNotMount('SharedFolder');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
@@ -101,7 +101,7 @@ class ManagerTest extends TestCase {
$this->manager->acceptShare($openShares[0]['id']);
// Check remaining shares - Accepted
- $acceptedShares = \Test_Helper::invokePrivate($this->manager, 'getShares', [true]);
+ $acceptedShares = self::invokePrivate($this->manager, 'getShares', [true]);
$this->assertCount(1, $acceptedShares);
$shareData1['accepted'] = true;
$this->assertExternalShareEntry($shareData1, $acceptedShares[0], 1, $shareData1['name']);
@@ -110,7 +110,7 @@ class ManagerTest extends TestCase {
$this->assertCount(1, $openShares);
$this->assertExternalShareEntry($shareData2, $openShares[0], 2, '{{TemporaryMountPointName#' . $shareData2['name'] . '}}-1');
- \Test_Helper::invokePrivate($this->manager, 'setupMounts');
+ self::invokePrivate($this->manager, 'setupMounts');
$this->assertMount($shareData1['name']);
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
@@ -123,7 +123,7 @@ class ManagerTest extends TestCase {
// New share falls back to the original name (no "-\d", because the name is not taken)
$this->assertExternalShareEntry($shareData3, $openShares[1], 3, '{{TemporaryMountPointName#' . $shareData3['name'] . '}}');
- \Test_Helper::invokePrivate($this->manager, 'setupMounts');
+ self::invokePrivate($this->manager, 'setupMounts');
$this->assertMount($shareData1['name']);
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
@@ -135,13 +135,13 @@ class ManagerTest extends TestCase {
// Decline the third share
$this->manager->declineShare($openShares[1]['id']);
- \Test_Helper::invokePrivate($this->manager, 'setupMounts');
+ self::invokePrivate($this->manager, 'setupMounts');
$this->assertMount($shareData1['name']);
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
// Check remaining shares - Accepted
- $acceptedShares = \Test_Helper::invokePrivate($this->manager, 'getShares', [true]);
+ $acceptedShares = self::invokePrivate($this->manager, 'getShares', [true]);
$this->assertCount(1, $acceptedShares);
$shareData1['accepted'] = true;
$this->assertExternalShareEntry($shareData1, $acceptedShares[0], 1, $shareData1['name']);
@@ -150,7 +150,7 @@ class ManagerTest extends TestCase {
$this->assertCount(1, $openShares);
$this->assertExternalShareEntry($shareData2, $openShares[0], 2, '{{TemporaryMountPointName#' . $shareData2['name'] . '}}-1');
- \Test_Helper::invokePrivate($this->manager, 'setupMounts');
+ self::invokePrivate($this->manager, 'setupMounts');
$this->assertMount($shareData1['name']);
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
@@ -163,10 +163,10 @@ class ManagerTest extends TestCase {
->with($this->stringStartsWith('http://localhost/ocs/v1.php/cloud/shares/' . $acceptedShares[0]['remote_id'] . '/decline'), $this->anything());
$this->manager->removeUserShares($this->uid);
- $this->assertEmpty(\Test_Helper::invokePrivate($this->manager, 'getShares', [null]), 'Asserting all shares for the user have been deleted');
+ $this->assertEmpty(self::invokePrivate($this->manager, 'getShares', [null]), 'Asserting all shares for the user have been deleted');
$this->mountManager->clear();
- \Test_Helper::invokePrivate($this->manager, 'setupMounts');
+ self::invokePrivate($this->manager, 'setupMounts');
$this->assertNotMount($shareData1['name']);
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}');
$this->assertNotMount('{{TemporaryMountPointName#' . $shareData1['name'] . '}}-1');
diff --git a/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php b/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php
index b1113e7a455..c52036e6f5b 100644
--- a/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php
+++ b/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php
@@ -58,7 +58,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
->with('core', 'shareapi_allow_links', 'yes')
->will($this->returnValue('yes'));
- $this->assertTrue(\Test_Helper::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
+ $this->assertTrue(self::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
}
public function testIsSharingEnabledWithAppDisabled() {
@@ -68,7 +68,7 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
->with('files_sharing')
->will($this->returnValue(false));
- $this->assertFalse(\Test_Helper::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
+ $this->assertFalse(self::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
}
public function testIsSharingEnabledWithSharingDisabled() {
@@ -84,6 +84,6 @@ class SharingCheckMiddlewareTest extends \Test\TestCase {
->with('core', 'shareapi_allow_links', 'yes')
->will($this->returnValue('no'));
- $this->assertFalse(\Test_Helper::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
+ $this->assertFalse(self::invokePrivate($this->sharingCheckMiddleware, 'isSharingEnabled'));
}
}
diff --git a/apps/files_trashbin/command/expire.php b/apps/files_trashbin/command/expire.php
index e617fa47c90..e7dd5c573c2 100644
--- a/apps/files_trashbin/command/expire.php
+++ b/apps/files_trashbin/command/expire.php
@@ -49,6 +49,12 @@ class Expire implements ICommand {
}
public function handle() {
+ $userManager = \OC::$server->getUserManager();
+ if (!$userManager->userExists($this->user)) {
+ // User has been deleted already
+ return;
+ }
+
\OC_Util::tearDownFS();
\OC_Util::setupFS($this->user);
Trashbin::expire($this->trashBinSize, $this->user);
diff --git a/apps/files_trashbin/l10n/et_EE.js b/apps/files_trashbin/l10n/et_EE.js
index 6ffc04efadb..4e74390edb1 100644
--- a/apps/files_trashbin/l10n/et_EE.js
+++ b/apps/files_trashbin/l10n/et_EE.js
@@ -8,6 +8,7 @@ OC.L10N.register(
"Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
"restored" : "taastatud",
+ "No deleted files" : "Kustutatud faile pole",
"No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
"Select all" : "Vali kõik",
"Name" : "Nimi",
diff --git a/apps/files_trashbin/l10n/et_EE.json b/apps/files_trashbin/l10n/et_EE.json
index c5c55a520f7..fa3aab09ba1 100644
--- a/apps/files_trashbin/l10n/et_EE.json
+++ b/apps/files_trashbin/l10n/et_EE.json
@@ -6,6 +6,7 @@
"Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
"restored" : "taastatud",
+ "No deleted files" : "Kustutatud faile pole",
"No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
"Select all" : "Vali kõik",
"Name" : "Nimi",
diff --git a/apps/files_trashbin/l10n/th_TH.js b/apps/files_trashbin/l10n/th_TH.js
index c1c80b191bb..e294f592e84 100644
--- a/apps/files_trashbin/l10n/th_TH.js
+++ b/apps/files_trashbin/l10n/th_TH.js
@@ -1,8 +1,17 @@
OC.L10N.register(
"files_trashbin",
{
+ "Couldn't delete %s permanently" : "ไม่สามารถลบ %s แบบถาวร",
+ "Couldn't restore %s" : "ไม่สามารถกู้คืน %s",
+ "Deleted files" : "ไฟล์ที่ถูกลบ",
"Restore" : "คืนค่า",
+ "Delete permanently" : "ลบแบบถาวร",
"Error" : "ข้อผิดพลาด",
+ "restored" : "การเรียกคืน",
+ "No deleted files" : "ไม่มีไฟล์ที่ถูกลบ",
+ "You will be able to recover deleted files from here" : "คุณจะสามารถกู้คืนไฟล์ที่ถูกลบจากที่นี่",
+ "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
+ "Select all" : "เลือกทั้งหมด",
"Name" : "ชื่อ",
"Deleted" : "ลบแล้ว",
"Delete" : "ลบ"
diff --git a/apps/files_trashbin/l10n/th_TH.json b/apps/files_trashbin/l10n/th_TH.json
index eb3c405beaf..7dc7546f55b 100644
--- a/apps/files_trashbin/l10n/th_TH.json
+++ b/apps/files_trashbin/l10n/th_TH.json
@@ -1,6 +1,15 @@
{ "translations": {
+ "Couldn't delete %s permanently" : "ไม่สามารถลบ %s แบบถาวร",
+ "Couldn't restore %s" : "ไม่สามารถกู้คืน %s",
+ "Deleted files" : "ไฟล์ที่ถูกลบ",
"Restore" : "คืนค่า",
+ "Delete permanently" : "ลบแบบถาวร",
"Error" : "ข้อผิดพลาด",
+ "restored" : "การเรียกคืน",
+ "No deleted files" : "ไม่มีไฟล์ที่ถูกลบ",
+ "You will be able to recover deleted files from here" : "คุณจะสามารถกู้คืนไฟล์ที่ถูกลบจากที่นี่",
+ "No entries found in this folder" : "ไม่พบรายการในโฟลเดอร์นี้",
+ "Select all" : "เลือกทั้งหมด",
"Name" : "ชื่อ",
"Deleted" : "ลบแล้ว",
"Delete" : "ลบ"
diff --git a/apps/files_trashbin/l10n/vi.js b/apps/files_trashbin/l10n/vi.js
index 718fb9b9edb..c0ff36d90c3 100644
--- a/apps/files_trashbin/l10n/vi.js
+++ b/apps/files_trashbin/l10n/vi.js
@@ -8,7 +8,10 @@ OC.L10N.register(
"Delete permanently" : "Xóa vĩnh vễn",
"Error" : "Lỗi",
"restored" : "khôi phục",
+ "No deleted files" : "Không có tập tin bị xóa",
+ "You will be able to recover deleted files from here" : "Bạn có thể phục hồi các file đã bị xóa từ đây",
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
+ "Select all" : "Chọn tất cả",
"Name" : "Tên",
"Deleted" : "Đã xóa",
"Delete" : "Xóa"
diff --git a/apps/files_trashbin/l10n/vi.json b/apps/files_trashbin/l10n/vi.json
index b23cd2be244..a8b2c4a055e 100644
--- a/apps/files_trashbin/l10n/vi.json
+++ b/apps/files_trashbin/l10n/vi.json
@@ -6,7 +6,10 @@
"Delete permanently" : "Xóa vĩnh vễn",
"Error" : "Lỗi",
"restored" : "khôi phục",
+ "No deleted files" : "Không có tập tin bị xóa",
+ "You will be able to recover deleted files from here" : "Bạn có thể phục hồi các file đã bị xóa từ đây",
"No entries found in this folder" : "Chưa có mục nào trong thư mục",
+ "Select all" : "Chọn tất cả",
"Name" : "Tên",
"Deleted" : "Đã xóa",
"Delete" : "Xóa"
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index baa0c4cbe71..b30ea7c69f8 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -55,6 +55,16 @@ class Trashbin {
*/
private static $scannedVersions = false;
+ /**
+ * Ensure we dont need to scan the file during the move to trash
+ * by triggering the scan in the pre-hook
+ *
+ * @param array $params
+ */
+ public static function ensureFileScannedHook($params) {
+ self::getUidAndFilename($params['path']);
+ }
+
public static function getUidAndFilename($filename) {
$uid = \OC\Files\Filesystem::getOwner($filename);
\OC\Files\Filesystem::initMountPoints($uid);
@@ -175,6 +185,10 @@ class Trashbin {
}
self::setUpTrash($user);
+ if ($owner !== $user) {
+ // also setup for owner
+ self::setUpTrash($owner);
+ }
$path_parts = pathinfo($file_path);
@@ -222,7 +236,7 @@ class Trashbin {
\OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_moveToTrash', array('filePath' => \OC\Files\Filesystem::normalizePath($file_path),
'trashPath' => \OC\Files\Filesystem::normalizePath($filename . '.d' . $timestamp)));
- $size += self::retainVersions($file_path, $filename, $timestamp);
+ $size += self::retainVersions($file_path, $filename, $owner, $ownerPath, $timestamp);
// if owner !== user we need to also add a copy to the owners trash
if ($user !== $owner) {
@@ -248,23 +262,19 @@ class Trashbin {
*
* @param string $file_path path to original file
* @param string $filename of deleted file
+ * @param string $owner owner user id
+ * @param string $ownerPath path relative to the owner's home storage
* @param integer $timestamp when the file was deleted
*
* @return int size of stored versions
*/
- private static function retainVersions($file_path, $filename, $timestamp) {
+ private static function retainVersions($file_path, $filename, $owner, $ownerPath, $timestamp) {
$size = 0;
- if (\OCP\App::isEnabled('files_versions')) {
+ if (\OCP\App::isEnabled('files_versions') && !empty($ownerPath)) {
$user = \OCP\User::getUser();
$rootView = new \OC\Files\View('/');
- list($owner, $ownerPath) = self::getUidAndFilename($file_path);
- // file has been deleted in between
- if (empty($ownerPath)) {
- return 0;
- }
-
if ($rootView->is_dir($owner . '/files_versions/' . $ownerPath)) {
$size += self::calculateSize(new \OC\Files\View('/' . $owner . '/files_versions/' . $ownerPath));
if ($owner !== $user) {
@@ -870,6 +880,7 @@ class Trashbin {
//Listen to post write hook
\OCP\Util::connectHook('OC_Filesystem', 'post_write', 'OCA\Files_Trashbin\Hooks', 'post_write_hook');
// pre and post-rename, disable trash logic for the copy+unlink case
+ \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Trashbin\Trashbin', 'ensureFileScannedHook');
\OCP\Util::connectHook('OC_Filesystem', 'rename', 'OCA\Files_Trashbin\Storage', 'preRenameHook');
\OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Files_Trashbin\Storage', 'postRenameHook');
}
diff --git a/apps/files_trashbin/tests/command/expiretest.php b/apps/files_trashbin/tests/command/expiretest.php
new file mode 100644
index 00000000000..a6a8a6d53a8
--- /dev/null
+++ b/apps/files_trashbin/tests/command/expiretest.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @author Joas Schilling <nickvergessen@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 OCA\Files_Trashbin\Tests\Command;
+
+use OCA\Files_Trashbin\Command\Expire;
+use Test\TestCase;
+
+class ExpireTest extends TestCase {
+ public function testExpireNonExistingUser() {
+ $command = new Expire('test', 0);
+ $command->handle();
+
+ $this->assertTrue(true);
+ }
+}
diff --git a/apps/files_trashbin/tests/storage.php b/apps/files_trashbin/tests/storage.php
index f99bc91dd26..637543683dc 100644
--- a/apps/files_trashbin/tests/storage.php
+++ b/apps/files_trashbin/tests/storage.php
@@ -192,6 +192,10 @@ class Storage extends \Test\TestCase {
$this->assertEquals(1, count($results));
$name = $results[0]->getName();
$this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
+
+ // versions deleted
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/');
+ $this->assertEquals(0, count($results));
}
/**
@@ -223,6 +227,118 @@ class Storage extends \Test\TestCase {
$this->assertEquals(1, count($results));
$name = $results[0]->getName();
$this->assertEquals('inside.txt.v', substr($name, 0, strlen('inside.txt.v')));
+
+ // versions deleted
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/');
+ $this->assertEquals(0, count($results));
+ }
+
+ /**
+ * Test that deleted versions properly land in the trashbin when deleting as share recipient.
+ */
+ public function testDeleteVersionsOfFileAsRecipient() {
+ \OCA\Files_Versions\Hooks::connectHooks();
+
+ $this->userView->mkdir('share');
+ // trigger a version (multiple would not work because of the expire logic)
+ $this->userView->file_put_contents('share/test.txt', 'v1');
+ $this->userView->file_put_contents('share/test.txt', 'v2');
+
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/share/');
+ $this->assertEquals(1, count($results));
+
+ $recipientUser = $this->getUniqueId('recipient_');
+ \OC::$server->getUserManager()->createUser($recipientUser, $recipientUser);
+
+ $fileinfo = $this->userView->getFileInfo('share');
+ $this->assertTrue(\OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER,
+ $recipientUser, 31));
+
+ $this->loginAsUser($recipientUser);
+
+ // delete as recipient
+ $recipientView = new \OC\Files\View('/' . $recipientUser . '/files');
+ $recipientView->unlink('share/test.txt');
+
+ // rescan trash storage for both users
+ list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin');
+ $rootStorage->getScanner()->scan('');
+
+ // check if versions are in trashbin for both users
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
+ $this->assertEquals(1, count($results), 'Versions in owner\'s trashbin');
+ $name = $results[0]->getName();
+ $this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
+
+ $results = $this->rootView->getDirectoryContent($recipientUser . '/files_trashbin/versions');
+ $this->assertEquals(1, count($results), 'Versions in recipient\'s trashbin');
+ $name = $results[0]->getName();
+ $this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
+
+ // versions deleted
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/share/');
+ $this->assertEquals(0, count($results));
+ }
+
+ /**
+ * Test that deleted versions properly land in the trashbin when deleting as share recipient.
+ */
+ public function testDeleteVersionsOfFolderAsRecipient() {
+ \OCA\Files_Versions\Hooks::connectHooks();
+
+ $this->userView->mkdir('share');
+ $this->userView->mkdir('share/folder');
+ // trigger a version (multiple would not work because of the expire logic)
+ $this->userView->file_put_contents('share/folder/test.txt', 'v1');
+ $this->userView->file_put_contents('share/folder/test.txt', 'v2');
+
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/share/folder/');
+ $this->assertEquals(1, count($results));
+
+ $recipientUser = $this->getUniqueId('recipient_');
+ \OC::$server->getUserManager()->createUser($recipientUser, $recipientUser);
+
+ $fileinfo = $this->userView->getFileInfo('share');
+ $this->assertTrue(\OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER,
+ $recipientUser, 31));
+
+ $this->loginAsUser($recipientUser);
+
+ // delete as recipient
+ $recipientView = new \OC\Files\View('/' . $recipientUser . '/files');
+ $recipientView->rmdir('share/folder');
+
+ // rescan trash storage
+ list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin');
+ $rootStorage->getScanner()->scan('');
+
+ // check if versions are in trashbin for owner
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('folder.d', substr($name, 0, strlen('folder.d')));
+
+ // check if file versions are in trashbin for owner
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/' . $name . '/');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
+
+ // check if versions are in trashbin for recipient
+ $results = $this->rootView->getDirectoryContent($recipientUser . '/files_trashbin/versions');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('folder.d', substr($name, 0, strlen('folder.d')));
+
+ // check if file versions are in trashbin for recipient
+ $results = $this->rootView->getDirectoryContent($recipientUser . '/files_trashbin/versions/' . $name . '/');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
+
+ // versions deleted
+ $results = $this->rootView->getDirectoryContent($recipientUser . '/files_versions/share/folder/');
+ $this->assertEquals(0, count($results));
}
/**
diff --git a/apps/files_versions/command/expire.php b/apps/files_versions/command/expire.php
index 6cec9f4fac3..ec9aa3e80d3 100644
--- a/apps/files_versions/command/expire.php
+++ b/apps/files_versions/command/expire.php
@@ -50,6 +50,12 @@ class Expire implements ICommand {
public function handle() {
+ $userManager = \OC::$server->getUserManager();
+ if (!$userManager->userExists($this->user)) {
+ // User has been deleted already
+ return;
+ }
+
\OC_Util::setupFS($this->user);
Storage::expire($this->fileName, $this->versionsSize, $this->neededSpace);
\OC_Util::tearDownFS();
diff --git a/apps/files_versions/l10n/th_TH.js b/apps/files_versions/l10n/th_TH.js
index 72a456dc0ce..81559c9cea3 100644
--- a/apps/files_versions/l10n/th_TH.js
+++ b/apps/files_versions/l10n/th_TH.js
@@ -1,7 +1,11 @@
OC.L10N.register(
"files_versions",
{
+ "Could not revert: %s" : "ไม่สามารถย้อนกลับ: %s",
"Versions" : "รุ่น",
+ "Failed to revert {file} to revision {timestamp}." : "{file} ล้มเหลวที่จะย้อนกลับ มีการแก้ไขเมื่อ {timestamp}",
+ "More versions..." : "รุ่นอื่นๆ ...",
+ "No other versions available" : "ไม่มีรุ่นอื่นๆ",
"Restore" : "คืนค่า"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_versions/l10n/th_TH.json b/apps/files_versions/l10n/th_TH.json
index 1d87f34b101..bd07d72a582 100644
--- a/apps/files_versions/l10n/th_TH.json
+++ b/apps/files_versions/l10n/th_TH.json
@@ -1,5 +1,9 @@
{ "translations": {
+ "Could not revert: %s" : "ไม่สามารถย้อนกลับ: %s",
"Versions" : "รุ่น",
+ "Failed to revert {file} to revision {timestamp}." : "{file} ล้มเหลวที่จะย้อนกลับ มีการแก้ไขเมื่อ {timestamp}",
+ "More versions..." : "รุ่นอื่นๆ ...",
+ "No other versions available" : "ไม่มีรุ่นอื่นๆ",
"Restore" : "คืนค่า"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_versions/tests/command/expiretest.php b/apps/files_versions/tests/command/expiretest.php
new file mode 100644
index 00000000000..247fb99b767
--- /dev/null
+++ b/apps/files_versions/tests/command/expiretest.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @author Joas Schilling <nickvergessen@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 OCA\Files_Versions\Tests\Command;
+
+use OCA\Files_Versions\Command\Expire;
+use Test\TestCase;
+
+class ExpireTest extends TestCase {
+ public function testExpireNonExistingUser() {
+ $command = new Expire('test', '');
+ $command->handle();
+
+ $this->assertTrue(true);
+ }
+}
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 4c5c01743aa..0395a4a80e3 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -251,7 +251,14 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
* @return string|bool
*/
public function getUserPrimaryGroupIDs($dn) {
- return $this->getEntryGroupID($dn, 'primaryGroupID');
+ $primaryGroupID = false;
+ if($this->access->connection->hasPrimaryGroups) {
+ $primaryGroupID = $this->getEntryGroupID($dn, 'primaryGroupID');
+ if($primaryGroupID === false) {
+ $this->access->connection->hasPrimaryGroups = false;
+ }
+ }
+ return $primaryGroupID;
}
/**
@@ -362,6 +369,27 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
return array();
}
+ $groups = [];
+ $primaryGroup = $this->getUserPrimaryGroup($userDN);
+
+ // if possible, read out membership via memberOf. It's far faster than
+ // performing a search, which still is a fallback later.
+ if(intval($this->access->connection->hasMemberOfFilterSupport) === 1
+ && intval($this->access->connection->useMemberOfToDetectMembership) === 1
+ ) {
+ $groupDNs = $this->access->readAttribute($userDN, 'memberOf');
+ if (is_array($groupDNs)) {
+ foreach ($groupDNs as $dn) {
+ $groups[] = $this->access->dn2groupname($dn);;
+ }
+ }
+ if($primaryGroup !== false) {
+ $groups[] = $primaryGroup;
+ }
+ $this->access->connection->writeToCache($cacheKey, $groups);
+ return $groups;
+ }
+
//uniqueMember takes DN, memberuid the uid, so we need to distinguish
if((strtolower($this->access->connection->ldapGroupMemberAssocAttr) === 'uniquemember')
|| (strtolower($this->access->connection->ldapGroupMemberAssocAttr) === 'member')
@@ -387,7 +415,6 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
$this->cachedGroupsByMember[$uid] = $groups;
}
- $primaryGroup = $this->getUserPrimaryGroup($userDN);
if($primaryGroup !== false) {
$groups[] = $primaryGroup;
}
diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js
index c9ec596ace8..8b619bf4803 100644
--- a/apps/user_ldap/l10n/da.js
+++ b/apps/user_ldap/l10n/da.js
@@ -69,7 +69,7 @@ OC.L10N.register(
"Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper",
"When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:",
"LDAP / AD Username:" : "LDAP/AD-brugernavn:",
- "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillader login mod LDAP/AD-brugernavnet, hvilket enten er et uid eller samaccountname, og vil blive detekteret.",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillader login mod LDAP/AD-brugernavnet, hvilket enten er et uid eller »samaccountname«, og vil blive detekteret.",
"LDAP / AD Email Address:" : "E-mailadresser for LDAP/AD:",
"Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Tillader login mod en e-mailattribut. Mail og mailPrimaryAddress vil være tilladt.",
"Other Attributes:" : "Andre attributter:",
@@ -78,6 +78,9 @@ OC.L10N.register(
"Verify settings" : "Verificér indstillinger",
"1. Server" : "1. server",
"%s. Server:" : "%s. server:",
+ "Adds a new and blank configuration" : "Tilføjer en ny og blank konfiguration",
+ "Copy current configuration into new directory binding" : "Kopiér nuværende konfiguration ind i en ny mappetildeling",
+ "Delete the current configuration" : "Slet den aktuelle konfiguration",
"Host" : "Vært",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://",
"Port" : "Port",
@@ -105,15 +108,15 @@ OC.L10N.register(
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Apps'ene user_ldap og user_webdavauth er ikke kompatible. Du kan opleve uventet adfærd. Spørg venligst din systemadministrator om at slå én af dem fra.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advarsel:</b> PHP-modulet LDAP er ikke installeret - backend'en vil ikke fungere. Anmod venligst din systemadministrator om at installere det.",
"Connection Settings" : "Forbindelsesindstillinger ",
- "Configuration Active" : "Konfiguration Aktiv",
+ "Configuration Active" : "Konfiguration er aktiv",
"When unchecked, this configuration will be skipped." : "Hvis der ikke er markeret, så springes denne konfiguration over.",
"Backup (Replica) Host" : "Vært for sikkerhedskopier (replika)",
"Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Angiv valgfrit en vært for sikkerhedskopiering. Dette skal være en replikering af den primære LDAP/AD-server.",
"Backup (Replica) Port" : "Port for sikkerhedskopi (replika)",
- "Disable Main Server" : "Deaktiver Hovedserver",
+ "Disable Main Server" : "Deaktivér hovedserver",
"Only connect to the replica server." : "Forbind kun til replika serveren.",
"Case insensitive LDAP server (Windows)" : "LDAP-server som ikke er følsom over for store/små bogstaver (Windows)",
- "Turn off SSL certificate validation." : "Deaktiver SSL certifikat validering",
+ "Turn off SSL certificate validation." : "Deaktivér validering af SSL-certifikat.",
"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Anbefales ikke - bruges kun til testformål! Hvis forbindelse udelukkende fungerer med dette tilvalg, så importér LDAP-serverens SSL-certifikat i din %s-server.",
"Cache Time-To-Live" : "Cache levetid",
"in seconds. A change empties the cache." : "i sekunder. En ændring vil tømme cachen.",
diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json
index 8ce67102932..1311710c5c6 100644
--- a/apps/user_ldap/l10n/da.json
+++ b/apps/user_ldap/l10n/da.json
@@ -67,7 +67,7 @@
"Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper",
"When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:",
"LDAP / AD Username:" : "LDAP/AD-brugernavn:",
- "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillader login mod LDAP/AD-brugernavnet, hvilket enten er et uid eller samaccountname, og vil blive detekteret.",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillader login mod LDAP/AD-brugernavnet, hvilket enten er et uid eller »samaccountname«, og vil blive detekteret.",
"LDAP / AD Email Address:" : "E-mailadresser for LDAP/AD:",
"Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Tillader login mod en e-mailattribut. Mail og mailPrimaryAddress vil være tilladt.",
"Other Attributes:" : "Andre attributter:",
@@ -76,6 +76,9 @@
"Verify settings" : "Verificér indstillinger",
"1. Server" : "1. server",
"%s. Server:" : "%s. server:",
+ "Adds a new and blank configuration" : "Tilføjer en ny og blank konfiguration",
+ "Copy current configuration into new directory binding" : "Kopiér nuværende konfiguration ind i en ny mappetildeling",
+ "Delete the current configuration" : "Slet den aktuelle konfiguration",
"Host" : "Vært",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://",
"Port" : "Port",
@@ -103,15 +106,15 @@
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Apps'ene user_ldap og user_webdavauth er ikke kompatible. Du kan opleve uventet adfærd. Spørg venligst din systemadministrator om at slå én af dem fra.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advarsel:</b> PHP-modulet LDAP er ikke installeret - backend'en vil ikke fungere. Anmod venligst din systemadministrator om at installere det.",
"Connection Settings" : "Forbindelsesindstillinger ",
- "Configuration Active" : "Konfiguration Aktiv",
+ "Configuration Active" : "Konfiguration er aktiv",
"When unchecked, this configuration will be skipped." : "Hvis der ikke er markeret, så springes denne konfiguration over.",
"Backup (Replica) Host" : "Vært for sikkerhedskopier (replika)",
"Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Angiv valgfrit en vært for sikkerhedskopiering. Dette skal være en replikering af den primære LDAP/AD-server.",
"Backup (Replica) Port" : "Port for sikkerhedskopi (replika)",
- "Disable Main Server" : "Deaktiver Hovedserver",
+ "Disable Main Server" : "Deaktivér hovedserver",
"Only connect to the replica server." : "Forbind kun til replika serveren.",
"Case insensitive LDAP server (Windows)" : "LDAP-server som ikke er følsom over for store/små bogstaver (Windows)",
- "Turn off SSL certificate validation." : "Deaktiver SSL certifikat validering",
+ "Turn off SSL certificate validation." : "Deaktivér validering af SSL-certifikat.",
"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Anbefales ikke - bruges kun til testformål! Hvis forbindelse udelukkende fungerer med dette tilvalg, så importér LDAP-serverens SSL-certifikat i din %s-server.",
"Cache Time-To-Live" : "Cache levetid",
"in seconds. A change empties the cache." : "i sekunder. En ændring vil tømme cachen.",
diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js
index 371d1a4e783..c8207dbabfe 100644
--- a/apps/user_ldap/l10n/el.js
+++ b/apps/user_ldap/l10n/el.js
@@ -78,6 +78,9 @@ OC.L10N.register(
"Verify settings" : "Επιβεβαίωση ρυθμίσεων",
"1. Server" : "1. Διακομιστής",
"%s. Server:" : "%s. Διακομιστής:",
+ "Adds a new and blank configuration" : "Προσθέτει μια νέα και κενή διαμόρφωση",
+ "Copy current configuration into new directory binding" : "Αντιγραφή της τρέχουσας διαμόρφωσης σε νέο κατάλογο",
+ "Delete the current configuration" : "Διαγραφή τρέχουσας διαμόρφωσης",
"Host" : "Διακομιστής",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://",
"Port" : "Θύρα",
diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json
index 7a863409b7d..1e861ba8f82 100644
--- a/apps/user_ldap/l10n/el.json
+++ b/apps/user_ldap/l10n/el.json
@@ -76,6 +76,9 @@
"Verify settings" : "Επιβεβαίωση ρυθμίσεων",
"1. Server" : "1. Διακομιστής",
"%s. Server:" : "%s. Διακομιστής:",
+ "Adds a new and blank configuration" : "Προσθέτει μια νέα και κενή διαμόρφωση",
+ "Copy current configuration into new directory binding" : "Αντιγραφή της τρέχουσας διαμόρφωσης σε νέο κατάλογο",
+ "Delete the current configuration" : "Διαγραφή τρέχουσας διαμόρφωσης",
"Host" : "Διακομιστής",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://",
"Port" : "Θύρα",
diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js
index 6c4be9ec3f0..baeed9a85ea 100644
--- a/apps/user_ldap/l10n/en_GB.js
+++ b/apps/user_ldap/l10n/en_GB.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"No data specified" : "No data specified",
" Could not set configuration %s" : " Could not set configuration %s",
"Action does not exist" : "Action does not exist",
+ "The Base DN appears to be wrong" : "The Base DN appears to be wrong",
"Configuration incorrect" : "Configuration incorrect",
"Configuration incomplete" : "Configuration incomplete",
"Configuration OK" : "Configuration OK",
@@ -77,6 +78,9 @@ OC.L10N.register(
"Verify settings" : "Verify settings",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
+ "Adds a new and blank configuration" : "Adds a new and blank configuration",
+ "Copy current configuration into new directory binding" : "Copy current configuration into new directory binding",
+ "Delete the current configuration" : "Delete the current configuration",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "You can omit the protocol, except you require SSL. Then start with ldaps://",
"Port" : "Port",
diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json
index 4b8bf5fc163..743ae2cd47f 100644
--- a/apps/user_ldap/l10n/en_GB.json
+++ b/apps/user_ldap/l10n/en_GB.json
@@ -10,6 +10,7 @@
"No data specified" : "No data specified",
" Could not set configuration %s" : " Could not set configuration %s",
"Action does not exist" : "Action does not exist",
+ "The Base DN appears to be wrong" : "The Base DN appears to be wrong",
"Configuration incorrect" : "Configuration incorrect",
"Configuration incomplete" : "Configuration incomplete",
"Configuration OK" : "Configuration OK",
@@ -75,6 +76,9 @@
"Verify settings" : "Verify settings",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
+ "Adds a new and blank configuration" : "Adds a new and blank configuration",
+ "Copy current configuration into new directory binding" : "Copy current configuration into new directory binding",
+ "Delete the current configuration" : "Delete the current configuration",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "You can omit the protocol, except you require SSL. Then start with ldaps://",
"Port" : "Port",
diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js
index d544c933529..9da30a9dcd9 100644
--- a/apps/user_ldap/l10n/fr.js
+++ b/apps/user_ldap/l10n/fr.js
@@ -32,7 +32,7 @@ OC.L10N.register(
"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. Peut-être les liens anonymes ne sont-ils pas acceptés?",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "Erreur LDAP. La connexion anonyme au serveur n'est probablement pas acceptée.",
"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",
@@ -79,7 +79,7 @@ OC.L10N.register(
"1. Server" : "1. Serveur",
"%s. Server:" : "%s. Serveur :",
"Adds a new and blank configuration" : "Ajouter une nouvelle configuration vierge",
- "Copy current configuration into new directory binding" : "Copier la configuration courante dans un nouveau dossier lié",
+ "Copy current configuration into new directory binding" : "Copier la configuration actuelle vers une nouvelle",
"Delete the current configuration" : "Supprimer la configuration actuelle",
"Host" : "Hôte",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas, préfixez avec ldaps://",
diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json
index 4b4d2f9ae14..0cb2cd489a4 100644
--- a/apps/user_ldap/l10n/fr.json
+++ b/apps/user_ldap/l10n/fr.json
@@ -30,7 +30,7 @@
"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. Peut-être les liens anonymes ne sont-ils pas acceptés?",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "Erreur LDAP. La connexion anonyme au serveur n'est probablement pas acceptée.",
"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",
@@ -77,7 +77,7 @@
"1. Server" : "1. Serveur",
"%s. Server:" : "%s. Serveur :",
"Adds a new and blank configuration" : "Ajouter une nouvelle configuration vierge",
- "Copy current configuration into new directory binding" : "Copier la configuration courante dans un nouveau dossier lié",
+ "Copy current configuration into new directory binding" : "Copier la configuration actuelle vers une nouvelle",
"Delete the current configuration" : "Supprimer la configuration actuelle",
"Host" : "Hôte",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas, préfixez avec ldaps://",
diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js
index 918a14df824..466144f4123 100644
--- a/apps/user_ldap/l10n/gl.js
+++ b/apps/user_ldap/l10n/gl.js
@@ -136,7 +136,7 @@ OC.L10N.register(
"Nested Groups" : "Grupos aniñados",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se está activado, admítense grupos que conteñen grupos. (Só funciona se o atributo de membro de grupo conten os DN.)",
"Paging chunksize" : "Tamaño dos fragmentos paxinados",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamaño dos fragmentos utilizados para as buscas LDAP paxinadas, que poden devolver resultados voluminosos como usuario ou enumeración de grupo. (Se se establece a 0, desactívanse as buscas LDAP paxinadas nesas situacións.)",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamaño dos fragmentos utilizados para as buscas LDAP paxinadas, que poden devolver resultados voluminosos como usuario ou enumeración de grupo. (Se se estabelece a 0, desactívanse as buscas LDAP paxinadas nesas situacións.)",
"Special Attributes" : "Atributos especiais",
"Quota Field" : "Campo de cota",
"Quota Default" : "Cota predeterminada",
diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json
index 6c8efc6ebbe..f67cc44d653 100644
--- a/apps/user_ldap/l10n/gl.json
+++ b/apps/user_ldap/l10n/gl.json
@@ -134,7 +134,7 @@
"Nested Groups" : "Grupos aniñados",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se está activado, admítense grupos que conteñen grupos. (Só funciona se o atributo de membro de grupo conten os DN.)",
"Paging chunksize" : "Tamaño dos fragmentos paxinados",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamaño dos fragmentos utilizados para as buscas LDAP paxinadas, que poden devolver resultados voluminosos como usuario ou enumeración de grupo. (Se se establece a 0, desactívanse as buscas LDAP paxinadas nesas situacións.)",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Tamaño dos fragmentos utilizados para as buscas LDAP paxinadas, que poden devolver resultados voluminosos como usuario ou enumeración de grupo. (Se se estabelece a 0, desactívanse as buscas LDAP paxinadas nesas situacións.)",
"Special Attributes" : "Atributos especiais",
"Quota Field" : "Campo de cota",
"Quota Default" : "Cota predeterminada",
diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js
index 4ae5d598f7a..55c1abb333f 100644
--- a/apps/user_ldap/l10n/it.js
+++ b/apps/user_ldap/l10n/it.js
@@ -79,6 +79,7 @@ OC.L10N.register(
"1. Server" : "1. server",
"%s. Server:" : "%s. server:",
"Adds a new and blank configuration" : "Aggiunge una nuova configurazione",
+ "Copy current configuration into new directory binding" : "Copia la configurazione attuale nella nuova cartella associata",
"Delete the current configuration" : "Elimina la configurazione attuale",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://",
diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json
index 98243da37f1..9bf6de0e336 100644
--- a/apps/user_ldap/l10n/it.json
+++ b/apps/user_ldap/l10n/it.json
@@ -77,6 +77,7 @@
"1. Server" : "1. server",
"%s. Server:" : "%s. server:",
"Adds a new and blank configuration" : "Aggiunge una nuova configurazione",
+ "Copy current configuration into new directory binding" : "Copia la configurazione attuale nella nuova cartella associata",
"Delete the current configuration" : "Elimina la configurazione attuale",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://",
diff --git a/apps/user_ldap/l10n/oc.js b/apps/user_ldap/l10n/oc.js
index 847193c431f..695647833cd 100644
--- a/apps/user_ldap/l10n/oc.js
+++ b/apps/user_ldap/l10n/oc.js
@@ -1,11 +1,14 @@
OC.L10N.register(
"user_ldap",
{
+ "Server" : "Servidor",
"Users" : "Usancièrs",
"Groups" : "Grops",
"Help" : "Ajuda",
"Host" : "Òste",
+ "Port" : "Pòrt",
"Password" : "Senhal",
+ "Continue" : "Contunhar",
"Advanced" : "Avançat"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/oc.json b/apps/user_ldap/l10n/oc.json
index 0941632f929..dc6fb8b6270 100644
--- a/apps/user_ldap/l10n/oc.json
+++ b/apps/user_ldap/l10n/oc.json
@@ -1,9 +1,12 @@
{ "translations": {
+ "Server" : "Servidor",
"Users" : "Usancièrs",
"Groups" : "Grops",
"Help" : "Ajuda",
"Host" : "Òste",
+ "Port" : "Pòrt",
"Password" : "Senhal",
+ "Continue" : "Contunhar",
"Advanced" : "Avançat"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/pt_PT.js b/apps/user_ldap/l10n/pt_PT.js
index 34fa399e686..0c37960e829 100644
--- a/apps/user_ldap/l10n/pt_PT.js
+++ b/apps/user_ldap/l10n/pt_PT.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"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",
+ "User found and settings verified." : "Utilizador encontrado e as definilções verificadas",
"_%s group found_::_%s groups found_" : ["%s grupo encontrado","%s grupos encontrados"],
"_%s user found_::_%s users found_" : ["%s utilizador encontrado","%s utilizadores encontrados"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Não foi possível detetar o atributo do nome do utilizador. Por favor especifique-o nas configurações ldap avançadas.",
@@ -43,12 +44,14 @@ OC.L10N.register(
"Test Configuration" : "Testar a configuração",
"Help" : "Ajuda",
"Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:",
+ "Selected groups" : "Grupos seleccionados",
"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",
+ "Delete the current configuration" : "Apagar a configuração actual",
"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",
diff --git a/apps/user_ldap/l10n/pt_PT.json b/apps/user_ldap/l10n/pt_PT.json
index 920ceea7d60..b95eb4ce2c3 100644
--- a/apps/user_ldap/l10n/pt_PT.json
+++ b/apps/user_ldap/l10n/pt_PT.json
@@ -30,6 +30,7 @@
"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",
+ "User found and settings verified." : "Utilizador encontrado e as definilções verificadas",
"_%s group found_::_%s groups found_" : ["%s grupo encontrado","%s grupos encontrados"],
"_%s user found_::_%s users found_" : ["%s utilizador encontrado","%s utilizadores encontrados"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Não foi possível detetar o atributo do nome do utilizador. Por favor especifique-o nas configurações ldap avançadas.",
@@ -41,12 +42,14 @@
"Test Configuration" : "Testar a configuração",
"Help" : "Ajuda",
"Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:",
+ "Selected groups" : "Grupos seleccionados",
"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",
+ "Delete the current configuration" : "Apagar a configuração actual",
"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",
diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js
index 50ec2122070..78aa87eb99b 100644
--- a/apps/user_ldap/l10n/ru.js
+++ b/apps/user_ldap/l10n/ru.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" : "База поиска DN по всей видимости указана неправильно",
"Configuration incorrect" : "Конфигурация некорректна",
"Configuration incomplete" : "Конфигурация не завершена",
"Configuration OK" : "Конфигурация в порядке",
@@ -22,10 +24,28 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Не возможно обнаружить Base DN, пожалуйста задайте в ручную.",
"{nthServer}. Server" : "Сервер {nthServer}.",
"No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.",
+ "More than 1.000 directory entries available." : "В каталоге доступно более 1.000 записей.",
" entries available within the provided Base DN" : "элементы доступные в Базе",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Произошла ошибка. Пожалуйста проверьте базу поиска DN, а также настройки подключения и учетные данные.",
"Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?",
"Confirm Deletion" : "Подтверждение удаления",
+ "Mappings cleared successfully!" : "Соответствия успешно очищены!",
+ "Error while clearing the mappings." : "Ошибка при очистке соответствий.",
+ "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" : "Переключение режима",
"Select attributes" : "Выберите атрибуты",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Пользователь не найден. Пожалуйста проверьте учетные данные. Применяемый фильтр (для проверки в командой строке): <br/>",
+ "User found and settings verified." : "Пользователь найден и настройки проверены.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Настройки проверены, но найден один пользователь. Только первый сможет войти. Советуем пересмотреть фильтр.",
+ "An unspecified error occurred. Please check the settings and the log." : "Произошла неуказанная ошибка. Пожалуйста проверьте настройки и журнал.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Некорректный фильтр поиска, возможно из-за синтаксических ошибок, таких как незакрытые скобки или неточные числа. Пожалуйста проверьте.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Произошла ошибка подключения к LDAP / AD, пожалуйста проверьте настройки подключения и учетные данные.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Отсутствует заполнитель %uid. Он будет заменен на логин при запросе к LDAP / AD.",
+ "Please provide a login name to test against" : "Пожалуйста укажите логин для проверки",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Группа была отключена, так как сервер LDAP / AD не поддерживает memberOf.",
"_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"],
"_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не удалось автоматически определить атрибут содержащий отображаемое имя пользователя. Зайдите в расширенные настройки ldap и укажите его вручную.",
@@ -33,32 +53,52 @@ OC.L10N.register(
"Invalid Host" : "Некорректный адрес сервера",
"Server" : "Сервер",
"Users" : "Пользователи",
+ "Login Attributes" : "Учетные данные",
"Groups" : "Группы",
"Test Configuration" : "Проверить конфигурацию",
"Help" : "Помощь",
"Groups meeting these criteria are available in %s:" : "Группы, отвечающие этим критериям доступны в %s:",
+ "Only these object classes:" : "Только эти классы объектов:",
+ "Only from these groups:" : "Только из этих групп:",
"Search groups" : "Поиск групп",
"Available groups" : "Доступные группы",
"Selected groups" : "Выбранные группы",
+ "Edit LDAP Query" : "Изменить запрос LDAP",
+ "LDAP Filter:" : "Фильтр LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.",
+ "Verify settings and count groups" : "Проверить настройки и пересчитать группы",
+ "When logging in, %s will find the user based on the following attributes:" : "При входе, %s будет искать пользователя по следующим атрибутам:",
"LDAP / AD Username:" : "Имя пользователя LDAP/AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Позволяет вход в LDAP / AD с помощью имени пользователя, которое может определяться как uid, так и samaccountname.",
+ "LDAP / AD Email Address:" : "Адрес email LDAP / AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Позволяет вход с помощью адреса email. Будут разрешены Mail и mailPrimaryAddress.",
"Other Attributes:" : "Другие атрибуты:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"",
+ "Test Loginname" : "Проверить логин",
+ "Verify settings" : "Проверить настройки",
"1. Server" : "Сервер 1.",
"%s. Server:" : "Сервер %s:",
+ "Adds a new and blank configuration" : "Добавляет новую и пустую конфигурацию",
+ "Copy current configuration into new directory binding" : "Копировать текущую конфигурацию в новую связь с каталогом",
+ "Delete the current configuration" : "Удалить текущую конфигурацию",
"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" : "Пароль",
"For anonymous access, leave DN and Password empty." : "Для анонимного доступа оставьте DN и пароль пустыми.",
"One Base DN per line" : "По одной базе поиска (Base DN) в строке.",
"You can specify Base DN for users and groups in the Advanced tab" : "Вы можете задать Base DN для пользователей и групп на вкладке \"Расширенные\"",
+ "Detect Base DN" : "Определить базу поиска DN",
+ "Test Base DN" : "Проверить базу поиска DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегает отправки автоматических запросов LDAP. Эта опция подходит для крупных проектов, но требует некоторых знаний LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ввести LDAP фильтры вручную (рекомендуется для больших директорий)",
"Limit %s access to users meeting these criteria:" : "Ограничить доступ пользователям к %s, удовлетворяющим этому критерию:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Наиболее частые классы объектов для пользователей organizationalPerson, person, user и inetOrgPerson. Если вы не уверены какой класс объектов выбрать, пожалуйста обратитесь к администратору.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Этот фильтр указывает, какие пользователи LDAP должны иметь доступ к экземпляру %s.",
+ "Verify settings and count users" : "Проверить настройки и пересчитать пользователей",
"Saving" : "Сохраняется",
"Back" : "Назад",
"Continue" : "Продолжить",
diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json
index 1e828573fe2..98a447d6f89 100644
--- a/apps/user_ldap/l10n/ru.json
+++ b/apps/user_ldap/l10n/ru.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" : "База поиска DN по всей видимости указана неправильно",
"Configuration incorrect" : "Конфигурация некорректна",
"Configuration incomplete" : "Конфигурация не завершена",
"Configuration OK" : "Конфигурация в порядке",
@@ -20,10 +22,28 @@
"Could not detect Base DN, please enter it manually." : "Не возможно обнаружить Base DN, пожалуйста задайте в ручную.",
"{nthServer}. Server" : "Сервер {nthServer}.",
"No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.",
+ "More than 1.000 directory entries available." : "В каталоге доступно более 1.000 записей.",
" entries available within the provided Base DN" : "элементы доступные в Базе",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Произошла ошибка. Пожалуйста проверьте базу поиска DN, а также настройки подключения и учетные данные.",
"Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?",
"Confirm Deletion" : "Подтверждение удаления",
+ "Mappings cleared successfully!" : "Соответствия успешно очищены!",
+ "Error while clearing the mappings." : "Ошибка при очистке соответствий.",
+ "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" : "Переключение режима",
"Select attributes" : "Выберите атрибуты",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Пользователь не найден. Пожалуйста проверьте учетные данные. Применяемый фильтр (для проверки в командой строке): <br/>",
+ "User found and settings verified." : "Пользователь найден и настройки проверены.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Настройки проверены, но найден один пользователь. Только первый сможет войти. Советуем пересмотреть фильтр.",
+ "An unspecified error occurred. Please check the settings and the log." : "Произошла неуказанная ошибка. Пожалуйста проверьте настройки и журнал.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Некорректный фильтр поиска, возможно из-за синтаксических ошибок, таких как незакрытые скобки или неточные числа. Пожалуйста проверьте.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Произошла ошибка подключения к LDAP / AD, пожалуйста проверьте настройки подключения и учетные данные.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Отсутствует заполнитель %uid. Он будет заменен на логин при запросе к LDAP / AD.",
+ "Please provide a login name to test against" : "Пожалуйста укажите логин для проверки",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Группа была отключена, так как сервер LDAP / AD не поддерживает memberOf.",
"_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"],
"_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не удалось автоматически определить атрибут содержащий отображаемое имя пользователя. Зайдите в расширенные настройки ldap и укажите его вручную.",
@@ -31,32 +51,52 @@
"Invalid Host" : "Некорректный адрес сервера",
"Server" : "Сервер",
"Users" : "Пользователи",
+ "Login Attributes" : "Учетные данные",
"Groups" : "Группы",
"Test Configuration" : "Проверить конфигурацию",
"Help" : "Помощь",
"Groups meeting these criteria are available in %s:" : "Группы, отвечающие этим критериям доступны в %s:",
+ "Only these object classes:" : "Только эти классы объектов:",
+ "Only from these groups:" : "Только из этих групп:",
"Search groups" : "Поиск групп",
"Available groups" : "Доступные группы",
"Selected groups" : "Выбранные группы",
+ "Edit LDAP Query" : "Изменить запрос LDAP",
+ "LDAP Filter:" : "Фильтр LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.",
+ "Verify settings and count groups" : "Проверить настройки и пересчитать группы",
+ "When logging in, %s will find the user based on the following attributes:" : "При входе, %s будет искать пользователя по следующим атрибутам:",
"LDAP / AD Username:" : "Имя пользователя LDAP/AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Позволяет вход в LDAP / AD с помощью имени пользователя, которое может определяться как uid, так и samaccountname.",
+ "LDAP / AD Email Address:" : "Адрес email LDAP / AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Позволяет вход с помощью адреса email. Будут разрешены Mail и mailPrimaryAddress.",
"Other Attributes:" : "Другие атрибуты:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"",
+ "Test Loginname" : "Проверить логин",
+ "Verify settings" : "Проверить настройки",
"1. Server" : "Сервер 1.",
"%s. Server:" : "Сервер %s:",
+ "Adds a new and blank configuration" : "Добавляет новую и пустую конфигурацию",
+ "Copy current configuration into new directory binding" : "Копировать текущую конфигурацию в новую связь с каталогом",
+ "Delete the current configuration" : "Удалить текущую конфигурацию",
"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" : "Пароль",
"For anonymous access, leave DN and Password empty." : "Для анонимного доступа оставьте DN и пароль пустыми.",
"One Base DN per line" : "По одной базе поиска (Base DN) в строке.",
"You can specify Base DN for users and groups in the Advanced tab" : "Вы можете задать Base DN для пользователей и групп на вкладке \"Расширенные\"",
+ "Detect Base DN" : "Определить базу поиска DN",
+ "Test Base DN" : "Проверить базу поиска DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегает отправки автоматических запросов LDAP. Эта опция подходит для крупных проектов, но требует некоторых знаний LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ввести LDAP фильтры вручную (рекомендуется для больших директорий)",
"Limit %s access to users meeting these criteria:" : "Ограничить доступ пользователям к %s, удовлетворяющим этому критерию:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Наиболее частые классы объектов для пользователей organizationalPerson, person, user и inetOrgPerson. Если вы не уверены какой класс объектов выбрать, пожалуйста обратитесь к администратору.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Этот фильтр указывает, какие пользователи LDAP должны иметь доступ к экземпляру %s.",
+ "Verify settings and count users" : "Проверить настройки и пересчитать пользователей",
"Saving" : "Сохраняется",
"Back" : "Назад",
"Continue" : "Продолжить",
diff --git a/apps/user_ldap/l10n/sk_SK.js b/apps/user_ldap/l10n/sk_SK.js
index 745f17a0145..5f9c6f3893b 100644
--- a/apps/user_ldap/l10n/sk_SK.js
+++ b/apps/user_ldap/l10n/sk_SK.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Failed to clear the mappings." : "Nepodarilo sa vymazať mapovania.",
"Failed to delete the server configuration" : "Zlyhalo zmazanie nastavenia servera.",
+ "The configuration is invalid: anonymous bind is not allowed." : "Nastavenia sú neplatné: anonymný bind nie je povolený.",
"The configuration is valid and the connection could be established!" : "Nastavenie je v poriadku a pripojenie je stabilné.",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje.",
"The configuration is invalid. Please have a look at the logs for further details." : "Konfigurácia je chybná. Prosím, pozrite sa do logov pre ďalšie podrobnosti.",
@@ -10,15 +11,20 @@ OC.L10N.register(
"No configuration specified" : "Nie je určená konfigurácia",
"No data specified" : "Nie sú vybraté dáta",
" Could not set configuration %s" : "Nemôžem nastaviť konfiguráciu %s",
+ "Action does not exist" : "Takáto akcia neexistuje",
+ "The Base DN appears to be wrong" : "Základné DN je chybné",
"Configuration incorrect" : "Nesprávna konfigurácia",
"Configuration incomplete" : "Nekompletná konfigurácia",
"Configuration OK" : "Konfigurácia je v poriadku",
"Select groups" : "Vybrať skupinu",
"Select object classes" : "Vyberte triedy objektov",
+ "Please check the credentials, they seem to be wrong." : "Overte svoje oprávnenia, nie sú správne nastavené.",
+ "Please specify the port, it could not be auto-detected." : "Zadajte port, nemožno ho detekovať automaticky.",
"{nthServer}. Server" : "{nthServer}. Server",
"Do you really want to delete the current Server Configuration?" : "Naozaj chcete zmazať súčasné nastavenie servera?",
"Confirm Deletion" : "Potvrdiť vymazanie",
"Select attributes" : "Vyberte atribúty",
+ "User found and settings verified." : "Používateľ bol nájdený a nastavenie bolo overené.",
"_%s group found_::_%s groups found_" : ["%s nájdená skupina","%s nájdené skupiny","%s nájdených skupín"],
"_%s user found_::_%s users found_" : ["%s nájdený používateľ","%s nájdení používatelia","%s nájdených používateľov"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Nemožno zistiť používateľský atribút pre zobrazenie používateľského mena. Prosím, zadajte ho sami v pokročilých nastaveniach LDAP.",
@@ -31,30 +37,45 @@ OC.L10N.register(
"Test Configuration" : "Test nastavenia",
"Help" : "Pomoc",
"Groups meeting these criteria are available in %s:" : "Skupiny spĺňajúce tieto kritériá sú k dispozícii v %s:",
+ "Only these object classes:" : "Len tieto triedy objektov:",
+ "Only from these groups:" : "Len z týchto skupín:",
"Search groups" : "Prehľadať skupiny",
"Available groups" : "Dostupné skupiny",
"Selected groups" : "Vybrané skupiny",
+ "Edit LDAP Query" : "Upraviť LDAP požiadavku",
"LDAP Filter:" : "LDAP filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.",
+ "Verify settings and count groups" : "Overiť nastavenia a spočítať skupiny",
+ "When logging in, %s will find the user based on the following attributes:" : "Pri prihlasovaní, %s bude vyhľadávať používateľov na základe týchto atribútov:",
"LDAP / AD Username:" : "Používateľské meno LDAP / AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Povoliť prihlásenie prostredníctvom LDAP / AD používateľského mena, ktoré má zadanú hodnotu v atribútoch uid alebo samaccountname.",
"LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Povoliť prihlásenie prostredníctvom emailu. Povolené atribúty sú Mail a mailPrimaryAddress.",
"Other Attributes:" : "Iné atribúty:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahrádza používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"",
+ "Test Loginname" : "Testovacie prihlasovacie meno",
+ "Verify settings" : "Overiť nastavenia",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
+ "Adds a new and blank configuration" : "Pridať novú prázdnu konfiguráciu",
+ "Delete the current configuration" : "Vymazať súčasnú konfiguráciu",
"Host" : "Hostiteľ",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Môžete vynechať protokol, okrem prípadu, kedy sa vyžaduje SSL. Vtedy začnite s ldaps://",
"Port" : "Port",
+ "Detect Port" : "Detekovať port",
"User DN" : "Používateľské 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 klientského používateľa, ku ktorému tvoríte väzbu, napr. uid=agent,dc=example,dc=com. Pre anonymný prístup ponechajte údaje DN a Heslo prázdne.",
"Password" : "Heslo",
"For anonymous access, leave DN and Password empty." : "Pre anonymný prístup ponechajte údaje DN a Heslo prázdne.",
"One Base DN per line" : "Jedno základné DN na riadok",
"You can specify Base DN for users and groups in the Advanced tab" : "V rozšírenom nastavení môžete zadať základné DN pre používateľov a skupiny",
+ "Detect Base DN" : "Detekovať základnú DN",
+ "Test Base DN" : "Otestovať základnú DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Bráni automatickým LDAP požiadavkám. Výhodné pre objemné nastavenia ale vyžaduje si dobrú znalosť o LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ručné vloženie LDAP filtrov (odporúčané pre rozsiahle adresáre)",
"Limit %s access to users meeting these criteria:" : "Obmedziť %s prístup na používateľov spĺňajúcich tieto kritériá:",
"The filter specifies which LDAP users shall have access to the %s instance." : "Tento filter LDAP určuje, ktorí používatelia majú prístup k %s inštancii.",
+ "Verify settings and count users" : "Overiť nastavenia a spočítať používateľov",
"Saving" : "Ukladá sa",
"Back" : "Späť",
"Continue" : "Pokračovať",
diff --git a/apps/user_ldap/l10n/sk_SK.json b/apps/user_ldap/l10n/sk_SK.json
index 269ca3e076d..9c1e2e6e9e4 100644
--- a/apps/user_ldap/l10n/sk_SK.json
+++ b/apps/user_ldap/l10n/sk_SK.json
@@ -1,6 +1,7 @@
{ "translations": {
"Failed to clear the mappings." : "Nepodarilo sa vymazať mapovania.",
"Failed to delete the server configuration" : "Zlyhalo zmazanie nastavenia servera.",
+ "The configuration is invalid: anonymous bind is not allowed." : "Nastavenia sú neplatné: anonymný bind nie je povolený.",
"The configuration is valid and the connection could be established!" : "Nastavenie je v poriadku a pripojenie je stabilné.",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje.",
"The configuration is invalid. Please have a look at the logs for further details." : "Konfigurácia je chybná. Prosím, pozrite sa do logov pre ďalšie podrobnosti.",
@@ -8,15 +9,20 @@
"No configuration specified" : "Nie je určená konfigurácia",
"No data specified" : "Nie sú vybraté dáta",
" Could not set configuration %s" : "Nemôžem nastaviť konfiguráciu %s",
+ "Action does not exist" : "Takáto akcia neexistuje",
+ "The Base DN appears to be wrong" : "Základné DN je chybné",
"Configuration incorrect" : "Nesprávna konfigurácia",
"Configuration incomplete" : "Nekompletná konfigurácia",
"Configuration OK" : "Konfigurácia je v poriadku",
"Select groups" : "Vybrať skupinu",
"Select object classes" : "Vyberte triedy objektov",
+ "Please check the credentials, they seem to be wrong." : "Overte svoje oprávnenia, nie sú správne nastavené.",
+ "Please specify the port, it could not be auto-detected." : "Zadajte port, nemožno ho detekovať automaticky.",
"{nthServer}. Server" : "{nthServer}. Server",
"Do you really want to delete the current Server Configuration?" : "Naozaj chcete zmazať súčasné nastavenie servera?",
"Confirm Deletion" : "Potvrdiť vymazanie",
"Select attributes" : "Vyberte atribúty",
+ "User found and settings verified." : "Používateľ bol nájdený a nastavenie bolo overené.",
"_%s group found_::_%s groups found_" : ["%s nájdená skupina","%s nájdené skupiny","%s nájdených skupín"],
"_%s user found_::_%s users found_" : ["%s nájdený používateľ","%s nájdení používatelia","%s nájdených používateľov"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Nemožno zistiť používateľský atribút pre zobrazenie používateľského mena. Prosím, zadajte ho sami v pokročilých nastaveniach LDAP.",
@@ -29,30 +35,45 @@
"Test Configuration" : "Test nastavenia",
"Help" : "Pomoc",
"Groups meeting these criteria are available in %s:" : "Skupiny spĺňajúce tieto kritériá sú k dispozícii v %s:",
+ "Only these object classes:" : "Len tieto triedy objektov:",
+ "Only from these groups:" : "Len z týchto skupín:",
"Search groups" : "Prehľadať skupiny",
"Available groups" : "Dostupné skupiny",
"Selected groups" : "Vybrané skupiny",
+ "Edit LDAP Query" : "Upraviť LDAP požiadavku",
"LDAP Filter:" : "LDAP filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.",
+ "Verify settings and count groups" : "Overiť nastavenia a spočítať skupiny",
+ "When logging in, %s will find the user based on the following attributes:" : "Pri prihlasovaní, %s bude vyhľadávať používateľov na základe týchto atribútov:",
"LDAP / AD Username:" : "Používateľské meno LDAP / AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Povoliť prihlásenie prostredníctvom LDAP / AD používateľského mena, ktoré má zadanú hodnotu v atribútoch uid alebo samaccountname.",
"LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Povoliť prihlásenie prostredníctvom emailu. Povolené atribúty sú Mail a mailPrimaryAddress.",
"Other Attributes:" : "Iné atribúty:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahrádza používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"",
+ "Test Loginname" : "Testovacie prihlasovacie meno",
+ "Verify settings" : "Overiť nastavenia",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
+ "Adds a new and blank configuration" : "Pridať novú prázdnu konfiguráciu",
+ "Delete the current configuration" : "Vymazať súčasnú konfiguráciu",
"Host" : "Hostiteľ",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Môžete vynechať protokol, okrem prípadu, kedy sa vyžaduje SSL. Vtedy začnite s ldaps://",
"Port" : "Port",
+ "Detect Port" : "Detekovať port",
"User DN" : "Používateľské 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 klientského používateľa, ku ktorému tvoríte väzbu, napr. uid=agent,dc=example,dc=com. Pre anonymný prístup ponechajte údaje DN a Heslo prázdne.",
"Password" : "Heslo",
"For anonymous access, leave DN and Password empty." : "Pre anonymný prístup ponechajte údaje DN a Heslo prázdne.",
"One Base DN per line" : "Jedno základné DN na riadok",
"You can specify Base DN for users and groups in the Advanced tab" : "V rozšírenom nastavení môžete zadať základné DN pre používateľov a skupiny",
+ "Detect Base DN" : "Detekovať základnú DN",
+ "Test Base DN" : "Otestovať základnú DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Bráni automatickým LDAP požiadavkám. Výhodné pre objemné nastavenia ale vyžaduje si dobrú znalosť o LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ručné vloženie LDAP filtrov (odporúčané pre rozsiahle adresáre)",
"Limit %s access to users meeting these criteria:" : "Obmedziť %s prístup na používateľov spĺňajúcich tieto kritériá:",
"The filter specifies which LDAP users shall have access to the %s instance." : "Tento filter LDAP určuje, ktorí používatelia majú prístup k %s inštancii.",
+ "Verify settings and count users" : "Overiť nastavenia a spočítať používateľov",
"Saving" : "Ukladá sa",
"Back" : "Späť",
"Continue" : "Pokračovať",
diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js
index 8bf964638ad..4e52cb05bd9 100644
--- a/apps/user_ldap/l10n/sr.js
+++ b/apps/user_ldap/l10n/sr.js
@@ -12,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" : "Базни ДН је изгледа погрешан",
"Configuration incorrect" : "Конфигурација је неисправна",
"Configuration incomplete" : "Конфигурација није комплетна",
"Configuration OK" : "Конфигурација је у реду",
@@ -30,6 +31,7 @@ OC.L10N.register(
"Confirm Deletion" : "Потврдa брисањa",
"Mappings cleared successfully!" : "Мапирања успешно очишћена!",
"Error while clearing the mappings." : "Грешка при чишћењу мапирања.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Анонимно везивање није дозвољено. Дајте кориснички ДН и лозинку.",
"LDAP Operations error. Anonymous bind might not be allowed." : "Грешка ЛДАП радње. Анонимна веза можда није дозвољена.",
"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?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?",
@@ -76,6 +78,8 @@ OC.L10N.register(
"Verify settings" : "Провери поставке",
"1. Server" : "1. сервер",
"%s. Server:" : "%s. Сервер:",
+ "Adds a new and blank configuration" : "Додаје нову празну поставу",
+ "Copy current configuration into new directory binding" : "Копирај тренутну поставу у везивање новог директоријума",
"Delete the current configuration" : "Обриши тренутне поставке",
"Host" : "Домаћин",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://",
diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json
index 93434dbbae1..c5b8b256cf8 100644
--- a/apps/user_ldap/l10n/sr.json
+++ b/apps/user_ldap/l10n/sr.json
@@ -10,6 +10,7 @@
"No data specified" : "Нису наведени подаци",
" Could not set configuration %s" : "Нисам могао да подесим конфигурацију %s",
"Action does not exist" : "Радња не постоји",
+ "The Base DN appears to be wrong" : "Базни ДН је изгледа погрешан",
"Configuration incorrect" : "Конфигурација је неисправна",
"Configuration incomplete" : "Конфигурација није комплетна",
"Configuration OK" : "Конфигурација је у реду",
@@ -28,6 +29,7 @@
"Confirm Deletion" : "Потврдa брисањa",
"Mappings cleared successfully!" : "Мапирања успешно очишћена!",
"Error while clearing the mappings." : "Грешка при чишћењу мапирања.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Анонимно везивање није дозвољено. Дајте кориснички ДН и лозинку.",
"LDAP Operations error. Anonymous bind might not be allowed." : "Грешка ЛДАП радње. Анонимна веза можда није дозвољена.",
"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?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?",
@@ -74,6 +76,8 @@
"Verify settings" : "Провери поставке",
"1. Server" : "1. сервер",
"%s. Server:" : "%s. Сервер:",
+ "Adds a new and blank configuration" : "Додаје нову празну поставу",
+ "Copy current configuration into new directory binding" : "Копирај тренутну поставу у везивање новог директоријума",
"Delete the current configuration" : "Обриши тренутне поставке",
"Host" : "Домаћин",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://",
diff --git a/apps/user_ldap/l10n/th_TH.js b/apps/user_ldap/l10n/th_TH.js
index 4aa92c2ec8c..d7215c96b6d 100644
--- a/apps/user_ldap/l10n/th_TH.js
+++ b/apps/user_ldap/l10n/th_TH.js
@@ -1,44 +1,159 @@
OC.L10N.register(
"user_ldap",
{
- "Failed to delete the server configuration" : "การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว",
+ "Failed to clear the mappings." : "ล้มเหลวขณะล้าง 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." : "การกำหนดค่าไม่ถูกต้อง ดูได้ที่บันทึกสำหรับรายละเอียดเพิ่มเติม",
+ "No action specified" : "ไม่ได้ระบุการดำเนินการ",
+ "No configuration specified" : "ไม่ได้กำหนดค่า",
+ "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" : "กำหนดค่าเสร็จสมบูรณ์",
"Select groups" : "เลือกกลุ่ม",
+ "Select object classes" : "เลือกคลาสวัตถุ",
+ "Please check the credentials, they seem to be wrong." : "กรุณาตรวจสอบข้อมูลประจำตัวของพวกเขาดูเหมือนจะมีข้อผิดพลาด",
+ "Please specify the port, it could not be auto-detected." : "กรุณาระบุพอร์ต มันไม่สามารถตรวจพบอัตโนมัติ",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN ไม่สามารถตรวจพบโดยอัตโนมัติกรุณาแก้ไขข้อมูลของโฮสต์และพอร์ต",
+ "Could not detect Base DN, please enter it manually." : "ไม่สามารถตรวจสอบ Base DN โปรดเลือกด้วยตนเอง",
+ "{nthServer}. Server" : "เซิร์ฟเวอร์ {nthServer}",
+ "No object found in the given Base DN. Please revise." : "ไม่พบวัตถุที่กำหนดใน Base DN กรุณาแก้ไข",
+ "More than 1.000 directory entries available." : "มีรายการไดเรกทอรีมากกว่า 1,000 รายการ",
+ " entries available within the provided Base DN" : "รายการที่มีอยู่ใน Base DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "เกิดข้อผิดพลาด กรุณาตรวจสอบ Base DN เช่นเดียวกับการตั้งค่าการเชื่อมต่อและข้อมูลที่สำคัญ",
"Do you really want to delete the current Server Configuration?" : "คุณแน่ใจแล้วหรือว่าต้องการลบการกำหนดค่าเซิร์ฟเวอร์ปัจจุบันทิ้งไป?",
"Confirm Deletion" : "ยืนยันการลบทิ้ง",
+ "Mappings cleared successfully!" : "ล้าง Mappings เรียบร้อยแล้ว",
+ "Error while clearing the mappings." : "เกิดข้อผิดพลาดขณะล้าง 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" : "โหมดสลับ",
+ "Select attributes" : "เลือกคุณลักษณะ",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "ไม่พบผู้ใช้ กรุณาตรวจสอบคุณลักษณะการเข้าสู่ระบบและชื่อผู้ใช้ของคุณ ตัวกรองที่มีประสิทธิภาพ (การคัดลอกและวางสำหรับการตรวจสอบคำสั่งทีละบรรทัด): <br/>",
+ "User found and settings verified." : "พบผู้ใช้และการตั้งค่าได้รับการตรวจสอบแล้ว",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "การตั้งค่าได้รับการตรวจสอบแล้ว แต่ผู้ใช้คนหนึ่งพบว่า มีเพียงครั้งแรกที่จะสามารถที่จะเข้าสู่ระบบ กรุณาพิจารณาตัวกรองที่จำกัดมากขึ้น",
+ "An unspecified error occurred. Please check the settings and the log." : "เกิดข้อผิดพลาดที่ระบุไม่ได้ กรุณาตรวจสอบการตั้งค่าและบันทึกของคุณ",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "ตัวกรองการค้นหาไม่ถูกต้องอาจเป็นเพราะปัญหาไวยากรณ์เช่นหมายเลขที่ไม่สม่ำเสมอของวงเล็บเปิดและปิด กรุณาแก้ไข",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยัง LDAP/AD โปรดตรวจสอบโฮสต์พอร์ตและข้อมูลอื่นๆ",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "ตัวยึดตำแหน่ง %uid หายไป มันจะถูกแทนที่ด้วยชื่อที่ใช้ในการเข้าสู่ระบบเมื่อสอบถาม LDAP/AD",
+ "Please provide a login name to test against" : "โปรดระบุชื่อที่ใช้ในการเข้าสู่ระบบเพื่อทดสอบข้อขัดแย้ง",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "กล่องข้อความกลุ่มถูกปิดการใช้งานเนื่องจากเซิร์ฟเวอร์ LDAP/AD ไม่สนับสนุน memberOf",
+ "_%s group found_::_%s groups found_" : ["พบ %s กลุ่ม"],
+ "_%s user found_::_%s users found_" : ["พบผู้ใช้ %s คน"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "ไม่สามารถตรวจสอบคุณลักษณะการแสดงชื่อของผู้ใช้ กรุณาระบุการตั้งค่า LDAP ขั้นสูงด้วยตัวคุณเอง",
+ "Could not find the desired feature" : "ไม่พบคุณลักษณะที่ต้องการ",
+ "Invalid Host" : "โฮสต์ไม่ถูกต้อง",
+ "Server" : "เซิร์ฟเวอร์",
"Users" : "ผู้ใช้งาน",
+ "Login Attributes" : "คุณลักษณะการเข้าสู่ระบบ",
"Groups" : "กลุ่ม",
+ "Test Configuration" : "ทดสอบการตั้งค่า",
"Help" : "ช่วยเหลือ",
+ "Groups meeting these criteria are available in %s:" : "การประชุมกลุ่มเหล่านี้มีหลักเกณฑ์อยู่ใน %s:",
+ "Only these object classes:" : "เฉพาะคลาสของวัตถุเหล่านี้:",
+ "Only from these groups:" : "เฉพาะจากกลุ่มเหล่านี้:",
+ "Search groups" : "ค้นหากลุ่ม",
+ "Available groups" : "กลุ่มที่สามารถใช้ได้",
+ "Selected groups" : "กลุ่มที่เลือก",
+ "Edit LDAP Query" : "แก้ไข LDAP Query",
+ "LDAP Filter:" : "ตัวกรอง LDAP:",
+ "The filter specifies which LDAP groups shall have access to the %s instance." : "ระบุตัวกรองกลุ่ม LDAP ที่จะเข้าถึง %s",
+ "Verify settings and count groups" : "ตรวจสอบการตั้งค่าและจำนวนกลุ่มนับ",
+ "When logging in, %s will find the user based on the following attributes:" : "เมื่อเข้าสู่ระบบ %s จะได้พบกับผู้ใช้ตามลักษณะดังต่อไปนี้:",
+ "LDAP / AD Username:" : "ชื่อผู้ใช้ LDAP/AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "อนุญาตให้ผู้ใช้เข้าสู่ระบบ LDAP/AD ซึ่งเป็นทั้ง uid หรือ samAccountName และมันจะถูกตรวจพบ",
+ "LDAP / AD Email Address:" : "ที่อยู่อีเมล LDAP/AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "อนุญาตให้เข้าสู่ระบบด้วยอีเมล Mail และ mailPrimaryAddress จะได้รับอนุญาต",
+ "Other Attributes:" : "คุณลักษณะอื่นๆ:",
+ "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "กำหนดตัวกรองที่จะใช้ เมื่อพยายามเข้าสู่ระบบจะใช้ %%uid แทนชื่อผู้ใช้ในการดำเนินการเข้าสู่ระบบ ตัวอย่าง: \"uid=%%uid\"",
+ "Test Loginname" : "ทดสอบชื่อที่ใช้ในการเข้าสู่ระบบ",
+ "Verify settings" : "ตรวจสอบการตั้งค่า",
+ "1. Server" : "1. เซิร์ฟเวอร์",
+ "%s. Server:" : "เซิร์ฟเวอร์%s",
+ "Adds a new and blank configuration" : "เพิ่มใหม่และกำหนดค่าว่างเปล่า",
+ "Copy current configuration into new directory binding" : "คัดลอกการตั้งค่าปัจจุบันลงในไดเรกทอรีใหม่ที่ผูกกัน",
+ "Delete the current configuration" : "ลบการตั้งค่าปัจจุบัน",
"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 และ รหัสผ่านเอาไว้",
+ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN ของผู้ใช้ไคลเอ็นต์อะไรก็ตามที่ผูกอยู่ด้วย เช่น uid=agent, dc=example, dc=com, สำหรับการเข้าถึงโดยบุคคลนิรนาม, ให้เว้นว่าง DN และรหัสผ่านเอาไว้",
"Password" : "รหัสผ่าน",
"For anonymous access, leave DN and Password empty." : "สำหรับการเข้าถึงโดยบุคคลนิรนาม ให้เว้นว่าง DN และรหัสผ่านไว้",
- "One Base DN per line" : "หนึ่ง Base DN ต่อบรรทัด",
- "You can specify Base DN for users and groups in the Advanced tab" : "คุณสามารถระบุ DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้",
+ "One Base DN per line" : "หนึ่ง Base DN ต่อหนึ่งบรรทัด",
+ "You can specify Base DN for users and groups in the Advanced tab" : "คุณสามารถระบุ Base DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้",
+ "Detect Base DN" : "ตรวจพบ Base DN",
+ "Test Base DN" : "ทดสอบ Base DN",
+ "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "หลีกเลี่ยงการร้องขอ LDAP อัตโนมัติ ดีกว่าสำหรับการตั้งค่าที่มากกว่า แต่ต้องมีความรู้เรื่อง LDAP",
+ "Manually enter LDAP filters (recommended for large directories)" : "ป้อนตัวกรอง LDAP ด้วยตนเอง (แนะนำสำหรับไดเรกทอรีขนาดใหญ่)",
+ "Limit %s access to users meeting these criteria:" : "จำกัด %s ให้เข้าถึงผู้ใช้ที่อยู่ในเงื่อนไขเหล่านี้:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "คลาสวัตถุที่พบมากที่สุดสำหรับผู้ใช้มี organizationalPerson, person, user และ inetOrgPerson หากคุณไม่แน่ใจว่าต้องเลือกคลาสวัตถุตัวไหนโปรดปรึกษาผู้ดูแลระบบไดเรกทอรีของคุณ",
+ "The filter specifies which LDAP users shall have access to the %s instance." : "ระบุตัวกรองที่ผู้ใช้ LDAP จะมีการเข้าถึง %s",
+ "Verify settings and count users" : "ตรวจสอบการตั้งค่าและการนับจำนวนผู้ใช้",
+ "Saving" : "บันทึก",
"Back" : "ย้อนกลับ",
+ "Continue" : "ดำเนินการต่อ",
+ "LDAP" : "LDAP",
+ "Expert" : "ผู้เชี่ยวชาญ",
"Advanced" : "ขั้นสูง",
+ "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>คำเตือน:</b> แอพฯ user_ldap และ user_webdavauth เข้ากันไม่ได้ คุณอาจจะพบเหตุการณ์ที่ไม่คาดคิด กรุณาขอให้ผู้ดูแลระบบของคุณปิดการใช้งานบางอย่างของพวกเขา",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>คำเตือน:</b> โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว",
"Connection Settings" : "ตั้งค่าการเชื่อมต่อ",
+ "Configuration Active" : "ตั้งค่าการใช้งาน",
+ "When unchecked, this configuration will be skipped." : "เมื่อไม่เลือกการตั้งค่านี้จะถูกข้ามไป",
+ "Backup (Replica) Host" : "การสำรองข้อมูลโฮสต์ (สำรอง) ",
+ "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "ให้โฮสต์สำรองข้อมูลที่จำเป็นของเซิร์ฟเวอร์ LDAP/AD หลัก",
+ "Backup (Replica) Port" : "สำรองข้อมูลพอร์ต (จำลอง) ",
"Disable Main Server" : "ปิดใช้งานเซิร์ฟเวอร์หลัก",
+ "Only connect to the replica server." : "เฉพาะเชื่อมต่อกับเซิร์ฟเวอร์แบบจำลอง",
+ "Case insensitive LDAP server (Windows)" : "กรณีเซิร์ฟเวอร์ LDAP ไม่ตอบสนอง (วินโดว์ส)",
"Turn off SSL certificate validation." : "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL",
- "in seconds. A change empties the cache." : "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า",
+ "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "ไม่แนะนำ ควรใช้สำหรับการทดสอบเท่านั้น! ถ้าการเชื่อมต่อใช้งานได้เฉพาะกับตัวเลือกนี้ นำเข้าใบรับรอง SSL เซิร์ฟเวอร์ LDAP ในเซิร์ฟเวอร์ %s ของคุณ ",
+ "Cache Time-To-Live" : "แคช TTL",
+ "in seconds. A change empties the cache." : "ในอีกไม่กี่วินาที ระบบจะล้างข้อมูลในแคชให้ว่างเปล่า",
"Directory Settings" : "ตั้งค่าไดเร็กทอรี่",
"User Display Name Field" : "ช่องแสดงชื่อผู้ใช้งานที่ต้องการ",
+ "The LDAP attribute to use to generate the user's display name." : "คุณลักษณะ LDAP เพื่อใช้ในการสร้างชื่อที่ปรากฏของผู้ใช้",
"Base User Tree" : "รายการผู้ใช้งานหลักแบบ Tree",
- "One User Base DN per line" : "หนึ่ง User Base DN ต่อบรรทัด",
+ "One User Base DN per line" : "หนึ่งผู้ใช้ Base DN ต่อหนึ่งบรรทัด",
"User Search Attributes" : "คุณลักษณะการค้นหาชื่อผู้ใช้",
"Optional; one attribute per line" : "ตัวเลือกเพิ่มเติม; หนึ่งคุณลักษณะต่อบรรทัด",
"Group Display Name Field" : "ช่องแสดงชื่อกลุ่มที่ต้องการ",
+ "The LDAP attribute to use to generate the groups's display name." : "คุณลักษณะ LDAP เพื่อใช้ในการสร้างชื่อที่ปรากฏของกลุ่ม",
"Base Group Tree" : "รายการกลุ่มหลักแบบ Tree",
- "One Group Base DN per line" : "หนึ่ง Group Base DN ต่อบรรทัด",
+ "One Group Base DN per line" : "หนึ่ง Group Base DN ต่อหนึ่งบรรทัด",
"Group Search Attributes" : "คุณลักษณะการค้นหาแบบกลุ่ม",
"Group-Member association" : "ความสัมพันธ์ของสมาชิกในกลุ่ม",
+ "Nested Groups" : "กลุ่มที่ซ้อนกัน",
+ "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "เมื่อเปิดสวิตซ์ กลุ่มจะได้รับการสนันสนุน (เฉพาะการทำงานถ้าคุณลักษณะสมาชิกกลุ่มมี DN)",
+ "Paging chunksize" : "ขนาด Paging chunk",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize ใช้สำหรับการค้นหาเพจ LDAP มันส่งคืนผลลัพธ์ที่มีขนาดใหญ่เช่นการนับผู้ใช้หรือกลุ่ม (ตั้งค่าเป็น 0 เพื่อปิดการใช้งาน)",
"Special Attributes" : "คุณลักษณะพิเศษ",
+ "Quota Field" : "ช่องโควต้า",
+ "Quota Default" : "โควต้าเริ่มต้น",
"in bytes" : "ในหน่วยไบต์",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD"
+ "Email Field" : "ช่องอีเมล",
+ "User Home Folder Naming Rule" : "กฎการตั้งชื่อโฟลเดอร์แรกของผู้ใช้",
+ "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD",
+ "Internal Username" : "ชื่อผู้ใช้ภายใน",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "ค่าเริ่มต้นของชื่อผู้ใช้ภายในจะถูกสร้างขึ้นจากแอตทริบิวต์ UUID มันทำให้แน่ใจว่าชื่อผู้ใช้มีความเป็นเอกลักษณ์และตัวอักษรไม่จำเป็นต้องถูกแปลงชื่อผู้ใช้ในภายหลัง มีข้อจำกัด ว่ามีเพียงตัวอักษรเหล่านี้จะได้รับอนุญาต: [ a-zA-Z0-9_.@- ] ส่วนตัวอักษรอื่นๆ จะถูกแทนที่ด้วยรหัส ASCII นอกจากนี้ยังเป็นชื่อเริ่มต้นสำหรับโฟลเดอร์โฮมของผู้ใช้ และเป็นส่วนหนึ่งของ URL ระยะไกลเช่นสำหรับทุก *บริการDAV เพื่อให้เกิดการทำงานที่คล้ายกันเช่นเดียวกับ ownCloud 5 ใส่แอตทริบิวต์แสดงชื่อที่ผู้ใช้ในสาขาดังต่อไปนี้ ปล่อยให้มันว่างเปล่าสำหรับการทำงานเริ่มต้น การเปลี่ยนแปลงจะมีผลเฉพาะในแมปใหม่ (เพิ่ม) ผู้ใช้ LDAP",
+ "Internal Username Attribute:" : "ชื่อผู้ใช้ภายในคุณสมบัติ:",
+ "Override UUID detection" : "แทนที่การตรวจสอบ UUID",
+ "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "โดยค่าเริ่มต้นแอตทริบิวต์ UUID มีถูกตรวจพบโดยอัตโนมัติ แอตทริบิวต์ UUID จะใช้เพื่อระบุผู้ใช้ของ LDAP และกลุ่ม นอกจากนี้ยังมีชื่อผู้ใช้ภายในจะถูกสร้างขึ้นบนพื้นฐาน UUID หากไม่ได้ระบุไว้ข้างต้น คุณสามารถแทนที่การตั้งค่าและส่งแอตทริบิวต์ที่คุณเลือก คุณต้องให้แน่ใจว่าแอตทริบิวต์ที่คุณเลือกสามารถเป็นจริงสำหรับทั้งผู้ใช้และกลุ่มและมันควรจะไม่ซ้ำกัน ปล่อยให้มันว่างเปล่าสำหรับการทำงานเริ่มต้น การเปลี่ยนแปลงจะมีผลเฉพาะในแมปใหม่ (เพิ่ม) ผู้ใช้ LDAP และกลุ่ม",
+ "UUID Attribute for Users:" : "แอตทริบิวต์ UUID สำหรับผู้ใช้:",
+ "UUID Attribute for Groups:" : "แอตทริบิวต์ UUID สำหรับกลุ่ม:",
+ "Username-LDAP User Mapping" : "Username-LDAP ผู้ใช้ Mapping",
+ "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ชื่อผู้ใช้จะใช้ในการจัดเก็บและกำหนดข้อมูล (เมตา) เพื่อรู้จักกับผู้ใช้และสามารถระบุได้อย่างแม่นยำ แต่ละ LDAP จะมีชื่อผู้ใช้ภายใน จึงต้องทำ Mapping ให้กับผู้ใช้ LDAP ชื่อผู้ใช้ที่ถูกสร้างขึ้นจะถูกแมปเข้ากับ UUID ของผู้ใช้ LDAP นอกจากนี้ DN ก็จะถูกแคชเช่นกันเพื่อลดการทำงานร่วมกันของ LDAP แต่มันก็ไม่ได้ใช้เพื่อระบุตัวตน หากมีการเปลี่ยนแปลง DN การเปลี่ยนแปลงจะถูกพบในทันที ชื่อผู้ใช้ภายในจะถูกใช้กับทั้งหมด การล้างแมปไม่มีผลต่อการกำหนดค่า LDAP ทั้งหมด! \nและจะเกิดขึ้นเฉพาะในการทดสอบหรือขั้นตอนการทดลอง",
+ "Clear Username-LDAP User Mapping" : "ล้าง Username-LDAP ผู้ใช้ Mapping",
+ "Clear Groupname-LDAP Group Mapping" : "ล้าง Groupname-LDAP กลุ่ม Mapping"
},
"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/th_TH.json b/apps/user_ldap/l10n/th_TH.json
index 130b90657e9..1a05c5c68ca 100644
--- a/apps/user_ldap/l10n/th_TH.json
+++ b/apps/user_ldap/l10n/th_TH.json
@@ -1,42 +1,157 @@
{ "translations": {
- "Failed to delete the server configuration" : "การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว",
+ "Failed to clear the mappings." : "ล้มเหลวขณะล้าง 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." : "การกำหนดค่าไม่ถูกต้อง ดูได้ที่บันทึกสำหรับรายละเอียดเพิ่มเติม",
+ "No action specified" : "ไม่ได้ระบุการดำเนินการ",
+ "No configuration specified" : "ไม่ได้กำหนดค่า",
+ "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" : "กำหนดค่าเสร็จสมบูรณ์",
"Select groups" : "เลือกกลุ่ม",
+ "Select object classes" : "เลือกคลาสวัตถุ",
+ "Please check the credentials, they seem to be wrong." : "กรุณาตรวจสอบข้อมูลประจำตัวของพวกเขาดูเหมือนจะมีข้อผิดพลาด",
+ "Please specify the port, it could not be auto-detected." : "กรุณาระบุพอร์ต มันไม่สามารถตรวจพบอัตโนมัติ",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN ไม่สามารถตรวจพบโดยอัตโนมัติกรุณาแก้ไขข้อมูลของโฮสต์และพอร์ต",
+ "Could not detect Base DN, please enter it manually." : "ไม่สามารถตรวจสอบ Base DN โปรดเลือกด้วยตนเอง",
+ "{nthServer}. Server" : "เซิร์ฟเวอร์ {nthServer}",
+ "No object found in the given Base DN. Please revise." : "ไม่พบวัตถุที่กำหนดใน Base DN กรุณาแก้ไข",
+ "More than 1.000 directory entries available." : "มีรายการไดเรกทอรีมากกว่า 1,000 รายการ",
+ " entries available within the provided Base DN" : "รายการที่มีอยู่ใน Base DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "เกิดข้อผิดพลาด กรุณาตรวจสอบ Base DN เช่นเดียวกับการตั้งค่าการเชื่อมต่อและข้อมูลที่สำคัญ",
"Do you really want to delete the current Server Configuration?" : "คุณแน่ใจแล้วหรือว่าต้องการลบการกำหนดค่าเซิร์ฟเวอร์ปัจจุบันทิ้งไป?",
"Confirm Deletion" : "ยืนยันการลบทิ้ง",
+ "Mappings cleared successfully!" : "ล้าง Mappings เรียบร้อยแล้ว",
+ "Error while clearing the mappings." : "เกิดข้อผิดพลาดขณะล้าง 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" : "โหมดสลับ",
+ "Select attributes" : "เลือกคุณลักษณะ",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "ไม่พบผู้ใช้ กรุณาตรวจสอบคุณลักษณะการเข้าสู่ระบบและชื่อผู้ใช้ของคุณ ตัวกรองที่มีประสิทธิภาพ (การคัดลอกและวางสำหรับการตรวจสอบคำสั่งทีละบรรทัด): <br/>",
+ "User found and settings verified." : "พบผู้ใช้และการตั้งค่าได้รับการตรวจสอบแล้ว",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "การตั้งค่าได้รับการตรวจสอบแล้ว แต่ผู้ใช้คนหนึ่งพบว่า มีเพียงครั้งแรกที่จะสามารถที่จะเข้าสู่ระบบ กรุณาพิจารณาตัวกรองที่จำกัดมากขึ้น",
+ "An unspecified error occurred. Please check the settings and the log." : "เกิดข้อผิดพลาดที่ระบุไม่ได้ กรุณาตรวจสอบการตั้งค่าและบันทึกของคุณ",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "ตัวกรองการค้นหาไม่ถูกต้องอาจเป็นเพราะปัญหาไวยากรณ์เช่นหมายเลขที่ไม่สม่ำเสมอของวงเล็บเปิดและปิด กรุณาแก้ไข",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "เกิดข้อผิดพลาดขณะเชื่อมต่อไปยัง LDAP/AD โปรดตรวจสอบโฮสต์พอร์ตและข้อมูลอื่นๆ",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "ตัวยึดตำแหน่ง %uid หายไป มันจะถูกแทนที่ด้วยชื่อที่ใช้ในการเข้าสู่ระบบเมื่อสอบถาม LDAP/AD",
+ "Please provide a login name to test against" : "โปรดระบุชื่อที่ใช้ในการเข้าสู่ระบบเพื่อทดสอบข้อขัดแย้ง",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "กล่องข้อความกลุ่มถูกปิดการใช้งานเนื่องจากเซิร์ฟเวอร์ LDAP/AD ไม่สนับสนุน memberOf",
+ "_%s group found_::_%s groups found_" : ["พบ %s กลุ่ม"],
+ "_%s user found_::_%s users found_" : ["พบผู้ใช้ %s คน"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "ไม่สามารถตรวจสอบคุณลักษณะการแสดงชื่อของผู้ใช้ กรุณาระบุการตั้งค่า LDAP ขั้นสูงด้วยตัวคุณเอง",
+ "Could not find the desired feature" : "ไม่พบคุณลักษณะที่ต้องการ",
+ "Invalid Host" : "โฮสต์ไม่ถูกต้อง",
+ "Server" : "เซิร์ฟเวอร์",
"Users" : "ผู้ใช้งาน",
+ "Login Attributes" : "คุณลักษณะการเข้าสู่ระบบ",
"Groups" : "กลุ่ม",
+ "Test Configuration" : "ทดสอบการตั้งค่า",
"Help" : "ช่วยเหลือ",
+ "Groups meeting these criteria are available in %s:" : "การประชุมกลุ่มเหล่านี้มีหลักเกณฑ์อยู่ใน %s:",
+ "Only these object classes:" : "เฉพาะคลาสของวัตถุเหล่านี้:",
+ "Only from these groups:" : "เฉพาะจากกลุ่มเหล่านี้:",
+ "Search groups" : "ค้นหากลุ่ม",
+ "Available groups" : "กลุ่มที่สามารถใช้ได้",
+ "Selected groups" : "กลุ่มที่เลือก",
+ "Edit LDAP Query" : "แก้ไข LDAP Query",
+ "LDAP Filter:" : "ตัวกรอง LDAP:",
+ "The filter specifies which LDAP groups shall have access to the %s instance." : "ระบุตัวกรองกลุ่ม LDAP ที่จะเข้าถึง %s",
+ "Verify settings and count groups" : "ตรวจสอบการตั้งค่าและจำนวนกลุ่มนับ",
+ "When logging in, %s will find the user based on the following attributes:" : "เมื่อเข้าสู่ระบบ %s จะได้พบกับผู้ใช้ตามลักษณะดังต่อไปนี้:",
+ "LDAP / AD Username:" : "ชื่อผู้ใช้ LDAP/AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "อนุญาตให้ผู้ใช้เข้าสู่ระบบ LDAP/AD ซึ่งเป็นทั้ง uid หรือ samAccountName และมันจะถูกตรวจพบ",
+ "LDAP / AD Email Address:" : "ที่อยู่อีเมล LDAP/AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "อนุญาตให้เข้าสู่ระบบด้วยอีเมล Mail และ mailPrimaryAddress จะได้รับอนุญาต",
+ "Other Attributes:" : "คุณลักษณะอื่นๆ:",
+ "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "กำหนดตัวกรองที่จะใช้ เมื่อพยายามเข้าสู่ระบบจะใช้ %%uid แทนชื่อผู้ใช้ในการดำเนินการเข้าสู่ระบบ ตัวอย่าง: \"uid=%%uid\"",
+ "Test Loginname" : "ทดสอบชื่อที่ใช้ในการเข้าสู่ระบบ",
+ "Verify settings" : "ตรวจสอบการตั้งค่า",
+ "1. Server" : "1. เซิร์ฟเวอร์",
+ "%s. Server:" : "เซิร์ฟเวอร์%s",
+ "Adds a new and blank configuration" : "เพิ่มใหม่และกำหนดค่าว่างเปล่า",
+ "Copy current configuration into new directory binding" : "คัดลอกการตั้งค่าปัจจุบันลงในไดเรกทอรีใหม่ที่ผูกกัน",
+ "Delete the current configuration" : "ลบการตั้งค่าปัจจุบัน",
"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 และ รหัสผ่านเอาไว้",
+ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN ของผู้ใช้ไคลเอ็นต์อะไรก็ตามที่ผูกอยู่ด้วย เช่น uid=agent, dc=example, dc=com, สำหรับการเข้าถึงโดยบุคคลนิรนาม, ให้เว้นว่าง DN และรหัสผ่านเอาไว้",
"Password" : "รหัสผ่าน",
"For anonymous access, leave DN and Password empty." : "สำหรับการเข้าถึงโดยบุคคลนิรนาม ให้เว้นว่าง DN และรหัสผ่านไว้",
- "One Base DN per line" : "หนึ่ง Base DN ต่อบรรทัด",
- "You can specify Base DN for users and groups in the Advanced tab" : "คุณสามารถระบุ DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้",
+ "One Base DN per line" : "หนึ่ง Base DN ต่อหนึ่งบรรทัด",
+ "You can specify Base DN for users and groups in the Advanced tab" : "คุณสามารถระบุ Base DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้",
+ "Detect Base DN" : "ตรวจพบ Base DN",
+ "Test Base DN" : "ทดสอบ Base DN",
+ "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "หลีกเลี่ยงการร้องขอ LDAP อัตโนมัติ ดีกว่าสำหรับการตั้งค่าที่มากกว่า แต่ต้องมีความรู้เรื่อง LDAP",
+ "Manually enter LDAP filters (recommended for large directories)" : "ป้อนตัวกรอง LDAP ด้วยตนเอง (แนะนำสำหรับไดเรกทอรีขนาดใหญ่)",
+ "Limit %s access to users meeting these criteria:" : "จำกัด %s ให้เข้าถึงผู้ใช้ที่อยู่ในเงื่อนไขเหล่านี้:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "คลาสวัตถุที่พบมากที่สุดสำหรับผู้ใช้มี organizationalPerson, person, user และ inetOrgPerson หากคุณไม่แน่ใจว่าต้องเลือกคลาสวัตถุตัวไหนโปรดปรึกษาผู้ดูแลระบบไดเรกทอรีของคุณ",
+ "The filter specifies which LDAP users shall have access to the %s instance." : "ระบุตัวกรองที่ผู้ใช้ LDAP จะมีการเข้าถึง %s",
+ "Verify settings and count users" : "ตรวจสอบการตั้งค่าและการนับจำนวนผู้ใช้",
+ "Saving" : "บันทึก",
"Back" : "ย้อนกลับ",
+ "Continue" : "ดำเนินการต่อ",
+ "LDAP" : "LDAP",
+ "Expert" : "ผู้เชี่ยวชาญ",
"Advanced" : "ขั้นสูง",
+ "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>คำเตือน:</b> แอพฯ user_ldap และ user_webdavauth เข้ากันไม่ได้ คุณอาจจะพบเหตุการณ์ที่ไม่คาดคิด กรุณาขอให้ผู้ดูแลระบบของคุณปิดการใช้งานบางอย่างของพวกเขา",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>คำเตือน:</b> โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว",
"Connection Settings" : "ตั้งค่าการเชื่อมต่อ",
+ "Configuration Active" : "ตั้งค่าการใช้งาน",
+ "When unchecked, this configuration will be skipped." : "เมื่อไม่เลือกการตั้งค่านี้จะถูกข้ามไป",
+ "Backup (Replica) Host" : "การสำรองข้อมูลโฮสต์ (สำรอง) ",
+ "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "ให้โฮสต์สำรองข้อมูลที่จำเป็นของเซิร์ฟเวอร์ LDAP/AD หลัก",
+ "Backup (Replica) Port" : "สำรองข้อมูลพอร์ต (จำลอง) ",
"Disable Main Server" : "ปิดใช้งานเซิร์ฟเวอร์หลัก",
+ "Only connect to the replica server." : "เฉพาะเชื่อมต่อกับเซิร์ฟเวอร์แบบจำลอง",
+ "Case insensitive LDAP server (Windows)" : "กรณีเซิร์ฟเวอร์ LDAP ไม่ตอบสนอง (วินโดว์ส)",
"Turn off SSL certificate validation." : "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL",
- "in seconds. A change empties the cache." : "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า",
+ "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "ไม่แนะนำ ควรใช้สำหรับการทดสอบเท่านั้น! ถ้าการเชื่อมต่อใช้งานได้เฉพาะกับตัวเลือกนี้ นำเข้าใบรับรอง SSL เซิร์ฟเวอร์ LDAP ในเซิร์ฟเวอร์ %s ของคุณ ",
+ "Cache Time-To-Live" : "แคช TTL",
+ "in seconds. A change empties the cache." : "ในอีกไม่กี่วินาที ระบบจะล้างข้อมูลในแคชให้ว่างเปล่า",
"Directory Settings" : "ตั้งค่าไดเร็กทอรี่",
"User Display Name Field" : "ช่องแสดงชื่อผู้ใช้งานที่ต้องการ",
+ "The LDAP attribute to use to generate the user's display name." : "คุณลักษณะ LDAP เพื่อใช้ในการสร้างชื่อที่ปรากฏของผู้ใช้",
"Base User Tree" : "รายการผู้ใช้งานหลักแบบ Tree",
- "One User Base DN per line" : "หนึ่ง User Base DN ต่อบรรทัด",
+ "One User Base DN per line" : "หนึ่งผู้ใช้ Base DN ต่อหนึ่งบรรทัด",
"User Search Attributes" : "คุณลักษณะการค้นหาชื่อผู้ใช้",
"Optional; one attribute per line" : "ตัวเลือกเพิ่มเติม; หนึ่งคุณลักษณะต่อบรรทัด",
"Group Display Name Field" : "ช่องแสดงชื่อกลุ่มที่ต้องการ",
+ "The LDAP attribute to use to generate the groups's display name." : "คุณลักษณะ LDAP เพื่อใช้ในการสร้างชื่อที่ปรากฏของกลุ่ม",
"Base Group Tree" : "รายการกลุ่มหลักแบบ Tree",
- "One Group Base DN per line" : "หนึ่ง Group Base DN ต่อบรรทัด",
+ "One Group Base DN per line" : "หนึ่ง Group Base DN ต่อหนึ่งบรรทัด",
"Group Search Attributes" : "คุณลักษณะการค้นหาแบบกลุ่ม",
"Group-Member association" : "ความสัมพันธ์ของสมาชิกในกลุ่ม",
+ "Nested Groups" : "กลุ่มที่ซ้อนกัน",
+ "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "เมื่อเปิดสวิตซ์ กลุ่มจะได้รับการสนันสนุน (เฉพาะการทำงานถ้าคุณลักษณะสมาชิกกลุ่มมี DN)",
+ "Paging chunksize" : "ขนาด Paging chunk",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize ใช้สำหรับการค้นหาเพจ LDAP มันส่งคืนผลลัพธ์ที่มีขนาดใหญ่เช่นการนับผู้ใช้หรือกลุ่ม (ตั้งค่าเป็น 0 เพื่อปิดการใช้งาน)",
"Special Attributes" : "คุณลักษณะพิเศษ",
+ "Quota Field" : "ช่องโควต้า",
+ "Quota Default" : "โควต้าเริ่มต้น",
"in bytes" : "ในหน่วยไบต์",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD"
+ "Email Field" : "ช่องอีเมล",
+ "User Home Folder Naming Rule" : "กฎการตั้งชื่อโฟลเดอร์แรกของผู้ใช้",
+ "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD",
+ "Internal Username" : "ชื่อผู้ใช้ภายใน",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "ค่าเริ่มต้นของชื่อผู้ใช้ภายในจะถูกสร้างขึ้นจากแอตทริบิวต์ UUID มันทำให้แน่ใจว่าชื่อผู้ใช้มีความเป็นเอกลักษณ์และตัวอักษรไม่จำเป็นต้องถูกแปลงชื่อผู้ใช้ในภายหลัง มีข้อจำกัด ว่ามีเพียงตัวอักษรเหล่านี้จะได้รับอนุญาต: [ a-zA-Z0-9_.@- ] ส่วนตัวอักษรอื่นๆ จะถูกแทนที่ด้วยรหัส ASCII นอกจากนี้ยังเป็นชื่อเริ่มต้นสำหรับโฟลเดอร์โฮมของผู้ใช้ และเป็นส่วนหนึ่งของ URL ระยะไกลเช่นสำหรับทุก *บริการDAV เพื่อให้เกิดการทำงานที่คล้ายกันเช่นเดียวกับ ownCloud 5 ใส่แอตทริบิวต์แสดงชื่อที่ผู้ใช้ในสาขาดังต่อไปนี้ ปล่อยให้มันว่างเปล่าสำหรับการทำงานเริ่มต้น การเปลี่ยนแปลงจะมีผลเฉพาะในแมปใหม่ (เพิ่ม) ผู้ใช้ LDAP",
+ "Internal Username Attribute:" : "ชื่อผู้ใช้ภายในคุณสมบัติ:",
+ "Override UUID detection" : "แทนที่การตรวจสอบ UUID",
+ "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "โดยค่าเริ่มต้นแอตทริบิวต์ UUID มีถูกตรวจพบโดยอัตโนมัติ แอตทริบิวต์ UUID จะใช้เพื่อระบุผู้ใช้ของ LDAP และกลุ่ม นอกจากนี้ยังมีชื่อผู้ใช้ภายในจะถูกสร้างขึ้นบนพื้นฐาน UUID หากไม่ได้ระบุไว้ข้างต้น คุณสามารถแทนที่การตั้งค่าและส่งแอตทริบิวต์ที่คุณเลือก คุณต้องให้แน่ใจว่าแอตทริบิวต์ที่คุณเลือกสามารถเป็นจริงสำหรับทั้งผู้ใช้และกลุ่มและมันควรจะไม่ซ้ำกัน ปล่อยให้มันว่างเปล่าสำหรับการทำงานเริ่มต้น การเปลี่ยนแปลงจะมีผลเฉพาะในแมปใหม่ (เพิ่ม) ผู้ใช้ LDAP และกลุ่ม",
+ "UUID Attribute for Users:" : "แอตทริบิวต์ UUID สำหรับผู้ใช้:",
+ "UUID Attribute for Groups:" : "แอตทริบิวต์ UUID สำหรับกลุ่ม:",
+ "Username-LDAP User Mapping" : "Username-LDAP ผู้ใช้ Mapping",
+ "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ชื่อผู้ใช้จะใช้ในการจัดเก็บและกำหนดข้อมูล (เมตา) เพื่อรู้จักกับผู้ใช้และสามารถระบุได้อย่างแม่นยำ แต่ละ LDAP จะมีชื่อผู้ใช้ภายใน จึงต้องทำ Mapping ให้กับผู้ใช้ LDAP ชื่อผู้ใช้ที่ถูกสร้างขึ้นจะถูกแมปเข้ากับ UUID ของผู้ใช้ LDAP นอกจากนี้ DN ก็จะถูกแคชเช่นกันเพื่อลดการทำงานร่วมกันของ LDAP แต่มันก็ไม่ได้ใช้เพื่อระบุตัวตน หากมีการเปลี่ยนแปลง DN การเปลี่ยนแปลงจะถูกพบในทันที ชื่อผู้ใช้ภายในจะถูกใช้กับทั้งหมด การล้างแมปไม่มีผลต่อการกำหนดค่า LDAP ทั้งหมด! \nและจะเกิดขึ้นเฉพาะในการทดสอบหรือขั้นตอนการทดลอง",
+ "Clear Username-LDAP User Mapping" : "ล้าง Username-LDAP ผู้ใช้ Mapping",
+ "Clear Groupname-LDAP Group Mapping" : "ล้าง Groupname-LDAP กลุ่ม Mapping"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js
index e0e46731a59..e07bdad70fc 100644
--- a/apps/user_ldap/l10n/tr.js
+++ b/apps/user_ldap/l10n/tr.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Failed to clear the mappings." : "Eşleştirmeler temizlenirken hata oluştu.",
"Failed to delete the server configuration" : "Sunucu yapılandırmasını silme başarısız oldu",
+ "The configuration is invalid: anonymous bind is not allowed." : "Yapılandırma geçersiz: anonim atamaya izin verilmiyor.",
"The configuration is valid and the connection could be established!" : "Yapılandırma geçerli ve bağlantı kuruldu!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Yapılandırma geçerli fakat bağlama (bind) başarısız. Lütfen sunucu ayarları ve kimlik bilgilerini kontrol edin.",
"The configuration is invalid. Please have a look at the logs for further details." : "Yapılandırma geçersiz. Lütfen ayrıntılar için günlüklere bakın.",
@@ -10,19 +11,27 @@ OC.L10N.register(
"No configuration specified" : "Yapılandırma belirtilmemiş",
"No data specified" : "Veri belirtilmemiş",
" Could not set configuration %s" : "%s yapılandırması ayarlanamadı",
- "Action does not exist" : "Aksiyon yok",
+ "Action does not exist" : "Eylem mevcut değil",
+ "The Base DN appears to be wrong" : "Base DN yanlış gibi görünüyor",
"Configuration incorrect" : "Yapılandırma geçersiz",
"Configuration incomplete" : "Yapılandırma tamamlanmamış",
"Configuration OK" : "Yapılandırma tamam",
"Select groups" : "Grupları seç",
"Select object classes" : "Nesne sınıflarını seç",
- "Please check the credentials, they seem to be wrong." : "Kimlik bilgilerini kontrol edin, onlar yanlış görünüyor.",
- "Please specify the port, it could not be auto-detected." : "Port belirtin, bu otomatik olarak algılana madı.",
+ "Please check the credentials, they seem to be wrong." : "Lütfen kimlik bilgilerini kontrol edin, yanlış görünüyorlar.",
+ "Please specify the port, it could not be auto-detected." : "Lütfen bağlantı noktası belirtin, otomatik olarak algılanamadı.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN otomatik olarak tespit edilemedi, lütfen kimlik bilgilerini, sunucuyu ve bağlantı noktasını gözden geçirin.",
+ "Could not detect Base DN, please enter it manually." : "Base DN tespit edilemedi, lütfen elle girin.",
"{nthServer}. Server" : "{nthServer}. Sunucu",
+ "No object found in the given Base DN. Please revise." : "Girilen Base DN içerisinde nesne bulunamadı. Lütfen gözden geçirin.",
+ "More than 1.000 directory entries available." : "1.000'den fazla dizin girdisi mevcut.",
+ " entries available within the provided Base DN" : " girdi sağlanan Base DN içerisinde mevcut",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Bir hata oluştu. Lütfen Base DN ile birlikte bağlantı ayarlarını ve kimlik bilgilerini denetleyin.",
"Do you really want to delete the current Server Configuration?" : "Şu anki sunucu yapılandırmasını silmek istediğinizden emin misiniz?",
"Confirm Deletion" : "Silmeyi onayla",
- "Mappings cleared successfully!" : "Dönüşümler temizleme basarildi",
- "Error while clearing the mappings." : "Eşlemelerini takas ederken hata oluştu.",
+ "Mappings cleared successfully!" : "Eşleştirmeler başarıyla temizlendi!",
+ "Error while clearing the mappings." : "Eşleşmeler temizlenirken hata.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve Parola sağlayın.",
"Select attributes" : "Nitelikleri seç",
"_%s group found_::_%s groups found_" : ["%s grup bulundu","%s grup bulundu"],
"_%s user found_::_%s users found_" : ["%s kullanıcı bulundu","%s kullanıcı bulundu"],
diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json
index 01cfc4c94a4..bf4d08049be 100644
--- a/apps/user_ldap/l10n/tr.json
+++ b/apps/user_ldap/l10n/tr.json
@@ -1,6 +1,7 @@
{ "translations": {
"Failed to clear the mappings." : "Eşleştirmeler temizlenirken hata oluştu.",
"Failed to delete the server configuration" : "Sunucu yapılandırmasını silme başarısız oldu",
+ "The configuration is invalid: anonymous bind is not allowed." : "Yapılandırma geçersiz: anonim atamaya izin verilmiyor.",
"The configuration is valid and the connection could be established!" : "Yapılandırma geçerli ve bağlantı kuruldu!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Yapılandırma geçerli fakat bağlama (bind) başarısız. Lütfen sunucu ayarları ve kimlik bilgilerini kontrol edin.",
"The configuration is invalid. Please have a look at the logs for further details." : "Yapılandırma geçersiz. Lütfen ayrıntılar için günlüklere bakın.",
@@ -8,19 +9,27 @@
"No configuration specified" : "Yapılandırma belirtilmemiş",
"No data specified" : "Veri belirtilmemiş",
" Could not set configuration %s" : "%s yapılandırması ayarlanamadı",
- "Action does not exist" : "Aksiyon yok",
+ "Action does not exist" : "Eylem mevcut değil",
+ "The Base DN appears to be wrong" : "Base DN yanlış gibi görünüyor",
"Configuration incorrect" : "Yapılandırma geçersiz",
"Configuration incomplete" : "Yapılandırma tamamlanmamış",
"Configuration OK" : "Yapılandırma tamam",
"Select groups" : "Grupları seç",
"Select object classes" : "Nesne sınıflarını seç",
- "Please check the credentials, they seem to be wrong." : "Kimlik bilgilerini kontrol edin, onlar yanlış görünüyor.",
- "Please specify the port, it could not be auto-detected." : "Port belirtin, bu otomatik olarak algılana madı.",
+ "Please check the credentials, they seem to be wrong." : "Lütfen kimlik bilgilerini kontrol edin, yanlış görünüyorlar.",
+ "Please specify the port, it could not be auto-detected." : "Lütfen bağlantı noktası belirtin, otomatik olarak algılanamadı.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN otomatik olarak tespit edilemedi, lütfen kimlik bilgilerini, sunucuyu ve bağlantı noktasını gözden geçirin.",
+ "Could not detect Base DN, please enter it manually." : "Base DN tespit edilemedi, lütfen elle girin.",
"{nthServer}. Server" : "{nthServer}. Sunucu",
+ "No object found in the given Base DN. Please revise." : "Girilen Base DN içerisinde nesne bulunamadı. Lütfen gözden geçirin.",
+ "More than 1.000 directory entries available." : "1.000'den fazla dizin girdisi mevcut.",
+ " entries available within the provided Base DN" : " girdi sağlanan Base DN içerisinde mevcut",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Bir hata oluştu. Lütfen Base DN ile birlikte bağlantı ayarlarını ve kimlik bilgilerini denetleyin.",
"Do you really want to delete the current Server Configuration?" : "Şu anki sunucu yapılandırmasını silmek istediğinizden emin misiniz?",
"Confirm Deletion" : "Silmeyi onayla",
- "Mappings cleared successfully!" : "Dönüşümler temizleme basarildi",
- "Error while clearing the mappings." : "Eşlemelerini takas ederken hata oluştu.",
+ "Mappings cleared successfully!" : "Eşleştirmeler başarıyla temizlendi!",
+ "Error while clearing the mappings." : "Eşleşmeler temizlenirken hata.",
+ "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonim atamaya izin verilmiyor. Lütfen bir Kullanıcı DN ve Parola sağlayın.",
"Select attributes" : "Nitelikleri seç",
"_%s group found_::_%s groups found_" : ["%s grup bulundu","%s grup bulundu"],
"_%s user found_::_%s users found_" : ["%s kullanıcı bulundu","%s kullanıcı bulundu"],
diff --git a/apps/user_ldap/lib/configuration.php b/apps/user_ldap/lib/configuration.php
index 373c5b48417..0af819ff66f 100644
--- a/apps/user_ldap/lib/configuration.php
+++ b/apps/user_ldap/lib/configuration.php
@@ -76,6 +76,7 @@ class Configuration {
'homeFolderNamingRule' => null,
'hasPagedResultSupport' => false,
'hasMemberOfFilterSupport' => false,
+ 'useMemberOfToDetectMembership' => true,
'ldapExpertUsernameAttr' => null,
'ldapExpertUUIDUserAttr' => null,
'ldapExpertUUIDGroupAttr' => null,
@@ -395,6 +396,7 @@ class Configuration {
'ldap_expert_uuid_user_attr' => '',
'ldap_expert_uuid_group_attr' => '',
'has_memberof_filter_support' => 0,
+ 'use_memberof_to_detect_membership' => 1,
'last_jpegPhoto_lookup' => 0,
'ldap_nested_groups' => 0,
'ldap_paging_size' => 500,
@@ -449,6 +451,7 @@ class Configuration {
'ldap_expert_uuid_user_attr' => 'ldapExpertUUIDUserAttr',
'ldap_expert_uuid_group_attr' => 'ldapExpertUUIDGroupAttr',
'has_memberof_filter_support' => 'hasMemberOfFilterSupport',
+ 'use_memberof_to_detect_membership' => 'useMemberOfToDetectMembership',
'last_jpegPhoto_lookup' => 'lastJpegPhotoLookup',
'ldap_nested_groups' => 'ldapNestedGroups',
'ldap_paging_size' => 'ldapPagingSize',
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index d6f4bdcde04..0328259d78f 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -53,6 +53,11 @@ class Connection extends LDAPUtility {
private $dontDestruct = false;
private $hasPagedResultSupport = true;
+ /**
+ * @var bool runtime flag that indicates whether supported primary groups are available
+ */
+ public $hasPrimaryGroups = true;
+
//cache handler
protected $cache;
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index 6c39f406e83..6ca84c8718f 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -31,6 +31,8 @@
namespace OCA\user_ldap\lib;
+use OC\ServerNotAvailableException;
+
class Wizard extends LDAPUtility {
static protected $l;
protected $access;
@@ -389,10 +391,10 @@ class Wizard extends LDAPUtility {
throw new \Exception('Could not connect to LDAP');
}
- $groups = $this->fetchGroups($dbKey, $confKey);
+ $this->fetchGroups($dbKey, $confKey);
if($testMemberOf) {
- $this->configuration->hasMemberOfFilterSupport = $this->testMemberOf($groups);
+ $this->configuration->hasMemberOfFilterSupport = $this->testMemberOf();
$this->result->markChange();
if(!$this->configuration->hasMemberOfFilterSupport) {
throw new \Exception('memberOf is not supported by the server');
@@ -403,10 +405,12 @@ class Wizard extends LDAPUtility {
}
/**
- * fetches all groups from LDAP
+ * fetches all groups from LDAP and adds them to the result object
+ *
* @param string $dbKey
* @param string $confKey
* @return array $groupEntries
+ * @throws \Exception
*/
public function fetchGroups($dbKey, $confKey) {
$obclasses = array('posixGroup', 'group', 'zimbraDistributionList', 'groupOfNames');
@@ -485,7 +489,7 @@ class Wizard extends LDAPUtility {
throw new \Exception('Could not connect to LDAP');
}
- $obclasses = array('group', 'posixGroup', '*');
+ $obclasses = array('groupOfNames', 'group', 'posixGroup', '*');
$this->determineFeature($obclasses,
'objectclass',
'ldap_groupfilter_objectclass',
@@ -831,43 +835,22 @@ class Wizard extends LDAPUtility {
/**
* Checks whether the server supports memberOf in LDAP Filter.
- * Requires that groups are determined, thus internally called from within
- * determineGroups()
- * @param array $groups
+ * Note: at least in OpenLDAP, availability of memberOf is dependent on
+ * a configured objectClass. I.e. not necessarily for all available groups
+ * memberOf does work.
+ *
* @return bool true if it does, false otherwise
* @throws \Exception
*/
- private function testMemberOf($groups) {
+ private function testMemberOf() {
$cr = $this->getConnection();
if(!$cr) {
throw new \Exception('Could not connect to LDAP');
}
- if(!is_array($this->configuration->ldapBase)
- || !isset($this->configuration->ldapBase[0])) {
- return false;
- }
- $base = $this->configuration->ldapBase[0];
- $filterPrefix = '(&(objectclass=*)(memberOf=';
- $filterSuffix = '))';
-
- foreach($groups as $groupProperties) {
- if(!isset($groupProperties['cn'])) {
- //assuming only groups have their cn cached :)
- continue;
- }
- $filter = strtolower($filterPrefix . $groupProperties['dn'] . $filterSuffix);
- $rr = $this->ldap->search($cr, $base, $filter, array('dn'));
- if(!$this->ldap->isResource($rr)) {
- continue;
- }
- $entries = $this->ldap->countEntries($cr, $rr);
- //we do not know which groups are empty, so test any and return
- //success on the first match that returns at least one user
- if(($entries !== false) && ($entries > 0)) {
- return true;
- }
+ $result = $this->access->countUsers('memberOf=*', array('memberOf'), 1);
+ if(is_int($result) && $result > 0) {
+ return true;
}
-
return false;
}
@@ -1065,18 +1048,27 @@ class Wizard extends LDAPUtility {
$this->ldap->setOption($cr, LDAP_OPT_PROTOCOL_VERSION, 3);
$this->ldap->setOption($cr, LDAP_OPT_REFERRALS, 0);
$this->ldap->setOption($cr, LDAP_OPT_NETWORK_TIMEOUT, self::LDAP_NW_TIMEOUT);
- if($tls) {
- $isTlsWorking = @$this->ldap->startTls($cr);
- if(!$isTlsWorking) {
- return false;
+
+ try {
+ if($tls) {
+ $isTlsWorking = @$this->ldap->startTls($cr);
+ if(!$isTlsWorking) {
+ return false;
+ }
}
- }
- \OCP\Util::writeLog('user_ldap', 'Wiz: Attemping to Bind ', \OCP\Util::DEBUG);
- //interesting part: do the bind!
- $login = $this->ldap->bind($cr,
- $this->configuration->ldapAgentName,
- $this->configuration->ldapAgentPassword);
+ \OCP\Util::writeLog('user_ldap', 'Wiz: Attemping to Bind ', \OCP\Util::DEBUG);
+ //interesting part: do the bind!
+ $login = $this->ldap->bind($cr,
+ $this->configuration->ldapAgentName,
+ $this->configuration->ldapAgentPassword
+ );
+ $errNo = $this->ldap->errno($cr);
+ $error = ldap_error($cr);
+ $this->ldap->unbind($cr);
+ } catch(ServerNotAvailableException $e) {
+ return false;
+ }
if($login === true) {
$this->ldap->unbind($cr);
@@ -1087,9 +1079,6 @@ class Wizard extends LDAPUtility {
return true;
}
- $errNo = $this->ldap->errno($cr);
- $error = ldap_error($cr);
- $this->ldap->unbind($cr);
if($errNo === -1 || ($errNo === 2 && $ncc)) {
//host, port or TLS wrong
return false;
diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php
index d91f1503abd..aeb306174f0 100644
--- a/apps/user_ldap/tests/group_ldap.php
+++ b/apps/user_ldap/tests/group_ldap.php
@@ -383,4 +383,63 @@ class Test_Group_Ldap extends \Test\TestCase {
$this->assertSame(4, $users);
}
+ public function testGetUserGroupsMemberOf() {
+ $access = $this->getAccessMock();
+ $this->enableGroups($access);
+
+ $dn = 'cn=userX,dc=foobar';
+
+ $access->connection->hasPrimaryGroups = false;
+
+ $access->expects($this->once())
+ ->method('username2dn')
+ ->will($this->returnValue($dn));
+
+ $access->expects($this->once())
+ ->method('readAttribute')
+ ->with($dn, 'memberOf')
+ ->will($this->returnValue(['cn=groupA,dc=foobar', 'cn=groupB,dc=foobar']));
+
+ $access->expects($this->exactly(2))
+ ->method('dn2groupname')
+ ->will($this->returnArgument(0));
+
+ $groupBackend = new GroupLDAP($access);
+ $groups = $groupBackend->getUserGroups('userX');
+
+ $this->assertSame(2, count($groups));
+ }
+
+ public function testGetUserGroupsMemberOfDisabled() {
+ $access = $this->getAccessMock();
+
+ $access->connection->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'useMemberOfToDetectMembership') {
+ return 0;
+ }
+ return 1;
+ }));
+
+ $dn = 'cn=userX,dc=foobar';
+
+ $access->connection->hasPrimaryGroups = false;
+
+ $access->expects($this->once())
+ ->method('username2dn')
+ ->will($this->returnValue($dn));
+
+ $access->expects($this->never())
+ ->method('readAttribute')
+ ->with($dn, 'memberOf');
+
+ $access->expects($this->once())
+ ->method('ownCloudGroupNames')
+ ->will($this->returnValue([]));
+
+ $groupBackend = new GroupLDAP($access);
+ $groupBackend->getUserGroups('userX');
+ }
+
}
diff --git a/apps/user_ldap/tests/user_ldap.php b/apps/user_ldap/tests/user_ldap.php
index 53229e2d64a..2f15a5acc6d 100644
--- a/apps/user_ldap/tests/user_ldap.php
+++ b/apps/user_ldap/tests/user_ldap.php
@@ -259,12 +259,15 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
$config = $this->getMock('\OCP\IConfig');
$config->expects($this->exactly(2))
->method('getUserValue')
- ->will($this->returnValue(1));
+ ->will($this->onConsecutiveCalls('1', '/var/vhome/jdings/'));
$backend = new UserLDAP($access, $config);
$result = $backend->deleteUser('jeremy');
$this->assertTrue($result);
+
+ $home = $backend->getHome('jeremy');
+ $this->assertSame($home, '/var/vhome/jdings/');
}
/**
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index cc5d5f5226f..014d60c7316 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -198,6 +198,7 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
}
//getting dn, if false the user does not exist. If dn, he may be mapped only, requires more checking.
$user = $this->access->userManager->get($uid);
+
if(is_null($user)) {
\OCP\Util::writeLog('user_ldap', 'No DN found for '.$uid.' on '.
$this->access->connection->ldapHost, \OCP\Util::DEBUG);
@@ -249,16 +250,16 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
* @return string|bool
*/
public function getHome($uid) {
- // user Exists check required as it is not done in user proxy!
- if(!$this->userExists($uid)) {
- return false;
- }
-
if(isset($this->homesToKill[$uid]) && !empty($this->homesToKill[$uid])) {
//a deleted user who needs some clean up
return $this->homesToKill[$uid];
}
+ // user Exists check required as it is not done in user proxy!
+ if(!$this->userExists($uid)) {
+ return false;
+ }
+
$cacheKey = 'getHome'.$uid;
if($this->access->connection->isCached($cacheKey)) {
return $this->access->connection->getFromCache($cacheKey);
diff --git a/apps/user_webdavauth/l10n/th_TH.js b/apps/user_webdavauth/l10n/th_TH.js
index 303af823112..4dd22b61ed5 100644
--- a/apps/user_webdavauth/l10n/th_TH.js
+++ b/apps/user_webdavauth/l10n/th_TH.js
@@ -1,7 +1,9 @@
OC.L10N.register(
"user_webdavauth",
{
- "WebDAV Authentication" : "WebDAV Authentication",
- "Save" : "บันทึก"
+ "WebDAV Authentication" : "ยืนยันตัวตน WebDAV",
+ "Address:" : "ที่อยู่:",
+ "Save" : "บันทึก",
+ "The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "สิทธิของผู้ใช้จะถูกส่งไปยังที่อยู่นี้ ปลั๊กอินนี้จะตรวจสอบการตอบสนองและจะแปลรหัสสถานะ HTTP 401 และ 403 ข้อมูลประจำตัวที่ไม่ถูกต้องและการตอบสนองอื่นๆ ทั้งหมดให้เป็นข้อมูลประจำตัวที่ถูกต้อง"
},
"nplurals=1; plural=0;");
diff --git a/apps/user_webdavauth/l10n/th_TH.json b/apps/user_webdavauth/l10n/th_TH.json
index da4e255d6e1..cbbe7b60c36 100644
--- a/apps/user_webdavauth/l10n/th_TH.json
+++ b/apps/user_webdavauth/l10n/th_TH.json
@@ -1,5 +1,7 @@
{ "translations": {
- "WebDAV Authentication" : "WebDAV Authentication",
- "Save" : "บันทึก"
+ "WebDAV Authentication" : "ยืนยันตัวตน WebDAV",
+ "Address:" : "ที่อยู่:",
+ "Save" : "บันทึก",
+ "The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "สิทธิของผู้ใช้จะถูกส่งไปยังที่อยู่นี้ ปลั๊กอินนี้จะตรวจสอบการตอบสนองและจะแปลรหัสสถานะ HTTP 401 และ 403 ข้อมูลประจำตัวที่ไม่ถูกต้องและการตอบสนองอื่นๆ ทั้งหมดให้เป็นข้อมูลประจำตัวที่ถูกต้อง"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/user_webdavauth/l10n/vi.js b/apps/user_webdavauth/l10n/vi.js
index 60ce096e7b2..7b8d7949ba5 100644
--- a/apps/user_webdavauth/l10n/vi.js
+++ b/apps/user_webdavauth/l10n/vi.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"user_webdavauth",
{
"WebDAV Authentication" : "Xác thực WebDAV",
+ "Address:" : "Địa chỉ:",
"Save" : "Lưu",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "Các thông tin người dùng sẽ được gửi đến địa chỉ này. Plugin này sẽ kiểm tra các phản hồi và các statuscodes HTTP 401 và 403 không hợp lệ, và tất cả những phản h khác như thông tin hợp lệ."
},
diff --git a/apps/user_webdavauth/l10n/vi.json b/apps/user_webdavauth/l10n/vi.json
index 53163ca5310..ebe1725a929 100644
--- a/apps/user_webdavauth/l10n/vi.json
+++ b/apps/user_webdavauth/l10n/vi.json
@@ -1,5 +1,6 @@
{ "translations": {
"WebDAV Authentication" : "Xác thực WebDAV",
+ "Address:" : "Địa chỉ:",
"Save" : "Lưu",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." : "Các thông tin người dùng sẽ được gửi đến địa chỉ này. Plugin này sẽ kiểm tra các phản hồi và các statuscodes HTTP 401 và 403 không hợp lệ, và tất cả những phản h khác như thông tin hợp lệ."
},"pluralForm" :"nplurals=1; plural=0;"