summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.drone.yml58
-rw-r--r--apps/comments/l10n/cs.js4
-rw-r--r--apps/comments/l10n/cs.json4
-rw-r--r--apps/comments/l10n/es_GT.js1
-rw-r--r--apps/comments/l10n/es_GT.json1
-rw-r--r--apps/comments/l10n/he.js4
-rw-r--r--apps/comments/l10n/he.json4
-rw-r--r--apps/comments/l10n/ka_GE.js4
-rw-r--r--apps/comments/l10n/ka_GE.json4
-rw-r--r--apps/comments/l10n/lt_LT.js4
-rw-r--r--apps/comments/l10n/lt_LT.json4
-rw-r--r--apps/comments/l10n/sk.js5
-rw-r--r--apps/comments/l10n/sk.json5
-rw-r--r--apps/comments/l10n/uk.js2
-rw-r--r--apps/comments/l10n/uk.json2
-rw-r--r--apps/dav/l10n/ca.js2
-rw-r--r--apps/dav/l10n/ca.json2
-rw-r--r--apps/dav/l10n/cs.js2
-rw-r--r--apps/dav/l10n/cs.json2
-rw-r--r--apps/dav/l10n/es_GT.js1
-rw-r--r--apps/dav/l10n/es_GT.json1
-rw-r--r--apps/dav/l10n/he.js2
-rw-r--r--apps/dav/l10n/he.json2
-rw-r--r--apps/dav/l10n/ka_GE.js2
-rw-r--r--apps/dav/l10n/ka_GE.json2
-rw-r--r--apps/dav/l10n/lt_LT.js2
-rw-r--r--apps/dav/l10n/lt_LT.json2
-rw-r--r--apps/dav/l10n/sk.js2
-rw-r--r--apps/dav/l10n/sk.json2
-rw-r--r--apps/encryption/l10n/ca.js1
-rw-r--r--apps/encryption/l10n/ca.json1
-rw-r--r--apps/encryption/l10n/cs.js2
-rw-r--r--apps/encryption/l10n/cs.json2
-rw-r--r--apps/encryption/l10n/fa.js2
-rw-r--r--apps/encryption/l10n/fa.json2
-rw-r--r--apps/encryption/l10n/he.js2
-rw-r--r--apps/encryption/l10n/he.json2
-rw-r--r--apps/encryption/l10n/ka_GE.js2
-rw-r--r--apps/encryption/l10n/ka_GE.json2
-rw-r--r--apps/encryption/l10n/lt_LT.js2
-rw-r--r--apps/encryption/l10n/lt_LT.json2
-rw-r--r--apps/encryption/l10n/sk.js2
-rw-r--r--apps/encryption/l10n/sk.json2
-rw-r--r--apps/encryption/l10n/uk.js2
-rw-r--r--apps/encryption/l10n/uk.json2
-rw-r--r--apps/federatedfilesharing/l10n/ca.js4
-rw-r--r--apps/federatedfilesharing/l10n/ca.json4
-rw-r--r--apps/federatedfilesharing/l10n/cs.js2
-rw-r--r--apps/federatedfilesharing/l10n/cs.json2
-rw-r--r--apps/federatedfilesharing/l10n/es_GT.js2
-rw-r--r--apps/federatedfilesharing/l10n/es_GT.json2
-rw-r--r--apps/federatedfilesharing/l10n/ka_GE.js2
-rw-r--r--apps/federatedfilesharing/l10n/ka_GE.json2
-rw-r--r--apps/federatedfilesharing/l10n/lt_LT.js2
-rw-r--r--apps/federatedfilesharing/l10n/lt_LT.json2
-rw-r--r--apps/federatedfilesharing/l10n/sk.js2
-rw-r--r--apps/federatedfilesharing/l10n/sk.json2
-rw-r--r--apps/federation/l10n/ca.js7
-rw-r--r--apps/federation/l10n/ca.json7
-rw-r--r--apps/federation/l10n/cs.js2
-rw-r--r--apps/federation/l10n/cs.json2
-rw-r--r--apps/federation/l10n/es_GT.js1
-rw-r--r--apps/federation/l10n/es_GT.json1
-rw-r--r--apps/federation/l10n/fa.js2
-rw-r--r--apps/federation/l10n/fa.json2
-rw-r--r--apps/federation/l10n/ka_GE.js2
-rw-r--r--apps/federation/l10n/ka_GE.json2
-rw-r--r--apps/federation/l10n/lt_LT.js2
-rw-r--r--apps/federation/l10n/lt_LT.json2
-rw-r--r--apps/federation/l10n/sk.js2
-rw-r--r--apps/federation/l10n/sk.json2
-rw-r--r--apps/files/l10n/ca.js18
-rw-r--r--apps/files/l10n/ca.json18
-rw-r--r--apps/files/l10n/cs.js14
-rw-r--r--apps/files/l10n/cs.json14
-rw-r--r--apps/files/l10n/es_GT.js20
-rw-r--r--apps/files/l10n/es_GT.json20
-rw-r--r--apps/files/l10n/he.js14
-rw-r--r--apps/files/l10n/he.json14
-rw-r--r--apps/files/l10n/ka_GE.js14
-rw-r--r--apps/files/l10n/ka_GE.json14
-rw-r--r--apps/files/l10n/lt_LT.js14
-rw-r--r--apps/files/l10n/lt_LT.json14
-rw-r--r--apps/files/l10n/sk.js14
-rw-r--r--apps/files/l10n/sk.json14
-rw-r--r--apps/files/l10n/uk.js10
-rw-r--r--apps/files/l10n/uk.json10
-rw-r--r--apps/files_external/l10n/ca.js10
-rw-r--r--apps/files_external/l10n/ca.json10
-rw-r--r--apps/files_external/l10n/cs.js2
-rw-r--r--apps/files_external/l10n/cs.json2
-rw-r--r--apps/files_external/l10n/es_GT.js16
-rw-r--r--apps/files_external/l10n/es_GT.json16
-rw-r--r--apps/files_external/l10n/he.js2
-rw-r--r--apps/files_external/l10n/he.json2
-rw-r--r--apps/files_external/l10n/ka_GE.js2
-rw-r--r--apps/files_external/l10n/ka_GE.json2
-rw-r--r--apps/files_external/l10n/lt_LT.js2
-rw-r--r--apps/files_external/l10n/lt_LT.json2
-rw-r--r--apps/files_external/l10n/sk.js2
-rw-r--r--apps/files_external/l10n/sk.json2
-rw-r--r--apps/files_sharing/l10n/cs.js2
-rw-r--r--apps/files_sharing/l10n/cs.json2
-rw-r--r--apps/files_sharing/l10n/es_GT.js4
-rw-r--r--apps/files_sharing/l10n/es_GT.json4
-rw-r--r--apps/files_sharing/l10n/ka_GE.js2
-rw-r--r--apps/files_sharing/l10n/ka_GE.json2
-rw-r--r--apps/files_sharing/l10n/lt_LT.js2
-rw-r--r--apps/files_sharing/l10n/lt_LT.json2
-rw-r--r--apps/files_sharing/l10n/pt_BR.js2
-rw-r--r--apps/files_sharing/l10n/pt_BR.json2
-rw-r--r--apps/files_sharing/l10n/ru.js2
-rw-r--r--apps/files_sharing/l10n/ru.json2
-rw-r--r--apps/files_sharing/l10n/sk.js2
-rw-r--r--apps/files_sharing/l10n/sk.json2
-rw-r--r--apps/files_trashbin/l10n/cs.js2
-rw-r--r--apps/files_trashbin/l10n/cs.json2
-rw-r--r--apps/files_trashbin/l10n/fa.js2
-rw-r--r--apps/files_trashbin/l10n/fa.json2
-rw-r--r--apps/files_trashbin/l10n/he.js2
-rw-r--r--apps/files_trashbin/l10n/he.json2
-rw-r--r--apps/files_trashbin/l10n/ka_GE.js2
-rw-r--r--apps/files_trashbin/l10n/ka_GE.json2
-rw-r--r--apps/files_trashbin/l10n/lt_LT.js2
-rw-r--r--apps/files_trashbin/l10n/lt_LT.json2
-rw-r--r--apps/files_trashbin/l10n/sk.js2
-rw-r--r--apps/files_trashbin/l10n/sk.json2
-rw-r--r--apps/files_trashbin/l10n/uk.js2
-rw-r--r--apps/files_trashbin/l10n/uk.json2
-rw-r--r--apps/files_trashbin/lib/Helper.php4
-rw-r--r--apps/files_trashbin/lib/Sabre/ITrash.php4
-rw-r--r--apps/files_trashbin/lib/Sabre/PropfindPlugin.php9
-rw-r--r--apps/files_trashbin/lib/Sabre/RootCollection.php5
-rw-r--r--apps/files_trashbin/lib/Sabre/TrashFile.php6
-rw-r--r--apps/files_trashbin/lib/Sabre/TrashFolder.php7
-rw-r--r--apps/files_trashbin/lib/Sabre/TrashFolderFile.php4
-rw-r--r--apps/files_trashbin/lib/Sabre/TrashFolderFolder.php8
-rw-r--r--apps/files_versions/l10n/cs.js4
-rw-r--r--apps/files_versions/l10n/cs.json4
-rw-r--r--apps/files_versions/l10n/fa.js4
-rw-r--r--apps/files_versions/l10n/fa.json4
-rw-r--r--apps/files_versions/l10n/he.js4
-rw-r--r--apps/files_versions/l10n/he.json4
-rw-r--r--apps/files_versions/l10n/ka_GE.js4
-rw-r--r--apps/files_versions/l10n/ka_GE.json4
-rw-r--r--apps/files_versions/l10n/kn.js2
-rw-r--r--apps/files_versions/l10n/kn.json2
-rw-r--r--apps/files_versions/l10n/lt_LT.js4
-rw-r--r--apps/files_versions/l10n/lt_LT.json4
-rw-r--r--apps/files_versions/l10n/sk.js4
-rw-r--r--apps/files_versions/l10n/sk.json4
-rw-r--r--apps/files_versions/l10n/uk.js4
-rw-r--r--apps/files_versions/l10n/uk.json4
-rw-r--r--apps/files_versions/lib/AppInfo/Application.php10
-rw-r--r--apps/files_versions/lib/BackgroundJob/ExpireVersions.php16
-rw-r--r--apps/files_versions/lib/Command/ExpireVersions.php8
-rw-r--r--apps/files_versions/lib/Sabre/RootCollection.php6
-rw-r--r--apps/files_versions/lib/Storage.php10
-rw-r--r--apps/oauth2/l10n/ca.js1
-rw-r--r--apps/oauth2/l10n/ca.json1
-rw-r--r--apps/oauth2/l10n/cs.js2
-rw-r--r--apps/oauth2/l10n/cs.json2
-rw-r--r--apps/oauth2/l10n/es_GT.js1
-rw-r--r--apps/oauth2/l10n/es_GT.json1
-rw-r--r--apps/oauth2/l10n/he.js2
-rw-r--r--apps/oauth2/l10n/he.json2
-rw-r--r--apps/oauth2/l10n/ka_GE.js2
-rw-r--r--apps/oauth2/l10n/ka_GE.json2
-rw-r--r--apps/oauth2/l10n/lt_LT.js2
-rw-r--r--apps/oauth2/l10n/lt_LT.json2
-rw-r--r--apps/oauth2/l10n/sk.js2
-rw-r--r--apps/oauth2/l10n/sk.json2
-rw-r--r--apps/sharebymail/l10n/cs.js2
-rw-r--r--apps/sharebymail/l10n/cs.json2
-rw-r--r--apps/sharebymail/l10n/ka_GE.js2
-rw-r--r--apps/sharebymail/l10n/ka_GE.json2
-rw-r--r--apps/sharebymail/l10n/lt_LT.js2
-rw-r--r--apps/sharebymail/l10n/lt_LT.json2
-rw-r--r--apps/sharebymail/l10n/sk.js2
-rw-r--r--apps/sharebymail/l10n/sk.json2
-rw-r--r--apps/systemtags/l10n/cs.js2
-rw-r--r--apps/systemtags/l10n/cs.json2
-rw-r--r--apps/systemtags/l10n/he.js2
-rw-r--r--apps/systemtags/l10n/he.json2
-rw-r--r--apps/systemtags/l10n/ka_GE.js2
-rw-r--r--apps/systemtags/l10n/ka_GE.json2
-rw-r--r--apps/systemtags/l10n/lt_LT.js2
-rw-r--r--apps/systemtags/l10n/lt_LT.json2
-rw-r--r--apps/systemtags/l10n/sk.js2
-rw-r--r--apps/systemtags/l10n/sk.json2
-rw-r--r--apps/theming/l10n/ca.js9
-rw-r--r--apps/theming/l10n/ca.json9
-rw-r--r--apps/theming/l10n/cs.js2
-rw-r--r--apps/theming/l10n/cs.json2
-rw-r--r--apps/theming/l10n/es_GT.js11
-rw-r--r--apps/theming/l10n/es_GT.json11
-rw-r--r--apps/theming/l10n/ka_GE.js2
-rw-r--r--apps/theming/l10n/ka_GE.json2
-rw-r--r--apps/theming/l10n/lt_LT.js2
-rw-r--r--apps/theming/l10n/lt_LT.json2
-rw-r--r--apps/theming/l10n/sk.js2
-rw-r--r--apps/theming/l10n/sk.json2
-rw-r--r--apps/theming/lib/Controller/ThemingController.php6
-rw-r--r--apps/theming/tests/Controller/ThemingControllerTest.php15
-rw-r--r--apps/theming/tests/IconBuilderTest.php16
-rw-r--r--apps/twofactor_backupcodes/l10n/cs.js2
-rw-r--r--apps/twofactor_backupcodes/l10n/cs.json2
-rw-r--r--apps/twofactor_backupcodes/l10n/es_GT.js1
-rw-r--r--apps/twofactor_backupcodes/l10n/es_GT.json1
-rw-r--r--apps/twofactor_backupcodes/l10n/ka_GE.js2
-rw-r--r--apps/twofactor_backupcodes/l10n/ka_GE.json2
-rw-r--r--apps/twofactor_backupcodes/l10n/sk.js2
-rw-r--r--apps/twofactor_backupcodes/l10n/sk.json2
-rw-r--r--apps/updatenotification/l10n/cs.js2
-rw-r--r--apps/updatenotification/l10n/cs.json2
-rw-r--r--apps/updatenotification/l10n/es_GT.js15
-rw-r--r--apps/updatenotification/l10n/es_GT.json15
-rw-r--r--apps/updatenotification/l10n/ka_GE.js2
-rw-r--r--apps/updatenotification/l10n/ka_GE.json2
-rw-r--r--apps/updatenotification/l10n/lt_LT.js2
-rw-r--r--apps/updatenotification/l10n/lt_LT.json2
-rw-r--r--apps/updatenotification/l10n/sk.js2
-rw-r--r--apps/updatenotification/l10n/sk.json2
-rw-r--r--apps/user_ldap/css/renewPassword.css129
-rw-r--r--apps/user_ldap/l10n/ca.js4
-rw-r--r--apps/user_ldap/l10n/ca.json4
-rw-r--r--apps/user_ldap/l10n/cs.js10
-rw-r--r--apps/user_ldap/l10n/cs.json10
-rw-r--r--apps/user_ldap/l10n/da.js2
-rw-r--r--apps/user_ldap/l10n/da.json2
-rw-r--r--apps/user_ldap/l10n/de.js2
-rw-r--r--apps/user_ldap/l10n/de.json2
-rw-r--r--apps/user_ldap/l10n/de_DE.js2
-rw-r--r--apps/user_ldap/l10n/de_DE.json2
-rw-r--r--apps/user_ldap/l10n/el.js2
-rw-r--r--apps/user_ldap/l10n/el.json2
-rw-r--r--apps/user_ldap/l10n/en_GB.js2
-rw-r--r--apps/user_ldap/l10n/en_GB.json2
-rw-r--r--apps/user_ldap/l10n/es.js2
-rw-r--r--apps/user_ldap/l10n/es.json2
-rw-r--r--apps/user_ldap/l10n/es_419.js2
-rw-r--r--apps/user_ldap/l10n/es_419.json2
-rw-r--r--apps/user_ldap/l10n/es_AR.js2
-rw-r--r--apps/user_ldap/l10n/es_AR.json2
-rw-r--r--apps/user_ldap/l10n/es_CL.js2
-rw-r--r--apps/user_ldap/l10n/es_CL.json2
-rw-r--r--apps/user_ldap/l10n/es_CO.js2
-rw-r--r--apps/user_ldap/l10n/es_CO.json2
-rw-r--r--apps/user_ldap/l10n/es_CR.js2
-rw-r--r--apps/user_ldap/l10n/es_CR.json2
-rw-r--r--apps/user_ldap/l10n/es_DO.js2
-rw-r--r--apps/user_ldap/l10n/es_DO.json2
-rw-r--r--apps/user_ldap/l10n/es_EC.js2
-rw-r--r--apps/user_ldap/l10n/es_EC.json2
-rw-r--r--apps/user_ldap/l10n/es_GT.js6
-rw-r--r--apps/user_ldap/l10n/es_GT.json6
-rw-r--r--apps/user_ldap/l10n/es_HN.js2
-rw-r--r--apps/user_ldap/l10n/es_HN.json2
-rw-r--r--apps/user_ldap/l10n/es_MX.js2
-rw-r--r--apps/user_ldap/l10n/es_MX.json2
-rw-r--r--apps/user_ldap/l10n/es_NI.js2
-rw-r--r--apps/user_ldap/l10n/es_NI.json2
-rw-r--r--apps/user_ldap/l10n/es_PA.js2
-rw-r--r--apps/user_ldap/l10n/es_PA.json2
-rw-r--r--apps/user_ldap/l10n/es_PE.js2
-rw-r--r--apps/user_ldap/l10n/es_PE.json2
-rw-r--r--apps/user_ldap/l10n/es_PR.js2
-rw-r--r--apps/user_ldap/l10n/es_PR.json2
-rw-r--r--apps/user_ldap/l10n/es_PY.js2
-rw-r--r--apps/user_ldap/l10n/es_PY.json2
-rw-r--r--apps/user_ldap/l10n/es_SV.js2
-rw-r--r--apps/user_ldap/l10n/es_SV.json2
-rw-r--r--apps/user_ldap/l10n/es_UY.js2
-rw-r--r--apps/user_ldap/l10n/es_UY.json2
-rw-r--r--apps/user_ldap/l10n/fr.js2
-rw-r--r--apps/user_ldap/l10n/fr.json2
-rw-r--r--apps/user_ldap/l10n/he.js6
-rw-r--r--apps/user_ldap/l10n/he.json6
-rw-r--r--apps/user_ldap/l10n/hu.js2
-rw-r--r--apps/user_ldap/l10n/hu.json2
-rw-r--r--apps/user_ldap/l10n/is.js2
-rw-r--r--apps/user_ldap/l10n/is.json2
-rw-r--r--apps/user_ldap/l10n/it.js2
-rw-r--r--apps/user_ldap/l10n/it.json2
-rw-r--r--apps/user_ldap/l10n/ja.js2
-rw-r--r--apps/user_ldap/l10n/ja.json2
-rw-r--r--apps/user_ldap/l10n/ka_GE.js10
-rw-r--r--apps/user_ldap/l10n/ka_GE.json10
-rw-r--r--apps/user_ldap/l10n/ko.js2
-rw-r--r--apps/user_ldap/l10n/ko.json2
-rw-r--r--apps/user_ldap/l10n/lt_LT.js8
-rw-r--r--apps/user_ldap/l10n/lt_LT.json8
-rw-r--r--apps/user_ldap/l10n/nb.js2
-rw-r--r--apps/user_ldap/l10n/nb.json2
-rw-r--r--apps/user_ldap/l10n/nl.js2
-rw-r--r--apps/user_ldap/l10n/nl.json2
-rw-r--r--apps/user_ldap/l10n/pl.js2
-rw-r--r--apps/user_ldap/l10n/pl.json2
-rw-r--r--apps/user_ldap/l10n/pt_BR.js2
-rw-r--r--apps/user_ldap/l10n/pt_BR.json2
-rw-r--r--apps/user_ldap/l10n/ru.js2
-rw-r--r--apps/user_ldap/l10n/ru.json2
-rw-r--r--apps/user_ldap/l10n/sk.js10
-rw-r--r--apps/user_ldap/l10n/sk.json10
-rw-r--r--apps/user_ldap/l10n/sq.js2
-rw-r--r--apps/user_ldap/l10n/sq.json2
-rw-r--r--apps/user_ldap/l10n/sr.js3
-rw-r--r--apps/user_ldap/l10n/sr.json3
-rw-r--r--apps/user_ldap/l10n/sv.js2
-rw-r--r--apps/user_ldap/l10n/sv.json2
-rw-r--r--apps/user_ldap/l10n/tr.js2
-rw-r--r--apps/user_ldap/l10n/tr.json2
-rw-r--r--apps/user_ldap/l10n/uk.js6
-rw-r--r--apps/user_ldap/l10n/uk.json6
-rw-r--r--apps/user_ldap/l10n/zh_CN.js2
-rw-r--r--apps/user_ldap/l10n/zh_CN.json2
-rw-r--r--apps/user_ldap/lib/User/User.php4
-rw-r--r--apps/user_ldap/templates/renewpassword.php6
-rw-r--r--apps/user_ldap/tests/User/UserTest.php8
-rw-r--r--apps/workflowengine/l10n/ca.js3
-rw-r--r--apps/workflowengine/l10n/ca.json3
-rw-r--r--apps/workflowengine/l10n/cs.js2
-rw-r--r--apps/workflowengine/l10n/cs.json2
-rw-r--r--apps/workflowengine/l10n/es_GT.js3
-rw-r--r--apps/workflowengine/l10n/es_GT.json3
-rw-r--r--apps/workflowengine/l10n/fa.js2
-rw-r--r--apps/workflowengine/l10n/fa.json2
-rw-r--r--apps/workflowengine/l10n/ka_GE.js2
-rw-r--r--apps/workflowengine/l10n/ka_GE.json2
-rw-r--r--apps/workflowengine/l10n/lt_LT.js2
-rw-r--r--apps/workflowengine/l10n/lt_LT.json2
-rw-r--r--apps/workflowengine/l10n/sk.js2
-rw-r--r--apps/workflowengine/l10n/sk.json2
-rw-r--r--core/Migrations/Version14000Date20180516101403.php56
-rw-r--r--core/js/files/client.js2
-rw-r--r--core/l10n/ca.js3
-rw-r--r--core/l10n/ca.json3
-rw-r--r--core/l10n/cs.js14
-rw-r--r--core/l10n/cs.json14
-rw-r--r--core/l10n/es_GT.js44
-rw-r--r--core/l10n/es_GT.json44
-rw-r--r--core/l10n/fa.js14
-rw-r--r--core/l10n/fa.json14
-rw-r--r--core/l10n/he.js14
-rw-r--r--core/l10n/he.json14
-rw-r--r--core/l10n/ka_GE.js14
-rw-r--r--core/l10n/ka_GE.json14
-rw-r--r--core/l10n/lt_LT.js14
-rw-r--r--core/l10n/lt_LT.json14
-rw-r--r--core/l10n/nl.js1
-rw-r--r--core/l10n/nl.json1
-rw-r--r--core/l10n/ru.js8
-rw-r--r--core/l10n/ru.json8
-rw-r--r--core/l10n/sk.js14
-rw-r--r--core/l10n/sk.json14
-rw-r--r--core/l10n/uk.js10
-rw-r--r--core/l10n/uk.json10
-rw-r--r--core/vendor/DOMPurify/.bower.json11
-rw-r--r--core/vendor/DOMPurify/dist/purify.min.js2
-rw-r--r--core/vendor/core.js2
-rw-r--r--lib/base.php2
-rw-r--r--lib/composer/composer/autoload_classmap.php5
-rw-r--r--lib/composer/composer/autoload_static.php5
-rw-r--r--lib/l10n/ca.js7
-rw-r--r--lib/l10n/ca.json7
-rw-r--r--lib/l10n/cs.js22
-rw-r--r--lib/l10n/cs.json22
-rw-r--r--lib/l10n/es.js1
-rw-r--r--lib/l10n/es.json1
-rw-r--r--lib/l10n/es_GT.js26
-rw-r--r--lib/l10n/es_GT.json26
-rw-r--r--lib/l10n/fa.js12
-rw-r--r--lib/l10n/fa.json12
-rw-r--r--lib/l10n/fr.js1
-rw-r--r--lib/l10n/fr.json1
-rw-r--r--lib/l10n/he.js6
-rw-r--r--lib/l10n/he.json6
-rw-r--r--lib/l10n/ja.js44
-rw-r--r--lib/l10n/ja.json44
-rw-r--r--lib/l10n/ka_GE.js22
-rw-r--r--lib/l10n/ka_GE.json22
-rw-r--r--lib/l10n/kn.js2
-rw-r--r--lib/l10n/kn.json2
-rw-r--r--lib/l10n/lt_LT.js12
-rw-r--r--lib/l10n/lt_LT.json12
-rw-r--r--lib/l10n/ru.js21
-rw-r--r--lib/l10n/ru.json21
-rw-r--r--lib/l10n/sk.js22
-rw-r--r--lib/l10n/sk.json22
-rw-r--r--lib/l10n/sr.js1
-rw-r--r--lib/l10n/sr.json1
-rw-r--r--lib/l10n/tr.js1
-rw-r--r--lib/l10n/tr.json1
-rw-r--r--lib/l10n/uk.js6
-rw-r--r--lib/l10n/uk.json6
-rw-r--r--lib/private/AppFramework/OCS/BaseResponse.php58
-rw-r--r--lib/private/Authentication/Exceptions/ExpiredTokenException.php41
-rw-r--r--lib/private/Authentication/Token/DefaultToken.php116
-rw-r--r--lib/private/Authentication/Token/DefaultTokenMapper.php27
-rw-r--r--lib/private/Authentication/Token/DefaultTokenProvider.php77
-rw-r--r--lib/private/Authentication/Token/IProvider.php41
-rw-r--r--lib/private/Authentication/Token/IToken.php51
-rw-r--r--lib/private/Files/AppData/AppData.php16
-rw-r--r--lib/private/Files/AppData/Factory.php3
-rw-r--r--lib/private/Preview/BackgroundCleanupJob.php91
-rw-r--r--lib/private/Preview/Watcher.php48
-rw-r--r--lib/private/Preview/WatcherConnector.php11
-rw-r--r--lib/private/Repair.php4
-rw-r--r--lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php48
-rw-r--r--lib/private/Setup.php2
-rw-r--r--lib/public/AppFramework/Db/Mapper.php15
-rw-r--r--lib/public/AppFramework/Db/QBMapper.php272
-rw-r--r--lib/public/Files/SimpleFS/ISimpleRoot.php6
-rw-r--r--settings/l10n/ca.js18
-rw-r--r--settings/l10n/ca.json18
-rw-r--r--settings/l10n/cs.js2
-rw-r--r--settings/l10n/cs.json2
-rw-r--r--settings/l10n/es.js5
-rw-r--r--settings/l10n/es.json5
-rw-r--r--settings/l10n/es_GT.js63
-rw-r--r--settings/l10n/es_GT.json63
-rw-r--r--settings/l10n/fa.js2
-rw-r--r--settings/l10n/fa.json2
-rw-r--r--settings/l10n/fr.js5
-rw-r--r--settings/l10n/fr.json5
-rw-r--r--settings/l10n/he.js2
-rw-r--r--settings/l10n/he.json2
-rw-r--r--settings/l10n/ka_GE.js4
-rw-r--r--settings/l10n/ka_GE.json4
-rw-r--r--settings/l10n/kn.js2
-rw-r--r--settings/l10n/kn.json2
-rw-r--r--settings/l10n/lt_LT.js2
-rw-r--r--settings/l10n/lt_LT.json2
-rw-r--r--settings/l10n/ru.js27
-rw-r--r--settings/l10n/ru.json27
-rw-r--r--settings/l10n/sk.js2
-rw-r--r--settings/l10n/sk.json2
-rw-r--r--settings/l10n/sr.js3
-rw-r--r--settings/l10n/sr.json3
-rw-r--r--settings/l10n/tr.js5
-rw-r--r--settings/l10n/tr.json5
-rw-r--r--settings/l10n/uk.js2
-rw-r--r--settings/l10n/uk.json2
-rw-r--r--tests/Core/Controller/CssControllerTest.php3
-rw-r--r--tests/Core/Controller/JsControllerTest.php3
-rw-r--r--tests/lib/App/AppStore/Fetcher/AppFetcherTest.php3
-rw-r--r--tests/lib/App/AppStore/Fetcher/FetcherBase.php3
-rw-r--r--tests/lib/Authentication/Token/DefaultTokenProviderTest.php125
-rw-r--r--tests/lib/Authentication/Token/DefaultTokenTest.php8
-rw-r--r--tests/lib/Preview/BackgroundCleanupJobTest.php159
-rw-r--r--tests/lib/Security/IdentityProof/ManagerTest.php3
-rw-r--r--tests/lib/Template/CSSResourceLocatorTest.php3
-rw-r--r--tests/lib/Template/SCSSCacherTest.php3
-rw-r--r--tests/lib/User/SessionTest.php13
-rw-r--r--version.php2
455 files changed, 2705 insertions, 1052 deletions
diff --git a/.drone.yml b/.drone.yml
index 3a0d5ade9ee..48882fe0d8e 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -286,7 +286,7 @@ pipeline:
DB: mysqlmb4
PHP: 7.2
integration-capabilities_features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -295,7 +295,7 @@ pipeline:
matrix:
TESTS: integration-capabilities_features
integration-federation_features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin
- cd build/integration
@@ -304,7 +304,7 @@ pipeline:
matrix:
TESTS: integration-federation_features
integration-auth:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -313,7 +313,7 @@ pipeline:
matrix:
TESTS: integration-auth
integration-maintenance-mode:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -322,7 +322,7 @@ pipeline:
matrix:
TESTS: integration-maintenance-mode
integration-ratelimiting:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- ./occ config:system:set redis host --value=cache
@@ -337,7 +337,7 @@ pipeline:
matrix:
TESTS: integration-ratelimiting
integration-carddav:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -346,7 +346,7 @@ pipeline:
matrix:
TESTS: integration-carddav
integration-dav-v2:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -355,7 +355,7 @@ pipeline:
matrix:
TESTS: integration-dav-v2
integration-ocs-v1:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -364,7 +364,7 @@ pipeline:
matrix:
TESTS: integration-ocs-v1
integration-sharing-v1:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -373,7 +373,7 @@ pipeline:
matrix:
TESTS: integration-sharing-v1
integration-sharing-v1-part2:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -382,7 +382,7 @@ pipeline:
matrix:
TESTS: integration-sharing-v1-part2
integration-sharing-v1-part3:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -391,7 +391,7 @@ pipeline:
matrix:
TESTS: integration-sharing-v1-part3
integration-checksums-v1:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -400,7 +400,7 @@ pipeline:
matrix:
TESTS: integration-checksums
integration-external-storage:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -409,7 +409,7 @@ pipeline:
matrix:
TESTS: integration-external-storage
integration-provisioning-v1:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -418,7 +418,7 @@ pipeline:
matrix:
TESTS: integration-provisioning-v1
integration-tags:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -427,7 +427,7 @@ pipeline:
matrix:
TESTS: integration-tags
integration-caldav:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -436,7 +436,7 @@ pipeline:
matrix:
TESTS: integration-caldav
integration-comments:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -445,7 +445,7 @@ pipeline:
matrix:
TESTS: integration-comments
integration-favorites:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -454,7 +454,7 @@ pipeline:
matrix:
TESTS: integration-favorites
integration-provisioning-v2:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -463,7 +463,7 @@ pipeline:
matrix:
TESTS: integration-provisioning-v2
integration-webdav-related:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -472,7 +472,7 @@ pipeline:
matrix:
TESTS: integration-webdav-related
integration-sharees-features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -481,7 +481,7 @@ pipeline:
matrix:
TESTS: integration-sharees-features
integration-sharees-v2-features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -490,7 +490,7 @@ pipeline:
matrix:
TESTS: integration-sharees-v2-features
integration-setup-features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- cd build/integration
- ./run.sh setup_features/setup.feature
@@ -498,7 +498,7 @@ pipeline:
matrix:
TESTS: integration-setup-features
integration-filesdrop-features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -507,7 +507,7 @@ pipeline:
matrix:
TESTS: integration-filesdrop-features
integration-transfer-ownership-features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -516,7 +516,7 @@ pipeline:
matrix:
TESTS: integration-transfer-ownership-features
integration-ldap-features:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- ./occ app:enable user_ldap
@@ -526,7 +526,7 @@ pipeline:
matrix:
TESTS: integration-ldap-features
integration-trashbin:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -535,7 +535,7 @@ pipeline:
matrix:
TESTS: integration-trashbin
integration-remote-api:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
@@ -544,7 +544,7 @@ pipeline:
matrix:
TESTS: integration-remote-api
integration-download:
- image: nextcloudci/integration-php7.0:integration-php7.0-6
+ image: nextcloudci/integration-php7.0:integration-php7.0-8
commands:
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
- cd build/integration
diff --git a/apps/comments/l10n/cs.js b/apps/comments/l10n/cs.js
index 3677d0bbff7..d24508a06ab 100644
--- a/apps/comments/l10n/cs.js
+++ b/apps/comments/l10n/cs.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"Error occurred while retrieving comment with ID {id}" : "Došlo k chybě při načítání komentáře s ID {id}",
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
- "_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
+ "_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtených komentářů"],
"Comment" : "Komentář",
"You commented" : "Okomentoval(a) jsi",
"%1$s commented" : "%1$s okomentován",
@@ -33,4 +33,4 @@ OC.L10N.register(
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\""
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/comments/l10n/cs.json b/apps/comments/l10n/cs.json
index 7f9bb2f636c..4f21ebd36a9 100644
--- a/apps/comments/l10n/cs.json
+++ b/apps/comments/l10n/cs.json
@@ -13,7 +13,7 @@
"Error occurred while retrieving comment with ID {id}" : "Došlo k chybě při načítání komentáře s ID {id}",
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
- "_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
+ "_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů","%n nepřečtených komentářů"],
"Comment" : "Komentář",
"You commented" : "Okomentoval(a) jsi",
"%1$s commented" : "%1$s okomentován",
@@ -30,5 +30,5 @@
"Unknown user" : "Neznámý uživatel",
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\""
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/comments/l10n/es_GT.js b/apps/comments/l10n/es_GT.js
index dd35a834011..91c91e0c094 100644
--- a/apps/comments/l10n/es_GT.js
+++ b/apps/comments/l10n/es_GT.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
+ "Error occurred while retrieving comment with ID {id}" : "Se presentó un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
diff --git a/apps/comments/l10n/es_GT.json b/apps/comments/l10n/es_GT.json
index 270910c334b..58f6624a7a3 100644
--- a/apps/comments/l10n/es_GT.json
+++ b/apps/comments/l10n/es_GT.json
@@ -10,6 +10,7 @@
"More comments …" : "Más comentarios ...",
"Save" : "Guardar",
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
+ "Error occurred while retrieving comment with ID {id}" : "Se presentó un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
diff --git a/apps/comments/l10n/he.js b/apps/comments/l10n/he.js
index ce851ed9fb2..9969267a9f7 100644
--- a/apps/comments/l10n/he.js
+++ b/apps/comments/l10n/he.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"Error occurred while retrieving comment with ID {id}" : "אירעה שגיאה בעת קבלת התגובה עם המזהה {id}",
"Error occurred while updating comment with id {id}" : "שגיאה אירעה כאשר עודכנה תגובה עם מספר זיהוי {id}",
"Error occurred while posting comment" : "אירעה שגיאה בזמן פרסום תגובה",
- "_%n unread comment_::_%n unread comments_" : ["תגובה אחת שלא נקראה","%n תגובות שלא נקראו"],
+ "_%n unread comment_::_%n unread comments_" : ["תגובה אחת שלא נקראה","%n תגובות שלא נקראו","%n תגובות שלא נקראו"],
"Comment" : "תגובה",
"You commented" : "הערות שלך",
"%1$s commented" : "התקבלו תגובות %1$s",
@@ -33,4 +33,4 @@ OC.L10N.register(
"A (now) deleted user mentioned you in a comment on “%s”" : "אוזכרת על ידי משתמש שנמחק (נכון לעכשיו) בתגובה על „%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "אוזכרת על ידי משתמש שנמחק (נכון לעכשיו) בתגובה על „{file}”"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/comments/l10n/he.json b/apps/comments/l10n/he.json
index 8ab976952a1..a2ff91300ca 100644
--- a/apps/comments/l10n/he.json
+++ b/apps/comments/l10n/he.json
@@ -13,7 +13,7 @@
"Error occurred while retrieving comment with ID {id}" : "אירעה שגיאה בעת קבלת התגובה עם המזהה {id}",
"Error occurred while updating comment with id {id}" : "שגיאה אירעה כאשר עודכנה תגובה עם מספר זיהוי {id}",
"Error occurred while posting comment" : "אירעה שגיאה בזמן פרסום תגובה",
- "_%n unread comment_::_%n unread comments_" : ["תגובה אחת שלא נקראה","%n תגובות שלא נקראו"],
+ "_%n unread comment_::_%n unread comments_" : ["תגובה אחת שלא נקראה","%n תגובות שלא נקראו","%n תגובות שלא נקראו"],
"Comment" : "תגובה",
"You commented" : "הערות שלך",
"%1$s commented" : "התקבלו תגובות %1$s",
@@ -30,5 +30,5 @@
"Unknown user" : "משתמש לא ידוע",
"A (now) deleted user mentioned you in a comment on “%s”" : "אוזכרת על ידי משתמש שנמחק (נכון לעכשיו) בתגובה על „%s”",
"A (now) deleted user mentioned you in a comment on “{file}”" : "אוזכרת על ידי משתמש שנמחק (נכון לעכשיו) בתגובה על „{file}”"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/comments/l10n/ka_GE.js b/apps/comments/l10n/ka_GE.js
index 295d6ce41ec..772b23c0fa3 100644
--- a/apps/comments/l10n/ka_GE.js
+++ b/apps/comments/l10n/ka_GE.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"Allowed characters {count} of {max}" : "დაშვებული სიმბოლოები {count} {max}-იდან",
"Error occurred while updating comment with id {id}" : "კომენტარის id-იდ {id}-ის ცვლილებისას წარმოიშვა შეცდომა",
"Error occurred while posting comment" : "კომენტარის გამოქვეყნებისას წარმოიშვა შეცდომა",
- "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი"],
+ "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი","%n წაუკუთხავი კომენტარი"],
"Comment" : "კომენტარის დამატება",
"You commented" : "თქვენ გააკეთეთ კომენტარი",
"%1$s commented" : "%1$s მოხმარებელმა გააკეთა კომენტარი",
@@ -32,4 +32,4 @@ OC.L10N.register(
"A (now) deleted user mentioned you in a comment on “%s”" : "(ახლა) წაშლილმა მოხმარებელმა მოგიხსენიათ კომენტარში “%s”-ზე",
"A (now) deleted user mentioned you in a comment on “{file}”" : "(ახლა) წაშლილმა მოხმარებელმა მოგიხსენიათ კომენტარში ფაილზე \"{file}\""
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/comments/l10n/ka_GE.json b/apps/comments/l10n/ka_GE.json
index d10f8aafa0e..e10ee3c9f26 100644
--- a/apps/comments/l10n/ka_GE.json
+++ b/apps/comments/l10n/ka_GE.json
@@ -12,7 +12,7 @@
"Allowed characters {count} of {max}" : "დაშვებული სიმბოლოები {count} {max}-იდან",
"Error occurred while updating comment with id {id}" : "კომენტარის id-იდ {id}-ის ცვლილებისას წარმოიშვა შეცდომა",
"Error occurred while posting comment" : "კომენტარის გამოქვეყნებისას წარმოიშვა შეცდომა",
- "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი"],
+ "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი","%n წაუკუთხავი კომენტარი"],
"Comment" : "კომენტარის დამატება",
"You commented" : "თქვენ გააკეთეთ კომენტარი",
"%1$s commented" : "%1$s მოხმარებელმა გააკეთა კომენტარი",
@@ -29,5 +29,5 @@
"Unknown user" : "უცნობი მომხმარებელი",
"A (now) deleted user mentioned you in a comment on “%s”" : "(ახლა) წაშლილმა მოხმარებელმა მოგიხსენიათ კომენტარში “%s”-ზე",
"A (now) deleted user mentioned you in a comment on “{file}”" : "(ახლა) წაშლილმა მოხმარებელმა მოგიხსენიათ კომენტარში ფაილზე \"{file}\""
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/comments/l10n/lt_LT.js b/apps/comments/l10n/lt_LT.js
index 8608dc01f9d..4895fb83136 100644
--- a/apps/comments/l10n/lt_LT.js
+++ b/apps/comments/l10n/lt_LT.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"Allowed characters {count} of {max}" : "Leidžiama simbolių {count} iš {max}",
"Error occurred while updating comment with id {id}" : "Klaida bandant pataisyti komentarą pagal identifikavimo numerį {id}",
"Error occurred while posting comment" : "Skelbiant komentarą, įvyko klaida",
- "_%n unread comment_::_%n unread comments_" : ["%n neskaitytas komentaras","%n neskaityti komentarai","%n neskaitytų komentarų"],
+ "_%n unread comment_::_%n unread comments_" : ["%n neskaitytas komentaras","%n neskaityti komentarai","%n neskaitytų komentarų","%n neskaitytų komentarų"],
"Comment" : "Komentaras",
"You commented" : "Jūs pakomentavote",
"%1$s commented" : "%1$s pakomentavo",
@@ -30,4 +30,4 @@ OC.L10N.register(
"A (now) deleted user mentioned you in a comment on “%s”" : "Ištrintas vartotojas paminėjo jus komentare \"%s\"",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ištrintas vartotojas paminėjo jus komentare \"{file}\""
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/comments/l10n/lt_LT.json b/apps/comments/l10n/lt_LT.json
index 165f33b6de1..56fbfe1009e 100644
--- a/apps/comments/l10n/lt_LT.json
+++ b/apps/comments/l10n/lt_LT.json
@@ -12,7 +12,7 @@
"Allowed characters {count} of {max}" : "Leidžiama simbolių {count} iš {max}",
"Error occurred while updating comment with id {id}" : "Klaida bandant pataisyti komentarą pagal identifikavimo numerį {id}",
"Error occurred while posting comment" : "Skelbiant komentarą, įvyko klaida",
- "_%n unread comment_::_%n unread comments_" : ["%n neskaitytas komentaras","%n neskaityti komentarai","%n neskaitytų komentarų"],
+ "_%n unread comment_::_%n unread comments_" : ["%n neskaitytas komentaras","%n neskaityti komentarai","%n neskaitytų komentarų","%n neskaitytų komentarų"],
"Comment" : "Komentaras",
"You commented" : "Jūs pakomentavote",
"%1$s commented" : "%1$s pakomentavo",
@@ -27,5 +27,5 @@
"Unknown user" : "Nežinomas naudotojas",
"A (now) deleted user mentioned you in a comment on “%s”" : "Ištrintas vartotojas paminėjo jus komentare \"%s\"",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ištrintas vartotojas paminėjo jus komentare \"{file}\""
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/comments/l10n/sk.js b/apps/comments/l10n/sk.js
index 76fa18388d8..9a5567ba453 100644
--- a/apps/comments/l10n/sk.js
+++ b/apps/comments/l10n/sk.js
@@ -15,7 +15,7 @@ OC.L10N.register(
"Error occurred while retrieving comment with ID {id}" : "Pri načítavaní komentára s id {id} nastala chyba",
"Error occurred while updating comment with id {id}" : "Pri aktualizovaní komentára s id {id} nastala chyba",
"Error occurred while posting comment" : "Pri odosielaní komentára nastala chyba",
- "_%n unread comment_::_%n unread comments_" : ["%n neprečítaný komentár","%n neprečítaných komentárov","%n neprečítaných komentárov"],
+ "_%n unread comment_::_%n unread comments_" : ["%n neprečítaný komentár","%n neprečítaných komentárov","%n neprečítaných komentárov","%n neprečítaných komentárov"],
"Comment" : "Komentár",
"You commented" : "Komentovali ste",
"%1$s commented" : "%1$s komentoval",
@@ -25,10 +25,11 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s komentoval %2$s",
"{author} commented on {file}" : "{author} komentoval {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáre</strong> pre súbory",
+ "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "\"%s\"",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás spomenul v komentári k \"%2$s\"",
"{user} mentioned you in a comment on “{file}”" : "{user} vás spomenul v komentári k “{file}”",
"Unknown user" : "Neznámy používateľ",
"A (now) deleted user mentioned you in a comment on “%s”" : "Teraz už odstránený používateľ vás spomenul v komentári k \"%s\"",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Teraz už odstránený používateľ vás spomenul v komentári k \"{file}\""
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/comments/l10n/sk.json b/apps/comments/l10n/sk.json
index d91cc488252..9d6a839eacd 100644
--- a/apps/comments/l10n/sk.json
+++ b/apps/comments/l10n/sk.json
@@ -13,7 +13,7 @@
"Error occurred while retrieving comment with ID {id}" : "Pri načítavaní komentára s id {id} nastala chyba",
"Error occurred while updating comment with id {id}" : "Pri aktualizovaní komentára s id {id} nastala chyba",
"Error occurred while posting comment" : "Pri odosielaní komentára nastala chyba",
- "_%n unread comment_::_%n unread comments_" : ["%n neprečítaný komentár","%n neprečítaných komentárov","%n neprečítaných komentárov"],
+ "_%n unread comment_::_%n unread comments_" : ["%n neprečítaný komentár","%n neprečítaných komentárov","%n neprečítaných komentárov","%n neprečítaných komentárov"],
"Comment" : "Komentár",
"You commented" : "Komentovali ste",
"%1$s commented" : "%1$s komentoval",
@@ -23,10 +23,11 @@
"%1$s commented on %2$s" : "%1$s komentoval %2$s",
"{author} commented on {file}" : "{author} komentoval {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáre</strong> pre súbory",
+ "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "\"%s\"",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás spomenul v komentári k \"%2$s\"",
"{user} mentioned you in a comment on “{file}”" : "{user} vás spomenul v komentári k “{file}”",
"Unknown user" : "Neznámy používateľ",
"A (now) deleted user mentioned you in a comment on “%s”" : "Teraz už odstránený používateľ vás spomenul v komentári k \"%s\"",
"A (now) deleted user mentioned you in a comment on “{file}”" : "Teraz už odstránený používateľ vás spomenul v komentári k \"{file}\""
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/comments/l10n/uk.js b/apps/comments/l10n/uk.js
index fdd6cf84163..45c60fedcd2 100644
--- a/apps/comments/l10n/uk.js
+++ b/apps/comments/l10n/uk.js
@@ -26,4 +26,4 @@ OC.L10N.register(
"<strong>Comments</strong> for files" : "<strong>Коментів</strong> для файлів",
"Unknown user" : "Невідомий користувач"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/apps/comments/l10n/uk.json b/apps/comments/l10n/uk.json
index a33108bae71..ca246e40258 100644
--- a/apps/comments/l10n/uk.json
+++ b/apps/comments/l10n/uk.json
@@ -23,5 +23,5 @@
"{author} commented on {file}" : "{author} прокоментував {file}",
"<strong>Comments</strong> for files" : "<strong>Коментів</strong> для файлів",
"Unknown user" : "Невідомий користувач"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ca.js b/apps/dav/l10n/ca.js
index d59b3d88fdd..f4cc6d25aab 100644
--- a/apps/dav/l10n/ca.js
+++ b/apps/dav/l10n/ca.js
@@ -5,7 +5,7 @@ OC.L10N.register(
"Todos" : "Tots",
"Personal" : "Personal",
"{actor} created calendar {calendar}" : "{actor} ha creat el calendari {calendar}",
- "You created calendar {calendar}" : "Vosté ha creat el calentari {calendar}",
+ "You created calendar {calendar}" : "Vostè ha creat el calendari {calendar}",
"{actor} deleted calendar {calendar}" : "{actor} ha esborrat el calendari {calendar}",
"You deleted calendar {calendar}" : "Voste ha esborrat el calendari {calendar}",
"{actor} updated calendar {calendar}" : "{actor} ha actualitzat el calendari {calendar}",
diff --git a/apps/dav/l10n/ca.json b/apps/dav/l10n/ca.json
index 04fec606daf..5479a8d69bd 100644
--- a/apps/dav/l10n/ca.json
+++ b/apps/dav/l10n/ca.json
@@ -3,7 +3,7 @@
"Todos" : "Tots",
"Personal" : "Personal",
"{actor} created calendar {calendar}" : "{actor} ha creat el calendari {calendar}",
- "You created calendar {calendar}" : "Vosté ha creat el calentari {calendar}",
+ "You created calendar {calendar}" : "Vostè ha creat el calendari {calendar}",
"{actor} deleted calendar {calendar}" : "{actor} ha esborrat el calendari {calendar}",
"You deleted calendar {calendar}" : "Voste ha esborrat el calendari {calendar}",
"{actor} updated calendar {calendar}" : "{actor} ha actualitzat el calendari {calendar}",
diff --git a/apps/dav/l10n/cs.js b/apps/dav/l10n/cs.js
index 012a3c09b88..808b9677a0a 100644
--- a/apps/dav/l10n/cs.js
+++ b/apps/dav/l10n/cs.js
@@ -64,4 +64,4 @@ OC.L10N.register(
"Please make sure to properly set up the email settings above." : "Ujistěte se, že jste správně nastavili výše uvedená nastavení e-mailu.",
"Automatically generate a birthday calendar" : "Automaticky vytvořit kalendář s narozeninami"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/dav/l10n/cs.json b/apps/dav/l10n/cs.json
index 09b60937f3a..50b296e2c55 100644
--- a/apps/dav/l10n/cs.json
+++ b/apps/dav/l10n/cs.json
@@ -61,5 +61,5 @@
"Send invitations to attendees" : "Poslat pozvánky na adresy účastníků",
"Please make sure to properly set up the email settings above." : "Ujistěte se, že jste správně nastavili výše uvedená nastavení e-mailu.",
"Automatically generate a birthday calendar" : "Automaticky vytvořit kalendář s narozeninami"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/es_GT.js b/apps/dav/l10n/es_GT.js
index 6f229188f9a..d01873bd444 100644
--- a/apps/dav/l10n/es_GT.js
+++ b/apps/dav/l10n/es_GT.js
@@ -55,6 +55,7 @@ OC.L10N.register(
"Description:" : "Descripción:",
"Link:" : "Enlace:",
"Contacts" : "Contactos",
+ "WebDAV" : "WebDAV",
"Technical details" : "Detalles técnicos",
"Remote Address: %s" : "Dirección remota: %s",
"Request ID: %s" : "ID de solicitud: %s",
diff --git a/apps/dav/l10n/es_GT.json b/apps/dav/l10n/es_GT.json
index eba678f78a0..5cbd4755efd 100644
--- a/apps/dav/l10n/es_GT.json
+++ b/apps/dav/l10n/es_GT.json
@@ -53,6 +53,7 @@
"Description:" : "Descripción:",
"Link:" : "Enlace:",
"Contacts" : "Contactos",
+ "WebDAV" : "WebDAV",
"Technical details" : "Detalles técnicos",
"Remote Address: %s" : "Dirección remota: %s",
"Request ID: %s" : "ID de solicitud: %s",
diff --git a/apps/dav/l10n/he.js b/apps/dav/l10n/he.js
index 04523cb0c1e..649d73a0f91 100644
--- a/apps/dav/l10n/he.js
+++ b/apps/dav/l10n/he.js
@@ -36,4 +36,4 @@ OC.L10N.register(
"Birthday calendars will be generated by a background job." : "יומני ימי הולדת ייווצרו על ידי משימה ברקע.",
"Hence they will not be available immediately after enabling but will show up after some time." : "לכן הם לא יהיה זמינים מיד לאחר ההפעלה אלא הם יופיעו לאחר זמן מה."
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/dav/l10n/he.json b/apps/dav/l10n/he.json
index 11c7ca6b6bf..1ddc3c3f0b6 100644
--- a/apps/dav/l10n/he.json
+++ b/apps/dav/l10n/he.json
@@ -33,5 +33,5 @@
"Automatically generate a birthday calendar" : "יצירת יומן ימי הולדת אוטומטית",
"Birthday calendars will be generated by a background job." : "יומני ימי הולדת ייווצרו על ידי משימה ברקע.",
"Hence they will not be available immediately after enabling but will show up after some time." : "לכן הם לא יהיה זמינים מיד לאחר ההפעלה אלא הם יופיעו לאחר זמן מה."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ka_GE.js b/apps/dav/l10n/ka_GE.js
index 5c3d70b2c64..aabc712aa53 100644
--- a/apps/dav/l10n/ka_GE.js
+++ b/apps/dav/l10n/ka_GE.js
@@ -66,4 +66,4 @@ OC.L10N.register(
"Birthday calendars will be generated by a background job." : "ბადადების დღეების კალენდრები გენერირებულ იქნება ფონურ რეჟიმში.",
"Hence they will not be available immediately after enabling but will show up after some time." : "ისინი არ იქნებიან ხელმიწავდომნი უცბად, მაგრამ გამოჩნდებიან გარკვეული პერიოდის შემდეგ."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/dav/l10n/ka_GE.json b/apps/dav/l10n/ka_GE.json
index c9318e2c9f5..0e3c97ecb8b 100644
--- a/apps/dav/l10n/ka_GE.json
+++ b/apps/dav/l10n/ka_GE.json
@@ -63,5 +63,5 @@
"Automatically generate a birthday calendar" : "დაბადების დღეების კალენდრების ავტომატური გენერირება",
"Birthday calendars will be generated by a background job." : "ბადადების დღეების კალენდრები გენერირებულ იქნება ფონურ რეჟიმში.",
"Hence they will not be available immediately after enabling but will show up after some time." : "ისინი არ იქნებიან ხელმიწავდომნი უცბად, მაგრამ გამოჩნდებიან გარკვეული პერიოდის შემდეგ."
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/lt_LT.js b/apps/dav/l10n/lt_LT.js
index ec20bcf7bc8..2d21e9f1212 100644
--- a/apps/dav/l10n/lt_LT.js
+++ b/apps/dav/l10n/lt_LT.js
@@ -46,4 +46,4 @@ OC.L10N.register(
"Remote Address: %s" : "Nuotolinis adresas: %s",
"Request ID: %s" : "Užklausos ID: %s"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/dav/l10n/lt_LT.json b/apps/dav/l10n/lt_LT.json
index c0a8e43c7b8..03ca7ad98c6 100644
--- a/apps/dav/l10n/lt_LT.json
+++ b/apps/dav/l10n/lt_LT.json
@@ -43,5 +43,5 @@
"Technical details" : "Techninė informacija",
"Remote Address: %s" : "Nuotolinis adresas: %s",
"Request ID: %s" : "Užklausos ID: %s"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/sk.js b/apps/dav/l10n/sk.js
index 8122af1dcf0..6dbf7e47a64 100644
--- a/apps/dav/l10n/sk.js
+++ b/apps/dav/l10n/sk.js
@@ -65,4 +65,4 @@ OC.L10N.register(
"Birthday calendars will be generated by a background job." : "Narodeninové kalendáre budú generované úlohou na pozadí.",
"Hence they will not be available immediately after enabling but will show up after some time." : "Preto nebudú dostupné hneď po povolení, ale zobrazia sa po určitom čase"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/dav/l10n/sk.json b/apps/dav/l10n/sk.json
index a30b68b0416..412b980bc21 100644
--- a/apps/dav/l10n/sk.json
+++ b/apps/dav/l10n/sk.json
@@ -62,5 +62,5 @@
"Automatically generate a birthday calendar" : "Automaticky generovať narodeninový kalendár",
"Birthday calendars will be generated by a background job." : "Narodeninové kalendáre budú generované úlohou na pozadí.",
"Hence they will not be available immediately after enabling but will show up after some time." : "Preto nebudú dostupné hneď po povolení, ale zobrazia sa po určitom čase"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ca.js b/apps/encryption/l10n/ca.js
index 9b57c56ab5c..cae7072d0e8 100644
--- a/apps/encryption/l10n/ca.js
+++ b/apps/encryption/l10n/ca.js
@@ -31,6 +31,7 @@ OC.L10N.register(
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.",
"Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot llegir aquest fitxer, probablement aquest sigui un fitxer compartit. Demana al propietari del fitxer que torni a compartir el fitxer amb tu.",
"Default encryption module" : "Mòdul de xifrat per defecte",
+ "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hola,\n\nl'administrador ha activat l'encriptació de part del servidor. Els teus fitxers s'han encriptat utilitzant la contrasenya '%s'.\n\nInicia sessió a la web, vés a la secció 'encriptació bàsica' de la teva configuració personal i actualitza la contrasenya antiga substituint-la per aquesta altra.\n\n",
"The share will expire on %s." : "La compartició venç el %s.",
"Cheers!" : "Salut!",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
diff --git a/apps/encryption/l10n/ca.json b/apps/encryption/l10n/ca.json
index db395f336bf..3754827764c 100644
--- a/apps/encryption/l10n/ca.json
+++ b/apps/encryption/l10n/ca.json
@@ -29,6 +29,7 @@
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.",
"Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es pot llegir aquest fitxer, probablement aquest sigui un fitxer compartit. Demana al propietari del fitxer que torni a compartir el fitxer amb tu.",
"Default encryption module" : "Mòdul de xifrat per defecte",
+ "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hola,\n\nl'administrador ha activat l'encriptació de part del servidor. Els teus fitxers s'han encriptat utilitzant la contrasenya '%s'.\n\nInicia sessió a la web, vés a la secció 'encriptació bàsica' de la teva configuració personal i actualitza la contrasenya antiga substituint-la per aquesta altra.\n\n",
"The share will expire on %s." : "La compartició venç el %s.",
"Cheers!" : "Salut!",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
diff --git a/apps/encryption/l10n/cs.js b/apps/encryption/l10n/cs.js
index 71076d204c3..610c5b290ef 100644
--- a/apps/encryption/l10n/cs.js
+++ b/apps/encryption/l10n/cs.js
@@ -61,4 +61,4 @@ OC.L10N.register(
"Disabled" : "Zakázáno",
"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" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Spusťte příkaz 'occ encryption:migrate' nebo kontaktujte svého administrátora."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/encryption/l10n/cs.json b/apps/encryption/l10n/cs.json
index 69aaf8ebadc..84a3ea77b98 100644
--- a/apps/encryption/l10n/cs.json
+++ b/apps/encryption/l10n/cs.json
@@ -58,5 +58,5 @@
"Enabled" : "Povoleno",
"Disabled" : "Zakázáno",
"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" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Spusťte příkaz 'occ encryption:migrate' nebo kontaktujte svého administrátora."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/fa.js b/apps/encryption/l10n/fa.js
index c4759a799e8..32e268deeaf 100644
--- a/apps/encryption/l10n/fa.js
+++ b/apps/encryption/l10n/fa.js
@@ -39,4 +39,4 @@ OC.L10N.register(
"Enabled" : "فعال شده",
"Disabled" : "غیرفعال شده"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/apps/encryption/l10n/fa.json b/apps/encryption/l10n/fa.json
index a9adbebb31b..fba9a0e6ecf 100644
--- a/apps/encryption/l10n/fa.json
+++ b/apps/encryption/l10n/fa.json
@@ -36,5 +36,5 @@
"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;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/he.js b/apps/encryption/l10n/he.js
index 5ed57596d5f..41d29d8b9af 100644
--- a/apps/encryption/l10n/he.js
+++ b/apps/encryption/l10n/he.js
@@ -61,4 +61,4 @@ OC.L10N.register(
"Disabled" : "מנוטרל",
"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' או לפנות למנהל שלך"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/encryption/l10n/he.json b/apps/encryption/l10n/he.json
index 645302d577d..61bec1c2c31 100644
--- a/apps/encryption/l10n/he.json
+++ b/apps/encryption/l10n/he.json
@@ -58,5 +58,5 @@
"Enabled" : "מופעל",
"Disabled" : "מנוטרל",
"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' או לפנות למנהל שלך"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ka_GE.js b/apps/encryption/l10n/ka_GE.js
index 535c4ad1ed6..65710c2f846 100644
--- a/apps/encryption/l10n/ka_GE.js
+++ b/apps/encryption/l10n/ka_GE.js
@@ -61,4 +61,4 @@ OC.L10N.register(
"Disabled" : "არაა მოქმედი",
"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' ან დაუკავშირდეთ ადმინისტრატორს"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/encryption/l10n/ka_GE.json b/apps/encryption/l10n/ka_GE.json
index f3a2550f115..f2fa1bc3134 100644
--- a/apps/encryption/l10n/ka_GE.json
+++ b/apps/encryption/l10n/ka_GE.json
@@ -58,5 +58,5 @@
"Enabled" : "მოქმედია",
"Disabled" : "არაა მოქმედი",
"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' ან დაუკავშირდეთ ადმინისტრატორს"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/lt_LT.js b/apps/encryption/l10n/lt_LT.js
index 7ac21150f47..d4378a5f7b9 100644
--- a/apps/encryption/l10n/lt_LT.js
+++ b/apps/encryption/l10n/lt_LT.js
@@ -61,4 +61,4 @@ OC.L10N.register(
"Disabled" : "Išjungta",
"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" : "Jūs turite atlikti savo šifravimo raktų perkėlimą iš senojo šifravimo (ownCloud <= 8.0) į naująjį. Prašome terminale įvykdyti \"occ encryption:migrate\" arba susisiekti su sistemos administratoriumi"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/encryption/l10n/lt_LT.json b/apps/encryption/l10n/lt_LT.json
index 3a148b6d8ca..1bb5a785306 100644
--- a/apps/encryption/l10n/lt_LT.json
+++ b/apps/encryption/l10n/lt_LT.json
@@ -58,5 +58,5 @@
"Enabled" : "Įjungta",
"Disabled" : "Išjungta",
"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" : "Jūs turite atlikti savo šifravimo raktų perkėlimą iš senojo šifravimo (ownCloud <= 8.0) į naująjį. Prašome terminale įvykdyti \"occ encryption:migrate\" arba susisiekti su sistemos administratoriumi"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/sk.js b/apps/encryption/l10n/sk.js
index dc8840f495d..58c5a50338f 100644
--- a/apps/encryption/l10n/sk.js
+++ b/apps/encryption/l10n/sk.js
@@ -61,4 +61,4 @@ OC.L10N.register(
"Disabled" : "Zakázané",
"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" : "Musíte migrovať vaše šifrovacie kľúče zo starého šifrovania (ownCloud <= 8,0) na nové. Spustite „occ encryption:migrate“ alebo sa obráťte na správcu"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/encryption/l10n/sk.json b/apps/encryption/l10n/sk.json
index 6bd2cab2cc2..5390ea641ed 100644
--- a/apps/encryption/l10n/sk.json
+++ b/apps/encryption/l10n/sk.json
@@ -58,5 +58,5 @@
"Enabled" : "Povolené",
"Disabled" : "Zakázané",
"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" : "Musíte migrovať vaše šifrovacie kľúče zo starého šifrovania (ownCloud <= 8,0) na nové. Spustite „occ encryption:migrate“ alebo sa obráťte na správcu"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/uk.js b/apps/encryption/l10n/uk.js
index 3c256d336dc..e53cc1f908c 100644
--- a/apps/encryption/l10n/uk.js
+++ b/apps/encryption/l10n/uk.js
@@ -45,4 +45,4 @@ OC.L10N.register(
"Enabled" : "Увімкнено",
"Disabled" : "Вимкнено"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/apps/encryption/l10n/uk.json b/apps/encryption/l10n/uk.json
index 05b5108588e..b8a198c822d 100644
--- a/apps/encryption/l10n/uk.json
+++ b/apps/encryption/l10n/uk.json
@@ -42,5 +42,5 @@
"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю",
"Enabled" : "Увімкнено",
"Disabled" : "Вимкнено"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/ca.js b/apps/federatedfilesharing/l10n/ca.js
index 896a59d92c1..30860feec7c 100644
--- a/apps/federatedfilesharing/l10n/ca.js
+++ b/apps/federatedfilesharing/l10n/ca.js
@@ -40,7 +40,7 @@ OC.L10N.register(
"Search global and public address book for users" : "Cerca llibreta d'adreces global i pública per als usuaris",
"Allow users to publish their data to a global and public address book" : "Permetre als usuaris publicar les seves dades en una llibreta d'adreces global i pública",
"Federated Cloud" : "Núvol federat",
- "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Podeu compartir amb qualsevol persona que usi Nextcloud, ownCloud vs Pydio! Acaba de posar el seu identificador de núvol federat al diàleg d'accions. Sembla person@cloud.example.com",
+ "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Podeu compartir amb qualsevol persona que usi Nextcloud, ownCloud o Pydio! Només s'ha de posar el seu identificador de núvol federat a la finestra de compartir. És semblant a algu@cloud.web.cat",
"Your Federated Cloud ID:" : "El teu ID de Núvol Federat:",
"Share it so your friends can share files with you:" : "Compartiu-lo perquè els vostres amics puguin compartir fitxers amb vosaltres:",
"Add to your website" : "Afegeix a la teva pàgina web",
@@ -50,7 +50,7 @@ OC.L10N.register(
"Not allowed to create a federated share with the owner." : "No es permet crear una compartida federada amb el propietari.",
"Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable",
"Could not authenticate to remote share, password might be wrong" : "No s'ha pogut autenticar per compartir de manera remota, la contrasenya podria estar equivocada",
- "Storage not valid" : "Emmagatzemament no vàlid",
+ "Storage not valid" : "Emmagatzematge no vàlid",
"Federated share added" : "S'ha afegit una part federada",
"Couldn't add remote share" : "No s'ha pogut afegir una compartició remota",
"Search global and public address book for users and let local users publish their data" : "Busqueu llibreta d'adreces global i pública per als usuaris i deixeu que els usuaris locals publiquin les seves dades"
diff --git a/apps/federatedfilesharing/l10n/ca.json b/apps/federatedfilesharing/l10n/ca.json
index 6863153c673..f2c504d843c 100644
--- a/apps/federatedfilesharing/l10n/ca.json
+++ b/apps/federatedfilesharing/l10n/ca.json
@@ -38,7 +38,7 @@
"Search global and public address book for users" : "Cerca llibreta d'adreces global i pública per als usuaris",
"Allow users to publish their data to a global and public address book" : "Permetre als usuaris publicar les seves dades en una llibreta d'adreces global i pública",
"Federated Cloud" : "Núvol federat",
- "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Podeu compartir amb qualsevol persona que usi Nextcloud, ownCloud vs Pydio! Acaba de posar el seu identificador de núvol federat al diàleg d'accions. Sembla person@cloud.example.com",
+ "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Podeu compartir amb qualsevol persona que usi Nextcloud, ownCloud o Pydio! Només s'ha de posar el seu identificador de núvol federat a la finestra de compartir. És semblant a algu@cloud.web.cat",
"Your Federated Cloud ID:" : "El teu ID de Núvol Federat:",
"Share it so your friends can share files with you:" : "Compartiu-lo perquè els vostres amics puguin compartir fitxers amb vosaltres:",
"Add to your website" : "Afegeix a la teva pàgina web",
@@ -48,7 +48,7 @@
"Not allowed to create a federated share with the owner." : "No es permet crear una compartida federada amb el propietari.",
"Invalid or untrusted SSL certificate" : "El certificat SSL és invàlid o no és fiable",
"Could not authenticate to remote share, password might be wrong" : "No s'ha pogut autenticar per compartir de manera remota, la contrasenya podria estar equivocada",
- "Storage not valid" : "Emmagatzemament no vàlid",
+ "Storage not valid" : "Emmagatzematge no vàlid",
"Federated share added" : "S'ha afegit una part federada",
"Couldn't add remote share" : "No s'ha pogut afegir una compartició remota",
"Search global and public address book for users and let local users publish their data" : "Busqueu llibreta d'adreces global i pública per als usuaris i deixeu que els usuaris locals publiquin les seves dades"
diff --git a/apps/federatedfilesharing/l10n/cs.js b/apps/federatedfilesharing/l10n/cs.js
index 51e53113f0c..787cac6812f 100644
--- a/apps/federatedfilesharing/l10n/cs.js
+++ b/apps/federatedfilesharing/l10n/cs.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Couldn't add remote share" : "Nepodařilo se přidat propojené sdílení",
"Search global and public address book for users and let local users publish their data" : "Hledat uživatele v globálním a veřejném adresáři a dovolit místním uživatelům publikovat jejich údaje"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/federatedfilesharing/l10n/cs.json b/apps/federatedfilesharing/l10n/cs.json
index f17d7bb2371..92d8785ee62 100644
--- a/apps/federatedfilesharing/l10n/cs.json
+++ b/apps/federatedfilesharing/l10n/cs.json
@@ -52,5 +52,5 @@
"Federated share added" : "Propojené sdílení bylo přidáno",
"Couldn't add remote share" : "Nepodařilo se přidat propojené sdílení",
"Search global and public address book for users and let local users publish their data" : "Hledat uživatele v globálním a veřejném adresáři a dovolit místním uživatelům publikovat jejich údaje"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/es_GT.js b/apps/federatedfilesharing/l10n/es_GT.js
index 6b3ea68b723..911ea1914bb 100644
--- a/apps/federatedfilesharing/l10n/es_GT.js
+++ b/apps/federatedfilesharing/l10n/es_GT.js
@@ -17,6 +17,7 @@ OC.L10N.register(
"Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
"Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
"Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
+ "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
"Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya se encuentra compartido con %s",
"Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
"File is already shared with %s" : "El archivo ya ha sido compartido con %s",
@@ -31,6 +32,7 @@ OC.L10N.register(
"Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud, ver %s",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
"Sharing" : "Compartiendo",
+ "Federated file sharing" : "Compartir elementos",
"Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
"Open documentation" : "Abrir documentación",
"Adjust how people can share between servers." : "Ajustar cómo las personas pueden compartir entre servidores. ",
diff --git a/apps/federatedfilesharing/l10n/es_GT.json b/apps/federatedfilesharing/l10n/es_GT.json
index 11be2932416..f73ed38e39d 100644
--- a/apps/federatedfilesharing/l10n/es_GT.json
+++ b/apps/federatedfilesharing/l10n/es_GT.json
@@ -15,6 +15,7 @@
"Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ",
"Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ",
"Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.",
+ "Couldn't establish a federated share, it looks like the server to federate with is too old (Nextcloud <= 9)." : "No fue posible establecer el elemento compartido, parece que el servidor es obsoleto (Nextcloud <=9).",
"Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya se encuentra compartido con %s",
"Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario",
"File is already shared with %s" : "El archivo ya ha sido compartido con %s",
@@ -29,6 +30,7 @@
"Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud, ver %s",
"Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud",
"Sharing" : "Compartiendo",
+ "Federated file sharing" : "Compartir elementos",
"Federated Cloud Sharing" : "Compartiendo en la Nube Federada",
"Open documentation" : "Abrir documentación",
"Adjust how people can share between servers." : "Ajustar cómo las personas pueden compartir entre servidores. ",
diff --git a/apps/federatedfilesharing/l10n/ka_GE.js b/apps/federatedfilesharing/l10n/ka_GE.js
index 383ae2fc3c9..24417ffe2ee 100644
--- a/apps/federatedfilesharing/l10n/ka_GE.js
+++ b/apps/federatedfilesharing/l10n/ka_GE.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Couldn't add remote share" : "ფედერალური გაზიარება ვერ დაემატა",
"Search global and public address book for users and let local users publish their data" : "მოიძიეთ გლობალური და ღია მისამართების წიგნები მომხმარებლებისთვის და მიეცით უფლება ლოკალურ მომხმარებლებს გააზიარონ საკუთარი მონაცემები"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/federatedfilesharing/l10n/ka_GE.json b/apps/federatedfilesharing/l10n/ka_GE.json
index 19165fd3155..7ad3e889718 100644
--- a/apps/federatedfilesharing/l10n/ka_GE.json
+++ b/apps/federatedfilesharing/l10n/ka_GE.json
@@ -52,5 +52,5 @@
"Federated share added" : "ფედერალური გაზიარება დაემატა",
"Couldn't add remote share" : "ფედერალური გაზიარება ვერ დაემატა",
"Search global and public address book for users and let local users publish their data" : "მოიძიეთ გლობალური და ღია მისამართების წიგნები მომხმარებლებისთვის და მიეცით უფლება ლოკალურ მომხმარებლებს გააზიარონ საკუთარი მონაცემები"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/lt_LT.js b/apps/federatedfilesharing/l10n/lt_LT.js
index 47479c9e791..ea9707d92fa 100644
--- a/apps/federatedfilesharing/l10n/lt_LT.js
+++ b/apps/federatedfilesharing/l10n/lt_LT.js
@@ -53,4 +53,4 @@ OC.L10N.register(
"Couldn't add remote share" : "Nepavyko peržiūrėti kitame serveryje pasidalintų duomenų",
"Search global and public address book for users and let local users publish their data" : "Rasti globalias ar viešas adresų knygas ir leisti naudotojams viešinti savo duomenis"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/federatedfilesharing/l10n/lt_LT.json b/apps/federatedfilesharing/l10n/lt_LT.json
index 278d4381ae0..dd98e4b1402 100644
--- a/apps/federatedfilesharing/l10n/lt_LT.json
+++ b/apps/federatedfilesharing/l10n/lt_LT.json
@@ -50,5 +50,5 @@
"Federated share added" : "Pasidalinta per kitą serverį",
"Couldn't add remote share" : "Nepavyko peržiūrėti kitame serveryje pasidalintų duomenų",
"Search global and public address book for users and let local users publish their data" : "Rasti globalias ar viešas adresų knygas ir leisti naudotojams viešinti savo duomenis"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/sk.js b/apps/federatedfilesharing/l10n/sk.js
index b1a1f748ac1..ab9b598731e 100644
--- a/apps/federatedfilesharing/l10n/sk.js
+++ b/apps/federatedfilesharing/l10n/sk.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Couldn't add remote share" : "Nedá sa pridať vzdialené sprístupnenie",
"Search global and public address book for users and let local users publish their data" : "Vyhľadávať používateľog v globálnom a verejnom adresári a umožniť miestnym používateľom publikovať ich dáta"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/federatedfilesharing/l10n/sk.json b/apps/federatedfilesharing/l10n/sk.json
index c1ddd980e6a..db354ce1e48 100644
--- a/apps/federatedfilesharing/l10n/sk.json
+++ b/apps/federatedfilesharing/l10n/sk.json
@@ -52,5 +52,5 @@
"Federated share added" : "Združené sprístupnenie pridané",
"Couldn't add remote share" : "Nedá sa pridať vzdialené sprístupnenie",
"Search global and public address book for users and let local users publish their data" : "Vyhľadávať používateľog v globálnom a verejnom adresári a umožniť miestnym používateľom publikovať ich dáta"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/federation/l10n/ca.js b/apps/federation/l10n/ca.js
index 16429ae54af..6e9846ac609 100644
--- a/apps/federation/l10n/ca.js
+++ b/apps/federation/l10n/ca.js
@@ -3,12 +3,13 @@ OC.L10N.register(
{
"Added to the list of trusted servers" : "Afegeix a la llista de servidors de confiança",
"Server is already in the list of trusted servers." : "El servidor ja està a la llista de servidors de confiança",
- "No server to federate with found" : "No s\\'ha trobar cap servidor federat",
+ "No server to federate with found" : "No s'ha trobat cap servidor federat",
"Could not add server" : "No s'ha pogut afegir el servidor",
- "Trusted servers" : "Servidor de confiança",
+ "Federation" : "Federació",
+ "Trusted servers" : "Servidors de confiança",
"Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federació li permet connectar amb altres servidors de confiança per a intercanviar directoris d\\'usuari. Per exemple, això s\\'utilitzarà per als usuaris externs d'auto-completat per a l\\'ús compartit federat.",
"Add server automatically once a federated share was created successfully" : "Afegir servidor automàticament quan s'hagi creat una federació correctament",
- "+ Add trusted server" : "+Afegir servidor de confiança",
+ "+ Add trusted server" : "+ Afegir servidor de confiança",
"Trusted server" : "Servidor de confiança",
"Add" : "Afegir"
},
diff --git a/apps/federation/l10n/ca.json b/apps/federation/l10n/ca.json
index 4a91cec651a..2f03bf9bbb3 100644
--- a/apps/federation/l10n/ca.json
+++ b/apps/federation/l10n/ca.json
@@ -1,12 +1,13 @@
{ "translations": {
"Added to the list of trusted servers" : "Afegeix a la llista de servidors de confiança",
"Server is already in the list of trusted servers." : "El servidor ja està a la llista de servidors de confiança",
- "No server to federate with found" : "No s\\'ha trobar cap servidor federat",
+ "No server to federate with found" : "No s'ha trobat cap servidor federat",
"Could not add server" : "No s'ha pogut afegir el servidor",
- "Trusted servers" : "Servidor de confiança",
+ "Federation" : "Federació",
+ "Trusted servers" : "Servidors de confiança",
"Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federació li permet connectar amb altres servidors de confiança per a intercanviar directoris d\\'usuari. Per exemple, això s\\'utilitzarà per als usuaris externs d'auto-completat per a l\\'ús compartit federat.",
"Add server automatically once a federated share was created successfully" : "Afegir servidor automàticament quan s'hagi creat una federació correctament",
- "+ Add trusted server" : "+Afegir servidor de confiança",
+ "+ Add trusted server" : "+ Afegir servidor de confiança",
"Trusted server" : "Servidor de confiança",
"Add" : "Afegir"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/federation/l10n/cs.js b/apps/federation/l10n/cs.js
index ab76961f5b8..6271bb7cf4f 100644
--- a/apps/federation/l10n/cs.js
+++ b/apps/federation/l10n/cs.js
@@ -12,4 +12,4 @@ OC.L10N.register(
"Trusted server" : "Důvěryhodný server",
"Add" : "Přidat"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/federation/l10n/cs.json b/apps/federation/l10n/cs.json
index 8c7e4f40b61..5da2de183a0 100644
--- a/apps/federation/l10n/cs.json
+++ b/apps/federation/l10n/cs.json
@@ -9,5 +9,5 @@
"+ Add trusted server" : "+ Přidat důvěryhodný server",
"Trusted server" : "Důvěryhodný server",
"Add" : "Přidat"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/federation/l10n/es_GT.js b/apps/federation/l10n/es_GT.js
index 5c1215f3f38..b9d7cb74f43 100644
--- a/apps/federation/l10n/es_GT.js
+++ b/apps/federation/l10n/es_GT.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Server is already in the list of trusted servers." : "El servidor ya se encuentra en la lista de servidores de confianza.",
"No server to federate with found" : "No se encontraron servidores para integrar a la federación",
"Could not add server" : "No fue posible agregar el servidor",
+ "Federation" : "Federación",
"Trusted servers" : "Servidores de confianza",
"Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federación te permite conectarte con otros servidores de confianza para intercambiar el directorio de usuarios. Por ejemplo, esto se usará para auto-completar usuarios externos en el recurso compartido federado.",
"Add server automatically once a federated share was created successfully" : "Agregar el servidor automáticamente una vez que se genere exitosamente el elemento compartido federado",
diff --git a/apps/federation/l10n/es_GT.json b/apps/federation/l10n/es_GT.json
index 431c57a2124..b57a106f18a 100644
--- a/apps/federation/l10n/es_GT.json
+++ b/apps/federation/l10n/es_GT.json
@@ -3,6 +3,7 @@
"Server is already in the list of trusted servers." : "El servidor ya se encuentra en la lista de servidores de confianza.",
"No server to federate with found" : "No se encontraron servidores para integrar a la federación",
"Could not add server" : "No fue posible agregar el servidor",
+ "Federation" : "Federación",
"Trusted servers" : "Servidores de confianza",
"Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federación te permite conectarte con otros servidores de confianza para intercambiar el directorio de usuarios. Por ejemplo, esto se usará para auto-completar usuarios externos en el recurso compartido federado.",
"Add server automatically once a federated share was created successfully" : "Agregar el servidor automáticamente una vez que se genere exitosamente el elemento compartido federado",
diff --git a/apps/federation/l10n/fa.js b/apps/federation/l10n/fa.js
index 62279af2361..4e198c01bd8 100644
--- a/apps/federation/l10n/fa.js
+++ b/apps/federation/l10n/fa.js
@@ -8,4 +8,4 @@ OC.L10N.register(
"Trusted server" : "سرور قابل اعتماد",
"Add" : "افزودن"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/apps/federation/l10n/fa.json b/apps/federation/l10n/fa.json
index 0d79140137e..4e0985c569e 100644
--- a/apps/federation/l10n/fa.json
+++ b/apps/federation/l10n/fa.json
@@ -5,5 +5,5 @@
"Trusted servers" : "سرورهای قابل اعتماد",
"Trusted server" : "سرور قابل اعتماد",
"Add" : "افزودن"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/apps/federation/l10n/ka_GE.js b/apps/federation/l10n/ka_GE.js
index 5d8c926e293..fab637005fb 100644
--- a/apps/federation/l10n/ka_GE.js
+++ b/apps/federation/l10n/ka_GE.js
@@ -13,4 +13,4 @@ OC.L10N.register(
"Trusted server" : "სანდო სერვერი",
"Add" : "დამატება"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/federation/l10n/ka_GE.json b/apps/federation/l10n/ka_GE.json
index edf97f30f62..5c58878852c 100644
--- a/apps/federation/l10n/ka_GE.json
+++ b/apps/federation/l10n/ka_GE.json
@@ -10,5 +10,5 @@
"+ Add trusted server" : "+ სანდო სერვერის დამატება",
"Trusted server" : "სანდო სერვერი",
"Add" : "დამატება"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/federation/l10n/lt_LT.js b/apps/federation/l10n/lt_LT.js
index 24087403daf..2b7d5015f92 100644
--- a/apps/federation/l10n/lt_LT.js
+++ b/apps/federation/l10n/lt_LT.js
@@ -12,4 +12,4 @@ OC.L10N.register(
"Trusted server" : "Patikimas serveris",
"Add" : "Pridėti"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/federation/l10n/lt_LT.json b/apps/federation/l10n/lt_LT.json
index d83d14060a6..bfbd06e0874 100644
--- a/apps/federation/l10n/lt_LT.json
+++ b/apps/federation/l10n/lt_LT.json
@@ -9,5 +9,5 @@
"+ Add trusted server" : "+ Pridėti patikimą serverį",
"Trusted server" : "Patikimas serveris",
"Add" : "Pridėti"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/federation/l10n/sk.js b/apps/federation/l10n/sk.js
index 7a842a3961a..7a34cd0bf9b 100644
--- a/apps/federation/l10n/sk.js
+++ b/apps/federation/l10n/sk.js
@@ -13,4 +13,4 @@ OC.L10N.register(
"Trusted server" : "Dôveryhodný server",
"Add" : "Pridať"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/federation/l10n/sk.json b/apps/federation/l10n/sk.json
index 16da9ab4022..67bf8461968 100644
--- a/apps/federation/l10n/sk.json
+++ b/apps/federation/l10n/sk.json
@@ -10,5 +10,5 @@
"+ Add trusted server" : "Pridať dôveryhodný server",
"Trusted server" : "Dôveryhodný server",
"Add" : "Pridať"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index c4c56d4f29d..bf07aa8b771 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "Emmagatzemament temporalment no disponible",
- "Storage invalid" : "Emmagatzemament no vàlid",
+ "Storage is temporarily not available" : "Emmagatzematge temporalment no disponible",
+ "Storage invalid" : "Emmagatzematge no vàlid",
"Unknown error" : "Error desconegut",
"All files" : "Tots els fitxers",
"Recent" : "Recent",
@@ -69,9 +69,9 @@ OC.L10N.register(
"\"/\" is not allowed inside a file name." : "El caràcter \"/\" no es pot utilitzar en el nom de l'arxiu.",
"\"{name}\" is not an allowed filetype" : "\"{name}\" no és un tipus de fitxer permès",
"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!",
+ "Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzematge é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}%)",
+ "Your storage is almost full ({usedSpacePercent}%)" : "El vostre espai d'emmagatzematge és gairebé ple ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"View in folder" : "Veure a la carpeta",
"Copied!" : "Copiat!",
@@ -95,7 +95,7 @@ OC.L10N.register(
"Changed by {user}" : "Canviat per {user}",
"Deleted by {user}" : "Eliminat per {user}",
"Restored by {user}" : "Restaurat per {user}",
- "Renamed by {user}" : "Reanomenat per {user}",
+ "Renamed by {user}" : "Renomenat per {user}",
"Moved by {user}" : "Mogut per {user}",
"\"remote user\"" : "\"usuari remot\"",
"You created {file}" : "Has creat {file}",
@@ -107,12 +107,12 @@ OC.L10N.register(
"{user} deleted {file}" : "{user} ha esborrat {file}",
"You restored {file}" : "Has restaurat {file}",
"{user} restored {file}" : "{user} ha restaurat {file}",
- "You renamed {oldfile} to {newfile}" : "Heu reanomenat {oldfile} a {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} ha reanomenat {oldfile} a {newfile}",
+ "You renamed {oldfile} to {newfile}" : "Heu renomenat {oldfile} a {newfile}",
+ "{user} renamed {oldfile} to {newfile}" : "{user} ha renomenat {oldfile} a {newfile}",
"You moved {oldfile} to {newfile}" : "has mogut {oldfile} a {newfile}",
"{user} moved {oldfile} to {newfile}" : "{user} ha mogut {oldfile} a {newfile}",
"A file has been added to or removed from your <strong>favorites</strong>" : "S'ha afegit o eliminat un fitxer de les teves <strong>preferides</strong>",
- "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fitxer o carpeta ha estat <strong>canviat</strong> o <strong>reanomenat</strong>",
+ "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fitxer o carpeta ha estat <strong>canviat</strong> o <strong>renomenat</strong>",
"A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta",
"A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>",
@@ -127,7 +127,7 @@ OC.L10N.register(
"Missing permissions to edit from here." : "Falta els permisos per editar des d'aquí.",
"%s of %s used" : "Usats %s de %s",
"%s used" : "%s utilitzat",
- "Settings" : "Arranjament",
+ "Settings" : "Configuració",
"Show hidden files" : "Mostra els fitxers ocults",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilitza aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedir als teus arxius mitjançant WebDAV</a>",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index eae669d0b9b..269acd70939 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -1,6 +1,6 @@
{ "translations": {
- "Storage is temporarily not available" : "Emmagatzemament temporalment no disponible",
- "Storage invalid" : "Emmagatzemament no vàlid",
+ "Storage is temporarily not available" : "Emmagatzematge temporalment no disponible",
+ "Storage invalid" : "Emmagatzematge no vàlid",
"Unknown error" : "Error desconegut",
"All files" : "Tots els fitxers",
"Recent" : "Recent",
@@ -67,9 +67,9 @@
"\"/\" is not allowed inside a file name." : "El caràcter \"/\" no es pot utilitzar en el nom de l'arxiu.",
"\"{name}\" is not an allowed filetype" : "\"{name}\" no és un tipus de fitxer permès",
"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!",
+ "Your storage is full, files can not be updated or synced anymore!" : "El vostre espai d'emmagatzematge é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}%)",
+ "Your storage is almost full ({usedSpacePercent}%)" : "El vostre espai d'emmagatzematge és gairebé ple ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"View in folder" : "Veure a la carpeta",
"Copied!" : "Copiat!",
@@ -93,7 +93,7 @@
"Changed by {user}" : "Canviat per {user}",
"Deleted by {user}" : "Eliminat per {user}",
"Restored by {user}" : "Restaurat per {user}",
- "Renamed by {user}" : "Reanomenat per {user}",
+ "Renamed by {user}" : "Renomenat per {user}",
"Moved by {user}" : "Mogut per {user}",
"\"remote user\"" : "\"usuari remot\"",
"You created {file}" : "Has creat {file}",
@@ -105,12 +105,12 @@
"{user} deleted {file}" : "{user} ha esborrat {file}",
"You restored {file}" : "Has restaurat {file}",
"{user} restored {file}" : "{user} ha restaurat {file}",
- "You renamed {oldfile} to {newfile}" : "Heu reanomenat {oldfile} a {newfile}",
- "{user} renamed {oldfile} to {newfile}" : "{user} ha reanomenat {oldfile} a {newfile}",
+ "You renamed {oldfile} to {newfile}" : "Heu renomenat {oldfile} a {newfile}",
+ "{user} renamed {oldfile} to {newfile}" : "{user} ha renomenat {oldfile} a {newfile}",
"You moved {oldfile} to {newfile}" : "has mogut {oldfile} a {newfile}",
"{user} moved {oldfile} to {newfile}" : "{user} ha mogut {oldfile} a {newfile}",
"A file has been added to or removed from your <strong>favorites</strong>" : "S'ha afegit o eliminat un fitxer de les teves <strong>preferides</strong>",
- "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fitxer o carpeta ha estat <strong>canviat</strong> o <strong>reanomenat</strong>",
+ "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un fitxer o carpeta ha estat <strong>canviat</strong> o <strong>renomenat</strong>",
"A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta",
"A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>",
@@ -125,7 +125,7 @@
"Missing permissions to edit from here." : "Falta els permisos per editar des d'aquí.",
"%s of %s used" : "Usats %s de %s",
"%s used" : "%s utilitzat",
- "Settings" : "Arranjament",
+ "Settings" : "Configuració",
"Show hidden files" : "Mostra els fitxers ocults",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilitza aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedir als teus arxius mitjançant WebDAV</a>",
diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js
index ef9b5799a2e..f04e7365518 100644
--- a/apps/files/l10n/cs.js
+++ b/apps/files/l10n/cs.js
@@ -56,12 +56,12 @@ OC.L10N.register(
"Name" : "Název",
"Size" : "Velikost",
"Modified" : "Upraveno",
- "_%n folder_::_%n folders_" : ["%n adresář","%n adresáře","%n adresářů"],
- "_%n file_::_%n files_" : ["%n soubor","%n soubory","%n souborů"],
+ "_%n folder_::_%n folders_" : ["%n adresář","%n adresáře","%n adresářů","%n adresářů"],
+ "_%n file_::_%n files_" : ["%n soubor","%n soubory","%n souborů","%n souborů"],
"{dirs} and {files}" : "{dirs} a {files}",
- "_including %n hidden_::_including %n hidden_" : ["přidán %n skrytý","přidány %n skryté","přidáno %n skrytých"],
+ "_including %n hidden_::_including %n hidden_" : ["přidán %n skrytý","přidány %n skryté","přidáno %n skrytých","přidáno %n skrytých"],
"You don’t have permission to upload or create files here" : "Nemáte oprávnění sem nahrávat nebo vytvářet soubory",
- "_Uploading %n file_::_Uploading %n files_" : ["Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů","Nahrávám %n souborů"],
"New" : "Nový",
"{used} of {quota} used" : "Využito {used} z {quota} ",
"{used} used" : "{used} Využito",
@@ -73,12 +73,12 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubory.",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "Úložiště uživatele {owner} je téměř plné ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložiště je téměř plné ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["odpovídá '{filter}'","odpovídá '{filter}'","odpovídá '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["odpovídá '{filter}'","odpovídá '{filter}'","odpovídá '{filter}'","odpovídá '{filter}'"],
"View in folder" : "Zobrazit v adresáři",
"Copied!" : "Zkopírováno!",
"Copy direct link (only works for users who have access to this file/folder)" : "Zkopírovat přímý odkaz (funguje pouze pro uživatele, kteří mají přistup k tomuto souboru/adresáři)",
"Path" : "Cesta",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů","%n bajtů"],
"Favorited" : "Přidáno k oblíbeným",
"Favorite" : "Oblíbené",
"New folder" : "Nový adresář",
@@ -159,4 +159,4 @@ OC.L10N.register(
"A new file or folder has been <strong>restored</strong>" : "Nový soubor nebo adresář byl <strong>obnoven</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použít tuto adresu <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> pro přístup k souborům přes WebDAV</a>"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json
index 5e5719bc6f7..11295433909 100644
--- a/apps/files/l10n/cs.json
+++ b/apps/files/l10n/cs.json
@@ -54,12 +54,12 @@
"Name" : "Název",
"Size" : "Velikost",
"Modified" : "Upraveno",
- "_%n folder_::_%n folders_" : ["%n adresář","%n adresáře","%n adresářů"],
- "_%n file_::_%n files_" : ["%n soubor","%n soubory","%n souborů"],
+ "_%n folder_::_%n folders_" : ["%n adresář","%n adresáře","%n adresářů","%n adresářů"],
+ "_%n file_::_%n files_" : ["%n soubor","%n soubory","%n souborů","%n souborů"],
"{dirs} and {files}" : "{dirs} a {files}",
- "_including %n hidden_::_including %n hidden_" : ["přidán %n skrytý","přidány %n skryté","přidáno %n skrytých"],
+ "_including %n hidden_::_including %n hidden_" : ["přidán %n skrytý","přidány %n skryté","přidáno %n skrytých","přidáno %n skrytých"],
"You don’t have permission to upload or create files here" : "Nemáte oprávnění sem nahrávat nebo vytvářet soubory",
- "_Uploading %n file_::_Uploading %n files_" : ["Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů","Nahrávám %n souborů"],
"New" : "Nový",
"{used} of {quota} used" : "Využito {used} z {quota} ",
"{used} used" : "{used} Využito",
@@ -71,12 +71,12 @@
"Your storage is full, files can not be updated or synced anymore!" : "Vaše úložiště je plné, nelze aktualizovat ani synchronizovat soubory.",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "Úložiště uživatele {owner} je téměř plné ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložiště je téměř plné ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["odpovídá '{filter}'","odpovídá '{filter}'","odpovídá '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["odpovídá '{filter}'","odpovídá '{filter}'","odpovídá '{filter}'","odpovídá '{filter}'"],
"View in folder" : "Zobrazit v adresáři",
"Copied!" : "Zkopírováno!",
"Copy direct link (only works for users who have access to this file/folder)" : "Zkopírovat přímý odkaz (funguje pouze pro uživatele, kteří mají přistup k tomuto souboru/adresáři)",
"Path" : "Cesta",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů","%n bajtů"],
"Favorited" : "Přidáno k oblíbeným",
"Favorite" : "Oblíbené",
"New folder" : "Nový adresář",
@@ -156,5 +156,5 @@
"A new file or folder has been <strong>deleted</strong>" : "Nový soubor nebo adresář byl <strong>smazán</strong>",
"A new file or folder has been <strong>restored</strong>" : "Nový soubor nebo adresář byl <strong>obnoven</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použít tuto adresu <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> pro přístup k souborům přes WebDAV</a>"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_GT.js b/apps/files/l10n/es_GT.js
index 5eb28fca10f..f15bba87a56 100644
--- a/apps/files/l10n/es_GT.js
+++ b/apps/files/l10n/es_GT.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Descargar",
"Rename" : "Renombrar",
"Move or copy" : "Mover o copiar",
+ "Copy" : "Copiar",
"Target folder" : "Carpeta destino",
"Delete" : "Borrar",
"Disconnect storage" : "Desconectar almacenamiento",
@@ -58,12 +59,15 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"],
"_%n file_::_%n files_" : ["%n archivo","%n archivos"],
"{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"],
+ "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos"],
"You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí",
"_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"],
"New" : "Nuevo",
+ "{used} of {quota} used" : "{used} de {quota} usados",
+ "{used} used" : "{used} usados",
"\"{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.",
+ "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
"\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
"Storage of {owner} is full, files can not be updated or synced anymore!" : "El espacio de {owner} está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!",
"Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!",
@@ -96,12 +100,18 @@ OC.L10N.register(
"Moved by {user}" : "Movido por {user}",
"\"remote user\"" : "\"usuario remoto\"",
"You created {file}" : "Creaste {file}",
+ "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
"{user} created {file}" : "{user} creó {file}",
+ "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
"{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
"You changed {file}" : "Cambiaste {file}",
+ "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
"{user} changed {file}" : "{user} cambió {file}",
+ "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
"You deleted {file}" : "Borraste {file}",
+ "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
"{user} deleted {file}" : "{user} borró {file}",
+ "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
"You restored {file}" : "Restauraste {file}",
"{user} restored {file}" : "{user} restauró {file}",
"You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
@@ -141,8 +151,12 @@ OC.L10N.register(
"Shared with others" : "Compartido con otros",
"Shared by link" : "Compartido por liga",
"Tags" : "Etiquetas",
- "Deleted files" : "Archivos borrados",
+ "Deleted files" : "Papelera",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Move" : "Mover",
+ "A new file or folder has been <strong>deleted</strong>" : "Un nuevo archivo o carpeta ha sido <strong>borrado</strong>",
+ "A new file or folder has been <strong>restored</strong>" : "Un nuevo archivo o carpeta ha sido <strong>restaurado</strong>",
+ "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus Archivos vía WebDAV</a>"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_GT.json b/apps/files/l10n/es_GT.json
index beb3c150b4a..fab15d75a3f 100644
--- a/apps/files/l10n/es_GT.json
+++ b/apps/files/l10n/es_GT.json
@@ -23,6 +23,7 @@
"Download" : "Descargar",
"Rename" : "Renombrar",
"Move or copy" : "Mover o copiar",
+ "Copy" : "Copiar",
"Target folder" : "Carpeta destino",
"Delete" : "Borrar",
"Disconnect storage" : "Desconectar almacenamiento",
@@ -56,12 +57,15 @@
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"],
"_%n file_::_%n files_" : ["%n archivo","%n archivos"],
"{dirs} and {files}" : "{dirs} y {files}",
- "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"],
+ "_including %n hidden_::_including %n hidden_" : ["incluyendo %n oculto","incluyendo %n ocultos"],
"You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí",
"_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"],
"New" : "Nuevo",
+ "{used} of {quota} used" : "{used} de {quota} usados",
+ "{used} used" : "{used} usados",
"\"{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.",
+ "\"/\" is not allowed inside a file name." : "No se permite el uso del caracter \"/\" en el nombre del archivo.",
"\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido",
"Storage of {owner} is full, files can not be updated or synced anymore!" : "El espacio de {owner} está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!",
"Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!",
@@ -94,12 +98,18 @@
"Moved by {user}" : "Movido por {user}",
"\"remote user\"" : "\"usuario remoto\"",
"You created {file}" : "Creaste {file}",
+ "You created an encrypted file in {file}" : "Creaste un archivo encriptado en {file}",
"{user} created {file}" : "{user} creó {file}",
+ "{user} created an encrypted file in {file}" : "{user} creó un archivo encriptado en {file}",
"{file} was created in a public folder" : "{file} fue creado en una carpeta pública",
"You changed {file}" : "Cambiaste {file}",
+ "You changed an encrypted file in {file}" : "Cambiaste un archivo encriptado en {file}",
"{user} changed {file}" : "{user} cambió {file}",
+ "{user} changed an encrypted file in {file}" : "{user} cambió un archivo encriptado en {file}",
"You deleted {file}" : "Borraste {file}",
+ "You deleted an encrypted file in {file}" : "Borraste un archivo encriptado en {file}",
"{user} deleted {file}" : "{user} borró {file}",
+ "{user} deleted an encrypted file in {file}" : "{user} borró un archivo encriptado en {file}",
"You restored {file}" : "Restauraste {file}",
"{user} restored {file}" : "{user} restauró {file}",
"You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}",
@@ -139,8 +149,12 @@
"Shared with others" : "Compartido con otros",
"Shared by link" : "Compartido por liga",
"Tags" : "Etiquetas",
- "Deleted files" : "Archivos borrados",
+ "Deleted files" : "Papelera",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Move" : "Mover",
+ "A new file or folder has been <strong>deleted</strong>" : "Un nuevo archivo o carpeta ha sido <strong>borrado</strong>",
+ "A new file or folder has been <strong>restored</strong>" : "Un nuevo archivo o carpeta ha sido <strong>restaurado</strong>",
+ "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus Archivos vía WebDAV</a>"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 8c7f34c1c08..f70f9216279 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -56,12 +56,12 @@ OC.L10N.register(
"Name" : "שם",
"Size" : "גודל",
"Modified" : "זמן שינוי",
- "_%n folder_::_%n folders_" : ["%n תיקייה","%n תיקיות"],
- "_%n file_::_%n files_" : ["%n קובץ","%n קבצים"],
+ "_%n folder_::_%n folders_" : ["%n תיקייה","%n תיקיות","%n תיקיות"],
+ "_%n file_::_%n files_" : ["%n קובץ","%n קבצים","%n קבצים"],
"{dirs} and {files}" : "{dirs} וכן {files}",
- "_including %n hidden_::_including %n hidden_" : ["לרבות %n מוסתר","לרבות %n מוסתרים"],
+ "_including %n hidden_::_including %n hidden_" : ["לרבות %n מוסתר","לרבות %n מוסתרים","לרבות %n מוסתרים"],
"You don’t have permission to upload or create files here" : "אין לך הרשאות להעלות או ליצור קבצים כאן",
- "_Uploading %n file_::_Uploading %n files_" : ["מעלה %n קובץ","מעלה %n קבצים"],
+ "_Uploading %n file_::_Uploading %n files_" : ["מעלה %n קובץ","מעלה %n קבצים","מעלה %n קבצים"],
"New" : "חדש",
"{used} of {quota} used" : "{used} מתוך {quota} בשימוש",
"{used} used" : "{used} בשימוש",
@@ -73,12 +73,12 @@ OC.L10N.register(
"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}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["מתאים ל- '{filter}'","מתאים ל- '{filter}'","מתאים ל- '{filter}'"],
"View in folder" : "הצג בתיקייה",
"Copied!" : "ההעתקה הושלמה!",
"Copy direct link (only works for users who have access to this file/folder)" : "העתקת קישור ישיר (עובד רק עבור משתמשים שיש להם גישה לקובץ/תיקייה זו)",
"Path" : "נתיב",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים"],
+ "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים"],
"Favorited" : "מועדף",
"Favorite" : "מועדף",
"New folder" : "תיקייה חדשה",
@@ -159,4 +159,4 @@ OC.L10N.register(
"A new file or folder has been <strong>restored</strong>" : "קובץ או תיקייה חדשים <strong>שוחזרו</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "יש להשתמש בכתובת זו כדי <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">לגשת לקבצים שלך דרך WebDAV</a>"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index 4f15c4c7818..297b7fafde2 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -54,12 +54,12 @@
"Name" : "שם",
"Size" : "גודל",
"Modified" : "זמן שינוי",
- "_%n folder_::_%n folders_" : ["%n תיקייה","%n תיקיות"],
- "_%n file_::_%n files_" : ["%n קובץ","%n קבצים"],
+ "_%n folder_::_%n folders_" : ["%n תיקייה","%n תיקיות","%n תיקיות"],
+ "_%n file_::_%n files_" : ["%n קובץ","%n קבצים","%n קבצים"],
"{dirs} and {files}" : "{dirs} וכן {files}",
- "_including %n hidden_::_including %n hidden_" : ["לרבות %n מוסתר","לרבות %n מוסתרים"],
+ "_including %n hidden_::_including %n hidden_" : ["לרבות %n מוסתר","לרבות %n מוסתרים","לרבות %n מוסתרים"],
"You don’t have permission to upload or create files here" : "אין לך הרשאות להעלות או ליצור קבצים כאן",
- "_Uploading %n file_::_Uploading %n files_" : ["מעלה %n קובץ","מעלה %n קבצים"],
+ "_Uploading %n file_::_Uploading %n files_" : ["מעלה %n קובץ","מעלה %n קבצים","מעלה %n קבצים"],
"New" : "חדש",
"{used} of {quota} used" : "{used} מתוך {quota} בשימוש",
"{used} used" : "{used} בשימוש",
@@ -71,12 +71,12 @@
"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}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["מתאים ל- '{filter}'","מתאים ל- '{filter}'","מתאים ל- '{filter}'"],
"View in folder" : "הצג בתיקייה",
"Copied!" : "ההעתקה הושלמה!",
"Copy direct link (only works for users who have access to this file/folder)" : "העתקת קישור ישיר (עובד רק עבור משתמשים שיש להם גישה לקובץ/תיקייה זו)",
"Path" : "נתיב",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים"],
+ "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים"],
"Favorited" : "מועדף",
"Favorite" : "מועדף",
"New folder" : "תיקייה חדשה",
@@ -156,5 +156,5 @@
"A new file or folder has been <strong>deleted</strong>" : "קובץ או תיקייה חדשים <strong>נמחקו</strong>",
"A new file or folder has been <strong>restored</strong>" : "קובץ או תיקייה חדשים <strong>שוחזרו</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "יש להשתמש בכתובת זו כדי <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">לגשת לקבצים שלך דרך WebDAV</a>"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js
index 428f2a6eedc..137afac9373 100644
--- a/apps/files/l10n/ka_GE.js
+++ b/apps/files/l10n/ka_GE.js
@@ -56,12 +56,12 @@ OC.L10N.register(
"Name" : "სახელი",
"Size" : "ზომა",
"Modified" : "შეცვლილია",
- "_%n folder_::_%n folders_" : ["%n დირექტორია"],
- "_%n file_::_%n files_" : ["%n ფაილი"],
+ "_%n folder_::_%n folders_" : ["%n დირექტორია","%n დირექტორია"],
+ "_%n file_::_%n files_" : ["%n ფაილი","%n ფაილი"],
"{dirs} and {files}" : "{dirs} და {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით"],
+ "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით","%n დამალულის ჩათვლით"],
"You don’t have permission to upload or create files here" : "აქ ფაილების შექმნის ან ატვირთვის უფლება არ გაქვთ",
- "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს"],
+ "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს","ვტვირთავთ %n ფაილს"],
"New" : "ახალი",
"{used} of {quota} used" : "გამოყენებულია {used} სულ {quota}-დან",
"{used} used" : "გამოყენებულია {used}",
@@ -73,12 +73,12 @@ OC.L10N.register(
"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}'-ს"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["ემთხვევა '{filter}'-ს","ემთხვევა '{filter}'-ს"],
"View in folder" : "ჩვენება დირექტორიაში",
"Copied!" : "დაკოპირდა!",
"Copy direct link (only works for users who have access to this file/folder)" : "დააკოპირეთ პირდაპირი ბმული (მუშაობს მომხმარებლებისთვის, რომელთაც გააჩნიათ წვდომა ამ ფაილის/დირექტორიის მიმართ)",
"Path" : "მისამართი",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი"],
+ "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
"Favorited" : "დამატებულია რჩეულებში",
"Favorite" : "რჩეული",
"New folder" : "ახალი დირექტორია",
@@ -159,4 +159,4 @@ OC.L10N.register(
"A new file or folder has been <strong>restored</strong>" : "ახალი ფაილი ან დირექტორია <strong>აღდგენილ იქნა</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "გამოიყენეთ ეს მისამართი რომ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">წვდომა იქოინოთ თქვენს ფაილებთან WebDAV-ით</a>"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json
index 57e4d987f8f..74e68d0d65b 100644
--- a/apps/files/l10n/ka_GE.json
+++ b/apps/files/l10n/ka_GE.json
@@ -54,12 +54,12 @@
"Name" : "სახელი",
"Size" : "ზომა",
"Modified" : "შეცვლილია",
- "_%n folder_::_%n folders_" : ["%n დირექტორია"],
- "_%n file_::_%n files_" : ["%n ფაილი"],
+ "_%n folder_::_%n folders_" : ["%n დირექტორია","%n დირექტორია"],
+ "_%n file_::_%n files_" : ["%n ფაილი","%n ფაილი"],
"{dirs} and {files}" : "{dirs} და {files}",
- "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით"],
+ "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით","%n დამალულის ჩათვლით"],
"You don’t have permission to upload or create files here" : "აქ ფაილების შექმნის ან ატვირთვის უფლება არ გაქვთ",
- "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს"],
+ "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს","ვტვირთავთ %n ფაილს"],
"New" : "ახალი",
"{used} of {quota} used" : "გამოყენებულია {used} სულ {quota}-დან",
"{used} used" : "გამოყენებულია {used}",
@@ -71,12 +71,12 @@
"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}'-ს"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["ემთხვევა '{filter}'-ს","ემთხვევა '{filter}'-ს"],
"View in folder" : "ჩვენება დირექტორიაში",
"Copied!" : "დაკოპირდა!",
"Copy direct link (only works for users who have access to this file/folder)" : "დააკოპირეთ პირდაპირი ბმული (მუშაობს მომხმარებლებისთვის, რომელთაც გააჩნიათ წვდომა ამ ფაილის/დირექტორიის მიმართ)",
"Path" : "მისამართი",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი"],
+ "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
"Favorited" : "დამატებულია რჩეულებში",
"Favorite" : "რჩეული",
"New folder" : "ახალი დირექტორია",
@@ -156,5 +156,5 @@
"A new file or folder has been <strong>deleted</strong>" : "ახალი ფაილი ან დირექტორია <strong>გაუქმდა</strong>",
"A new file or folder has been <strong>restored</strong>" : "ახალი ფაილი ან დირექტორია <strong>აღდგენილ იქნა</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "გამოიყენეთ ეს მისამართი რომ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">წვდომა იქოინოთ თქვენს ფაილებთან WebDAV-ით</a>"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index a30e7272c5d..746fffa2315 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -47,12 +47,12 @@ OC.L10N.register(
"Name" : "Pavadinimas",
"Size" : "Dydis",
"Modified" : "Pakeista",
- "_%n folder_::_%n folders_" : ["%n aplankas","%n aplankai","%n aplankų"],
- "_%n file_::_%n files_" : ["%n failas","%n failai","%n failų"],
+ "_%n folder_::_%n folders_" : ["%n aplankas","%n aplankai","%n aplankų","%n aplankų"],
+ "_%n file_::_%n files_" : ["%n failas","%n failai","%n failų","%n failų"],
"{dirs} and {files}" : "{dirs} ir {files}",
- "_including %n hidden_::_including %n hidden_" : ["įskaitant %n paslėptą","įskaitant %n paslėptus","įskaitant %n paslėptų"],
+ "_including %n hidden_::_including %n hidden_" : ["įskaitant %n paslėptą","įskaitant %n paslėptus","įskaitant %n paslėptų","įskaitant %n paslėptų"],
"You don’t have permission to upload or create files here" : "Jūs neturite leidimo čia įkelti arba kurti failus",
- "_Uploading %n file_::_Uploading %n files_" : ["Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų","Įkeliama %n failų"],
"New" : "Naujas",
"{used} of {quota} used" : "panaudota {used} iš {quota}",
"\"{name}\" is an invalid file name." : "„{name}“ yra netinkamas bylos pavadinimas.",
@@ -62,12 +62,12 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Jūsų saugykla pilna, failai daugiau nebegali būti atnaujinti arba sinchronizuojami!",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner} saugykla yra beveik pilna ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Jūsų saugykla yra beveik pilna ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["atitinka '{filter}'","atitinka '{filter}'","atitinka '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["atitinka '{filter}'","atitinka '{filter}'","atitinka '{filter}'","atitinka '{filter}'"],
"View in folder" : "Peržiūrėti aplanką",
"Copied!" : "Nukopijuota!",
"Copy direct link (only works for users who have access to this file/folder)" : "Nukopijuoti nuorodą (veikia tik tiems naudotojams, kurie turi prieigą prie šios rinkmenos)",
"Path" : "Kelias",
- "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų"],
+ "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
"Favorited" : "Pažymėta mėgstamu",
"Favorite" : "Mėgiamas",
"New folder" : "Naujas aplankas",
@@ -133,4 +133,4 @@ OC.L10N.register(
"Text file" : "Tekstinis failas",
"New text file.txt" : "Naujas tekstinis failas.txt"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index 78aec5fd463..fa7e0a89583 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -45,12 +45,12 @@
"Name" : "Pavadinimas",
"Size" : "Dydis",
"Modified" : "Pakeista",
- "_%n folder_::_%n folders_" : ["%n aplankas","%n aplankai","%n aplankų"],
- "_%n file_::_%n files_" : ["%n failas","%n failai","%n failų"],
+ "_%n folder_::_%n folders_" : ["%n aplankas","%n aplankai","%n aplankų","%n aplankų"],
+ "_%n file_::_%n files_" : ["%n failas","%n failai","%n failų","%n failų"],
"{dirs} and {files}" : "{dirs} ir {files}",
- "_including %n hidden_::_including %n hidden_" : ["įskaitant %n paslėptą","įskaitant %n paslėptus","įskaitant %n paslėptų"],
+ "_including %n hidden_::_including %n hidden_" : ["įskaitant %n paslėptą","įskaitant %n paslėptus","įskaitant %n paslėptų","įskaitant %n paslėptų"],
"You don’t have permission to upload or create files here" : "Jūs neturite leidimo čia įkelti arba kurti failus",
- "_Uploading %n file_::_Uploading %n files_" : ["Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Įkeliamas %n failas","Įkeliami %n failai","Įkeliama %n failų","Įkeliama %n failų"],
"New" : "Naujas",
"{used} of {quota} used" : "panaudota {used} iš {quota}",
"\"{name}\" is an invalid file name." : "„{name}“ yra netinkamas bylos pavadinimas.",
@@ -60,12 +60,12 @@
"Your storage is full, files can not be updated or synced anymore!" : "Jūsų saugykla pilna, failai daugiau nebegali būti atnaujinti arba sinchronizuojami!",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner} saugykla yra beveik pilna ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Jūsų saugykla yra beveik pilna ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["atitinka '{filter}'","atitinka '{filter}'","atitinka '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["atitinka '{filter}'","atitinka '{filter}'","atitinka '{filter}'","atitinka '{filter}'"],
"View in folder" : "Peržiūrėti aplanką",
"Copied!" : "Nukopijuota!",
"Copy direct link (only works for users who have access to this file/folder)" : "Nukopijuoti nuorodą (veikia tik tiems naudotojams, kurie turi prieigą prie šios rinkmenos)",
"Path" : "Kelias",
- "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų"],
+ "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
"Favorited" : "Pažymėta mėgstamu",
"Favorite" : "Mėgiamas",
"New folder" : "Naujas aplankas",
@@ -130,5 +130,5 @@
"Deleted files" : "Ištrinti failai",
"Text file" : "Tekstinis failas",
"New text file.txt" : "Naujas tekstinis failas.txt"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js
index 4d74625a007..3f4f4b4ffc7 100644
--- a/apps/files/l10n/sk.js
+++ b/apps/files/l10n/sk.js
@@ -56,12 +56,12 @@ OC.L10N.register(
"Name" : "Názov",
"Size" : "Veľkosť",
"Modified" : "Upravené",
- "_%n folder_::_%n folders_" : ["%n priečinok","%n priečinky","%n priečinkov"],
- "_%n file_::_%n files_" : ["%n súbor","%n súbory","%n súborov"],
+ "_%n folder_::_%n folders_" : ["%n priečinok","%n priečinky","%n priečinkov","%n priečinkov"],
+ "_%n file_::_%n files_" : ["%n súbor","%n súbory","%n súborov","%n súborov"],
"{dirs} and {files}" : "{dirs} a {files}",
- "_including %n hidden_::_including %n hidden_" : ["vrátane %n skytého","vrátane %n skrytých","vrátane %n skrytých"],
+ "_including %n hidden_::_including %n hidden_" : ["vrátane %n skytého","vrátane %n skrytých","vrátane %n skrytých","vrátane %n skrytých"],
"You don’t have permission to upload or create files here" : "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory",
- "_Uploading %n file_::_Uploading %n files_" : ["Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov","Nahrávam %n súborov"],
"New" : "Nový",
"{used} of {quota} used" : "použitých {used} z {quota}",
"{used} used" : "{used} použitých",
@@ -73,12 +73,12 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "Úloisko používateľa {owner} je takmer plné ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložisko je takmer plné ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["zodpovedá '{filter}'","zodpovedá '{filter}'","zodpovedá '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["zodpovedá '{filter}'","zodpovedá '{filter}'","zodpovedá '{filter}'","zodpovedá '{filter}'"],
"View in folder" : "Zobraziť v priečinku",
"Copied!" : "Skopírované!",
"Copy direct link (only works for users who have access to this file/folder)" : "Kopírovať priamy odkaz (funguje iba pre používateľov, ktorí majú prístup k tomuto súboru/priečinku)",
"Path" : "Cesta",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov","%n bajtov"],
"Favorited" : "Pridané k obľúbeným",
"Favorite" : "Obľúbené",
"New folder" : "Nový priečinok",
@@ -153,4 +153,4 @@ OC.L10N.register(
"A new file or folder has been <strong>restored</strong>" : "Nový súbor alebo priečinok bol<strong>obnovený</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json
index 304a9e8dd79..2f60871e878 100644
--- a/apps/files/l10n/sk.json
+++ b/apps/files/l10n/sk.json
@@ -54,12 +54,12 @@
"Name" : "Názov",
"Size" : "Veľkosť",
"Modified" : "Upravené",
- "_%n folder_::_%n folders_" : ["%n priečinok","%n priečinky","%n priečinkov"],
- "_%n file_::_%n files_" : ["%n súbor","%n súbory","%n súborov"],
+ "_%n folder_::_%n folders_" : ["%n priečinok","%n priečinky","%n priečinkov","%n priečinkov"],
+ "_%n file_::_%n files_" : ["%n súbor","%n súbory","%n súborov","%n súborov"],
"{dirs} and {files}" : "{dirs} a {files}",
- "_including %n hidden_::_including %n hidden_" : ["vrátane %n skytého","vrátane %n skrytých","vrátane %n skrytých"],
+ "_including %n hidden_::_including %n hidden_" : ["vrátane %n skytého","vrátane %n skrytých","vrátane %n skrytých","vrátane %n skrytých"],
"You don’t have permission to upload or create files here" : "Nemáte oprávnenie sem nahrávať alebo vytvoriť súbory",
- "_Uploading %n file_::_Uploading %n files_" : ["Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Nahrávam %n súbor","Nahrávam %n súbory","Nahrávam %n súborov","Nahrávam %n súborov"],
"New" : "Nový",
"{used} of {quota} used" : "použitých {used} z {quota}",
"{used} used" : "{used} použitých",
@@ -71,12 +71,12 @@
"Your storage is full, files can not be updated or synced anymore!" : "Vaše úložisko je plné. Súbory nemožno aktualizovať ani synchronizovať!",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "Úloisko používateľa {owner} je takmer plné ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Vaše úložisko je takmer plné ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["zodpovedá '{filter}'","zodpovedá '{filter}'","zodpovedá '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["zodpovedá '{filter}'","zodpovedá '{filter}'","zodpovedá '{filter}'","zodpovedá '{filter}'"],
"View in folder" : "Zobraziť v priečinku",
"Copied!" : "Skopírované!",
"Copy direct link (only works for users who have access to this file/folder)" : "Kopírovať priamy odkaz (funguje iba pre používateľov, ktorí majú prístup k tomuto súboru/priečinku)",
"Path" : "Cesta",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtov","%n bajtov"],
"Favorited" : "Pridané k obľúbeným",
"Favorite" : "Obľúbené",
"New folder" : "Nový priečinok",
@@ -150,5 +150,5 @@
"A new file or folder has been <strong>deleted</strong>" : "Nový súbor alebo priečinok bol <strong>zmazaný</strong>",
"A new file or folder has been <strong>restored</strong>" : "Nový súbor alebo priečinok bol<strong>obnovený</strong>",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index c5b9b7938c3..e6a267a92bb 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -50,11 +50,11 @@ OC.L10N.register(
"Name" : "Ім'я",
"Size" : "Розмір",
"Modified" : "Змінено",
- "_%n folder_::_%n folders_" : ["%n тека ","теки : %n ","теки : %n "],
- "_%n file_::_%n files_" : ["%n файл ","файли : %n ","файли : %n "],
+ "_%n folder_::_%n folders_" : ["%n тека ","теки : %n ","теки : %n ","теки : %n "],
+ "_%n file_::_%n files_" : ["%n файл ","файли : %n ","файли : %n ","файли : %n "],
"{dirs} and {files}" : "{dirs} і {files}",
"You don’t have permission to upload or create files here" : "У вас недостатньо прав для вивантаження або створення тут файлів",
- "_Uploading %n file_::_Uploading %n files_" : ["Вивантаження %n файлу","Вивантаження %n файлів","Вивантаження %n файлів"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Вивантаження %n файлу","Вивантаження %n файлів","Вивантаження %n файлів","Вивантаження %n файлів"],
"New" : "Створити",
"\"{name}\" is an invalid file name." : "\"{name}\" - некоректне ім'я файлу.",
"File name cannot be empty." : " Ім'я файлу не може бути порожнім.",
@@ -63,7 +63,7 @@ OC.L10N.register(
"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}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'"],
"View in folder" : "Переглянути в каталозі",
"Copied!" : "Скопійовано!",
"Copy direct link (only works for users who have access to this file/folder)" : "Скопіювати пряме посилання (працює лише для користувачів, що мають доступ до файлу/теки)",
@@ -135,4 +135,4 @@ OC.L10N.register(
"Text file" : "Текстовий файл",
"New text file.txt" : "Новий текстовий файл file.txt"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index 01f37c48ffa..01c35e383a7 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -48,11 +48,11 @@
"Name" : "Ім'я",
"Size" : "Розмір",
"Modified" : "Змінено",
- "_%n folder_::_%n folders_" : ["%n тека ","теки : %n ","теки : %n "],
- "_%n file_::_%n files_" : ["%n файл ","файли : %n ","файли : %n "],
+ "_%n folder_::_%n folders_" : ["%n тека ","теки : %n ","теки : %n ","теки : %n "],
+ "_%n file_::_%n files_" : ["%n файл ","файли : %n ","файли : %n ","файли : %n "],
"{dirs} and {files}" : "{dirs} і {files}",
"You don’t have permission to upload or create files here" : "У вас недостатньо прав для вивантаження або створення тут файлів",
- "_Uploading %n file_::_Uploading %n files_" : ["Вивантаження %n файлу","Вивантаження %n файлів","Вивантаження %n файлів"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Вивантаження %n файлу","Вивантаження %n файлів","Вивантаження %n файлів","Вивантаження %n файлів"],
"New" : "Створити",
"\"{name}\" is an invalid file name." : "\"{name}\" - некоректне ім'я файлу.",
"File name cannot be empty." : " Ім'я файлу не може бути порожнім.",
@@ -61,7 +61,7 @@
"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}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'"],
"View in folder" : "Переглянути в каталозі",
"Copied!" : "Скопійовано!",
"Copy direct link (only works for users who have access to this file/folder)" : "Скопіювати пряме посилання (працює лише для користувачів, що мають доступ до файлу/теки)",
@@ -132,5 +132,5 @@
"Deleted files" : "Видалені файли",
"Text file" : "Текстовий файл",
"New text file.txt" : "Новий текстовий файл file.txt"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/ca.js b/apps/files_external/l10n/ca.js
index 18558e754cd..55d787dcf4b 100644
--- a/apps/files_external/l10n/ca.js
+++ b/apps/files_external/l10n/ca.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"files_external",
{
- "External storages" : "Emmagatzemament extern",
+ "External storages" : "Emmagatzematge extern",
"Personal" : "Personal",
"System" : "Sistema",
"Grant access" : "Concedeix accés",
@@ -13,7 +13,7 @@ OC.L10N.register(
"Saved" : "Desat",
"Saving..." : "Desant...",
"Save" : "Desa",
- "external-storage" : "Emmagatzemament extern",
+ "external-storage" : "Emmagatzematge extern",
"Username" : "Nom d'usuari",
"Password" : "Contrasenya",
"Credentials saved" : "Credencials desades",
@@ -58,7 +58,7 @@ OC.L10N.register(
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Nom del servei",
"Name" : "Nom",
- "Storage type" : "Tipus d'emmagatzemament",
+ "Storage type" : "Tipus d'emmagatzematge",
"Scope" : "Abast",
"Enable encryption" : "Habilitar xifrat",
"Enable previews" : "Habilitar vistes prèvies",
@@ -67,11 +67,11 @@ OC.L10N.register(
"Never" : "Mai",
"Once every direct access" : "Un cop cada accés directe",
"Folder name" : "Nom de la carpeta",
- "External storage" : "Emmagatzemament extern",
+ "External storage" : "Emmagatzematge extern",
"Authentication" : "Autenticació",
"Configuration" : "Configuració",
"Available for" : "Disponible per",
- "Add storage" : "Afegeix emmagatzemament",
+ "Add storage" : "Afegeix emmagatzematge",
"Advanced settings" : "Configuració avançada",
"Delete" : "Esborra",
"Allow users to mount the following external storage" : "Permet als usuaris muntar els dispositius externs següents",
diff --git a/apps/files_external/l10n/ca.json b/apps/files_external/l10n/ca.json
index 6cfa9357df7..42b028670a3 100644
--- a/apps/files_external/l10n/ca.json
+++ b/apps/files_external/l10n/ca.json
@@ -1,5 +1,5 @@
{ "translations": {
- "External storages" : "Emmagatzemament extern",
+ "External storages" : "Emmagatzematge extern",
"Personal" : "Personal",
"System" : "Sistema",
"Grant access" : "Concedeix accés",
@@ -11,7 +11,7 @@
"Saved" : "Desat",
"Saving..." : "Desant...",
"Save" : "Desa",
- "external-storage" : "Emmagatzemament extern",
+ "external-storage" : "Emmagatzematge extern",
"Username" : "Nom d'usuari",
"Password" : "Contrasenya",
"Credentials saved" : "Credencials desades",
@@ -56,7 +56,7 @@
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Nom del servei",
"Name" : "Nom",
- "Storage type" : "Tipus d'emmagatzemament",
+ "Storage type" : "Tipus d'emmagatzematge",
"Scope" : "Abast",
"Enable encryption" : "Habilitar xifrat",
"Enable previews" : "Habilitar vistes prèvies",
@@ -65,11 +65,11 @@
"Never" : "Mai",
"Once every direct access" : "Un cop cada accés directe",
"Folder name" : "Nom de la carpeta",
- "External storage" : "Emmagatzemament extern",
+ "External storage" : "Emmagatzematge extern",
"Authentication" : "Autenticació",
"Configuration" : "Configuració",
"Available for" : "Disponible per",
- "Add storage" : "Afegeix emmagatzemament",
+ "Add storage" : "Afegeix emmagatzematge",
"Advanced settings" : "Configuració avançada",
"Delete" : "Esborra",
"Allow users to mount the following external storage" : "Permet als usuaris muntar els dispositius externs següents",
diff --git a/apps/files_external/l10n/cs.js b/apps/files_external/l10n/cs.js
index af9a0666f5f..465dbd7e849 100644
--- a/apps/files_external/l10n/cs.js
+++ b/apps/files_external/l10n/cs.js
@@ -130,4 +130,4 @@ OC.L10N.register(
"You can add external storages in the personal settings" : "Externí úložiště můžete přidat v osobních nastaveních",
"Are you sure you want to delete this external storage" : "Opravdu chcete odstranit toto externí úložiště"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/files_external/l10n/cs.json b/apps/files_external/l10n/cs.json
index 57f2782b1d1..835c07bc042 100644
--- a/apps/files_external/l10n/cs.json
+++ b/apps/files_external/l10n/cs.json
@@ -127,5 +127,5 @@
"No external storage configured" : "Není nakonfigurováno žádné externí úložiště",
"You can add external storages in the personal settings" : "Externí úložiště můžete přidat v osobních nastaveních",
"Are you sure you want to delete this external storage" : "Opravdu chcete odstranit toto externí úložiště"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/es_GT.js b/apps/files_external/l10n/es_GT.js
index 725d4f0a2b5..aa2f5e6fd7e 100644
--- a/apps/files_external/l10n/es_GT.js
+++ b/apps/files_external/l10n/es_GT.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)",
"Admin defined" : "Administrador definido",
+ "Are you sure you want to delete this external storage?" : "¿Estás seguro que quieres borrar este almacenamiento externo?",
"Delete storage?" : "¿Borrar almacenamiento?",
"Saved" : "Guardado",
"Saving..." : "Guardando...",
@@ -55,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "ID del cliente",
"Client secret" : "Secreto del cliente",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nombre de inquilino",
"Identity endpoint URL" : "URL del punto de enlace de Identidad",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Rackspace",
"API key" : "Llave de API",
@@ -74,6 +77,7 @@ OC.L10N.register(
"Region" : "Región",
"Enable SSL" : "Habilitar SSL",
"Enable Path Style" : "Habilitar Estilo de Ruta",
+ "Legacy (v2) authentication" : "Autenticación legada (v2)",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Subcarpeta remota",
@@ -97,6 +101,8 @@ OC.L10N.register(
"The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para cURL en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ",
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ",
+ "External storage support" : "Soporte de almacenamiento externo",
+ "No external storage configured or you don't have the permission to configure them" : "No se ha configurado almacenamiento externo o bien no cuentas con los permisos para configurarlos",
"Name" : "Nombre",
"Storage type" : "Tipo de almacenamiento",
"Scope" : "Alcance",
@@ -106,17 +112,27 @@ OC.L10N.register(
"Check for changes" : "Verificar si hay cambios",
"Never" : "Nunca",
"Once every direct access" : "Una vez cada acceso directo",
+ "Read only" : "Sólo lectura",
"Folder name" : "Nombre de la carpeta",
"External storage" : "Almacenamiento externo",
"Authentication" : "Autenticación",
"Configuration" : "Configuración",
"Available for" : "Disponible para",
+ "Click to recheck the configuration" : "Haz click para volver a marcar la configuración",
"Add storage" : "Agregar almacenamiento",
"Advanced settings" : "Configuraciones avanzadas",
"Delete" : "Borrar",
"Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo",
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de solicitud. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de acceso. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ",
+ "Step 1 failed. Exception: %s" : "Paso 1 falló. Excepción: %s",
+ "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s",
+ "Dropbox App Configuration" : "Configuración de la aplicación Dropbox",
+ "Google Drive App Configuration" : "Configuración de la Aplicación de Google Drive",
"OpenStack" : "OpenStack",
+ "Dropbox" : "Dropbox",
+ "Google Drive" : "Google Drive",
"No external storage configured" : "No se ha configurado el almacenamiento externo",
"You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales",
"Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?"
diff --git a/apps/files_external/l10n/es_GT.json b/apps/files_external/l10n/es_GT.json
index fe287dc5715..db983dff3aa 100644
--- a/apps/files_external/l10n/es_GT.json
+++ b/apps/files_external/l10n/es_GT.json
@@ -12,6 +12,7 @@
"(group)" : "(grupo)",
"Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)",
"Admin defined" : "Administrador definido",
+ "Are you sure you want to delete this external storage?" : "¿Estás seguro que quieres borrar este almacenamiento externo?",
"Delete storage?" : "¿Borrar almacenamiento?",
"Saved" : "Guardado",
"Saving..." : "Guardando...",
@@ -53,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "ID del cliente",
"Client secret" : "Secreto del cliente",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nombre de inquilino",
"Identity endpoint URL" : "URL del punto de enlace de Identidad",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Rackspace",
"API key" : "Llave de API",
@@ -72,6 +75,7 @@
"Region" : "Región",
"Enable SSL" : "Habilitar SSL",
"Enable Path Style" : "Habilitar Estilo de Ruta",
+ "Legacy (v2) authentication" : "Autenticación legada (v2)",
"WebDAV" : "WebDAV",
"URL" : "URL",
"Remote subfolder" : "Subcarpeta remota",
@@ -95,6 +99,8 @@
"The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para cURL en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ",
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ",
+ "External storage support" : "Soporte de almacenamiento externo",
+ "No external storage configured or you don't have the permission to configure them" : "No se ha configurado almacenamiento externo o bien no cuentas con los permisos para configurarlos",
"Name" : "Nombre",
"Storage type" : "Tipo de almacenamiento",
"Scope" : "Alcance",
@@ -104,17 +110,27 @@
"Check for changes" : "Verificar si hay cambios",
"Never" : "Nunca",
"Once every direct access" : "Una vez cada acceso directo",
+ "Read only" : "Sólo lectura",
"Folder name" : "Nombre de la carpeta",
"External storage" : "Almacenamiento externo",
"Authentication" : "Autenticación",
"Configuration" : "Configuración",
"Available for" : "Disponible para",
+ "Click to recheck the configuration" : "Haz click para volver a marcar la configuración",
"Add storage" : "Agregar almacenamiento",
"Advanced settings" : "Configuraciones avanzadas",
"Delete" : "Borrar",
"Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo",
+ "Fetching request tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de solicitud. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ",
+ "Fetching access tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de acceso. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ",
+ "Step 1 failed. Exception: %s" : "Paso 1 falló. Excepción: %s",
+ "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s",
+ "Dropbox App Configuration" : "Configuración de la aplicación Dropbox",
+ "Google Drive App Configuration" : "Configuración de la Aplicación de Google Drive",
"OpenStack" : "OpenStack",
+ "Dropbox" : "Dropbox",
+ "Google Drive" : "Google Drive",
"No external storage configured" : "No se ha configurado el almacenamiento externo",
"You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales",
"Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?"
diff --git a/apps/files_external/l10n/he.js b/apps/files_external/l10n/he.js
index fc4227e8142..c36f7777592 100644
--- a/apps/files_external/l10n/he.js
+++ b/apps/files_external/l10n/he.js
@@ -105,4 +105,4 @@ OC.L10N.register(
"No external storage configured" : "לא מוגדר אחסון חיצוני",
"You can add external storages in the personal settings" : "ניתן להוסיף אחסונים חיצוניים בהגדרות האישיות"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/files_external/l10n/he.json b/apps/files_external/l10n/he.json
index fd14572f449..39655a54f0e 100644
--- a/apps/files_external/l10n/he.json
+++ b/apps/files_external/l10n/he.json
@@ -102,5 +102,5 @@
"OpenStack" : "OpenStack",
"No external storage configured" : "לא מוגדר אחסון חיצוני",
"You can add external storages in the personal settings" : "ניתן להוסיף אחסונים חיצוניים בהגדרות האישיות"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/ka_GE.js b/apps/files_external/l10n/ka_GE.js
index 228e131004a..a11d2d2e6b3 100644
--- a/apps/files_external/l10n/ka_GE.js
+++ b/apps/files_external/l10n/ka_GE.js
@@ -135,4 +135,4 @@ OC.L10N.register(
"You can add external storages in the personal settings" : "გარე საცავები შეგიძლიათ დაამატოთ პირად პარამეტრებში",
"Are you sure you want to delete this external storage" : "დარწმუნებული ხართ, რომ გსურთ ამ გარე საცავის გაუქმება?"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/files_external/l10n/ka_GE.json b/apps/files_external/l10n/ka_GE.json
index e8a3e4162ec..fdb1154e41e 100644
--- a/apps/files_external/l10n/ka_GE.json
+++ b/apps/files_external/l10n/ka_GE.json
@@ -132,5 +132,5 @@
"No external storage configured" : "გარე საცავი არაა კონფიგურირებული",
"You can add external storages in the personal settings" : "გარე საცავები შეგიძლიათ დაამატოთ პირად პარამეტრებში",
"Are you sure you want to delete this external storage" : "დარწმუნებული ხართ, რომ გსურთ ამ გარე საცავის გაუქმება?"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/lt_LT.js b/apps/files_external/l10n/lt_LT.js
index 4ca8e6cf6d6..cf069cb8992 100644
--- a/apps/files_external/l10n/lt_LT.js
+++ b/apps/files_external/l10n/lt_LT.js
@@ -119,4 +119,4 @@ OC.L10N.register(
"No external storage configured" : "Nėra sukonfigūruota jokia išorinė saugykla",
"You can add external storages in the personal settings" : "Galite pridėti papildomą išorinę saugyklą nustatymų skiltyje"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/files_external/l10n/lt_LT.json b/apps/files_external/l10n/lt_LT.json
index ff69617c68b..eae25841ae8 100644
--- a/apps/files_external/l10n/lt_LT.json
+++ b/apps/files_external/l10n/lt_LT.json
@@ -116,5 +116,5 @@
"OpenStack" : "OpenStack",
"No external storage configured" : "Nėra sukonfigūruota jokia išorinė saugykla",
"You can add external storages in the personal settings" : "Galite pridėti papildomą išorinę saugyklą nustatymų skiltyje"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/sk.js b/apps/files_external/l10n/sk.js
index 83eeded4bde..6eb9b397322 100644
--- a/apps/files_external/l10n/sk.js
+++ b/apps/files_external/l10n/sk.js
@@ -128,4 +128,4 @@ OC.L10N.register(
"You can add external storages in the personal settings" : "Externé úložisko je možné pridať v osobných nastaveniach",
"Are you sure you want to delete this external storage" : "Naozaj chcete zmazať toto externé úložisko?"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/files_external/l10n/sk.json b/apps/files_external/l10n/sk.json
index 0a84c569dfb..5bc3586adfe 100644
--- a/apps/files_external/l10n/sk.json
+++ b/apps/files_external/l10n/sk.json
@@ -125,5 +125,5 @@
"No external storage configured" : "Žiadne externé úložisko nie je nakonfigurované",
"You can add external storages in the personal settings" : "Externé úložisko je možné pridať v osobných nastaveniach",
"Are you sure you want to delete this external storage" : "Naozaj chcete zmazať toto externé úložisko?"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js
index 2446e958b74..f026e558c84 100644
--- a/apps/files_sharing/l10n/cs.js
+++ b/apps/files_sharing/l10n/cs.js
@@ -112,4 +112,4 @@ OC.L10N.register(
"Uploading files…" : "Probíhá nahrávání souborů...",
"Uploaded files:" : "Nahrané soubory:"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json
index ad9f5b77ad7..3acb69cd8ef 100644
--- a/apps/files_sharing/l10n/cs.json
+++ b/apps/files_sharing/l10n/cs.json
@@ -109,5 +109,5 @@
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
"Uploading files…" : "Probíhá nahrávání souborů...",
"Uploaded files:" : "Nahrané soubory:"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_GT.js b/apps/files_sharing/l10n/es_GT.js
index 03c29b785b5..9db3d9d8e9b 100644
--- a/apps/files_sharing/l10n/es_GT.js
+++ b/apps/files_sharing/l10n/es_GT.js
@@ -92,6 +92,7 @@ OC.L10N.register(
"Direct link" : "Liga directa",
"Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
+ "File sharing" : "Compartir archivos",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
"Password" : "Contraseña",
@@ -109,6 +110,7 @@ OC.L10N.register(
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
"Uploading files…" : "Cargando archivos...",
- "Uploaded files:" : "Archivos cargados:"
+ "Uploaded files:" : "Archivos cargados:",
+ "%s is publicly shared" : "%s está compartido públicamente"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/es_GT.json b/apps/files_sharing/l10n/es_GT.json
index 78b7266cc4d..b1e3b52ee17 100644
--- a/apps/files_sharing/l10n/es_GT.json
+++ b/apps/files_sharing/l10n/es_GT.json
@@ -90,6 +90,7 @@
"Direct link" : "Liga directa",
"Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
+ "File sharing" : "Compartir archivos",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
"Password" : "Contraseña",
@@ -107,6 +108,7 @@
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
"Uploading files…" : "Cargando archivos...",
- "Uploaded files:" : "Archivos cargados:"
+ "Uploaded files:" : "Archivos cargados:",
+ "%s is publicly shared" : "%s está compartido públicamente"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js
index 9216347a764..d15596a03fe 100644
--- a/apps/files_sharing/l10n/ka_GE.js
+++ b/apps/files_sharing/l10n/ka_GE.js
@@ -113,4 +113,4 @@ OC.L10N.register(
"Uploaded files:" : "ფაილების ატვირთვა:",
"%s is publicly shared" : "%s საზოგადოდ გაზიარებულია"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json
index a8ba3ee1996..96a440495eb 100644
--- a/apps/files_sharing/l10n/ka_GE.json
+++ b/apps/files_sharing/l10n/ka_GE.json
@@ -110,5 +110,5 @@
"Uploading files…" : "ფაილების ატვირთვა...",
"Uploaded files:" : "ფაილების ატვირთვა:",
"%s is publicly shared" : "%s საზოგადოდ გაზიარებულია"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js
index 5fa75c10417..45aafdef5d6 100644
--- a/apps/files_sharing/l10n/lt_LT.js
+++ b/apps/files_sharing/l10n/lt_LT.js
@@ -111,4 +111,4 @@ OC.L10N.register(
"Uploading files…" : "Įkeliami failai…",
"Uploaded files:" : "Įkelti failai:"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json
index 5764613a2ff..0d45ffb1be7 100644
--- a/apps/files_sharing/l10n/lt_LT.json
+++ b/apps/files_sharing/l10n/lt_LT.json
@@ -108,5 +108,5 @@
"Select or drop files" : "Pasirinkite arba vilkite failus",
"Uploading files…" : "Įkeliami failai…",
"Uploaded files:" : "Įkelti failai:"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ 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 e0ae7d6da45..fd471525850 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -55,7 +55,7 @@ OC.L10N.register(
"{actor} removed share for {user}" : "{actor} excluiu o compartilhamento para {user}",
"Shared by {actor}" : "Compartilhado por {actor}",
"{actor} removed share" : "{actor} compartilhamento removido",
- "You shared {file} with {user}" : "Você compartilhou {arquivo} com {user}",
+ "You shared {file} with {user}" : "Você compartilhou {file} com {user}",
"You removed {user} from {file}" : "Você excluiu {user} de {file}",
"{actor} shared {file} with {user}" : "{actor} compartilhou {file} com {user}",
"{actor} removed {user} from {file}" : "{actor} excluiu {user} de {file}",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 483681b40cd..e20f0af2c76 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -53,7 +53,7 @@
"{actor} removed share for {user}" : "{actor} excluiu o compartilhamento para {user}",
"Shared by {actor}" : "Compartilhado por {actor}",
"{actor} removed share" : "{actor} compartilhamento removido",
- "You shared {file} with {user}" : "Você compartilhou {arquivo} com {user}",
+ "You shared {file} with {user}" : "Você compartilhou {file} com {user}",
"You removed {user} from {file}" : "Você excluiu {user} de {file}",
"{actor} shared {file} with {user}" : "{actor} compartilhou {file} com {user}",
"{actor} removed {user} from {file}" : "{actor} excluiu {user} de {file}",
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index 833d3278f9a..bc3bff97848 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -87,7 +87,7 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
"Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно",
"Cannot increase permissions" : "Не удалось повысить права доступа",
- "shared by %s" : "поделился %s",
+ "shared by %s" : "доступ предоставлен пользователем %s",
"Download" : "Скачать",
"Direct link" : "Прямая ссылка",
"Add to your Nextcloud" : "Добавить в свой Nextcloud",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index caeec95a05d..9cc4cfecf5f 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -85,7 +85,7 @@
"Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
"Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно",
"Cannot increase permissions" : "Не удалось повысить права доступа",
- "shared by %s" : "поделился %s",
+ "shared by %s" : "доступ предоставлен пользователем %s",
"Download" : "Скачать",
"Direct link" : "Прямая ссылка",
"Add to your Nextcloud" : "Добавить в свой Nextcloud",
diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js
index 1b12fe41b43..34dc38447ef 100644
--- a/apps/files_sharing/l10n/sk.js
+++ b/apps/files_sharing/l10n/sk.js
@@ -112,4 +112,4 @@ OC.L10N.register(
"Uploaded files:" : "Nahrané súbory...",
"%s is publicly shared" : "%s je verejne zdieľaný"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json
index dd44d86330e..6cd8b794758 100644
--- a/apps/files_sharing/l10n/sk.json
+++ b/apps/files_sharing/l10n/sk.json
@@ -109,5 +109,5 @@
"Uploading files…" : "Nahrávanie súborov...",
"Uploaded files:" : "Nahrané súbory...",
"%s is publicly shared" : "%s je verejne zdieľaný"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/cs.js b/apps/files_trashbin/l10n/cs.js
index 712076402f4..7a96a4ce97b 100644
--- a/apps/files_trashbin/l10n/cs.js
+++ b/apps/files_trashbin/l10n/cs.js
@@ -18,4 +18,4 @@ OC.L10N.register(
"Name" : "Název",
"Deleted" : "Smazáno"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/files_trashbin/l10n/cs.json b/apps/files_trashbin/l10n/cs.json
index 06c3b2ce096..9e5bc6bd4c6 100644
--- a/apps/files_trashbin/l10n/cs.json
+++ b/apps/files_trashbin/l10n/cs.json
@@ -15,5 +15,5 @@
"Select all" : "Vybrat vše",
"Name" : "Název",
"Deleted" : "Smazáno"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/fa.js b/apps/files_trashbin/l10n/fa.js
index b3c63104b04..4548fc5fb12 100644
--- a/apps/files_trashbin/l10n/fa.js
+++ b/apps/files_trashbin/l10n/fa.js
@@ -18,4 +18,4 @@ OC.L10N.register(
"Name" : "نام",
"Deleted" : "حذف شده"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/apps/files_trashbin/l10n/fa.json b/apps/files_trashbin/l10n/fa.json
index 09ff91cc2e0..4d14181a8cf 100644
--- a/apps/files_trashbin/l10n/fa.json
+++ b/apps/files_trashbin/l10n/fa.json
@@ -15,5 +15,5 @@
"Select all" : "انتخاب همه",
"Name" : "نام",
"Deleted" : "حذف شده"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/he.js b/apps/files_trashbin/l10n/he.js
index e2104b9b570..3b5a9af0a6f 100644
--- a/apps/files_trashbin/l10n/he.js
+++ b/apps/files_trashbin/l10n/he.js
@@ -18,4 +18,4 @@ OC.L10N.register(
"Name" : "שם",
"Deleted" : "נמחק"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/files_trashbin/l10n/he.json b/apps/files_trashbin/l10n/he.json
index c76079b0d34..6987701af93 100644
--- a/apps/files_trashbin/l10n/he.json
+++ b/apps/files_trashbin/l10n/he.json
@@ -15,5 +15,5 @@
"Select all" : "לבחור הכול",
"Name" : "שם",
"Deleted" : "נמחק"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ka_GE.js b/apps/files_trashbin/l10n/ka_GE.js
index 8a90a571c9c..e970d50ff68 100644
--- a/apps/files_trashbin/l10n/ka_GE.js
+++ b/apps/files_trashbin/l10n/ka_GE.js
@@ -18,4 +18,4 @@ OC.L10N.register(
"Name" : "სახელი",
"Deleted" : "წაშლილი"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/files_trashbin/l10n/ka_GE.json b/apps/files_trashbin/l10n/ka_GE.json
index 9ccca984eab..54a6c4d9f10 100644
--- a/apps/files_trashbin/l10n/ka_GE.json
+++ b/apps/files_trashbin/l10n/ka_GE.json
@@ -15,5 +15,5 @@
"Select all" : "ყველას მონიშვნა",
"Name" : "სახელი",
"Deleted" : "წაშლილი"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/lt_LT.js b/apps/files_trashbin/l10n/lt_LT.js
index 40785b474db..3b12e4137f0 100644
--- a/apps/files_trashbin/l10n/lt_LT.js
+++ b/apps/files_trashbin/l10n/lt_LT.js
@@ -18,4 +18,4 @@ OC.L10N.register(
"Name" : "Pavadinimas",
"Deleted" : "Ištrinta"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/files_trashbin/l10n/lt_LT.json b/apps/files_trashbin/l10n/lt_LT.json
index b871d16d31e..85233ffdd09 100644
--- a/apps/files_trashbin/l10n/lt_LT.json
+++ b/apps/files_trashbin/l10n/lt_LT.json
@@ -15,5 +15,5 @@
"Select all" : "Pažymėti viską",
"Name" : "Pavadinimas",
"Deleted" : "Ištrinta"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/sk.js b/apps/files_trashbin/l10n/sk.js
index b4168ec5440..2ba56add86c 100644
--- a/apps/files_trashbin/l10n/sk.js
+++ b/apps/files_trashbin/l10n/sk.js
@@ -18,4 +18,4 @@ OC.L10N.register(
"Name" : "Názov",
"Deleted" : "Zmazané"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/files_trashbin/l10n/sk.json b/apps/files_trashbin/l10n/sk.json
index b02227c7064..d35932084a8 100644
--- a/apps/files_trashbin/l10n/sk.json
+++ b/apps/files_trashbin/l10n/sk.json
@@ -15,5 +15,5 @@
"Select all" : "Vybrať všetko",
"Name" : "Názov",
"Deleted" : "Zmazané"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/uk.js b/apps/files_trashbin/l10n/uk.js
index 10747cda3f6..30752cbfa78 100644
--- a/apps/files_trashbin/l10n/uk.js
+++ b/apps/files_trashbin/l10n/uk.js
@@ -18,4 +18,4 @@ OC.L10N.register(
"Name" : "Ім'я",
"Deleted" : "Видалено"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/apps/files_trashbin/l10n/uk.json b/apps/files_trashbin/l10n/uk.json
index d02ee89faf6..8168b75e4f4 100644
--- a/apps/files_trashbin/l10n/uk.json
+++ b/apps/files_trashbin/l10n/uk.json
@@ -15,5 +15,5 @@
"Select all" : "Вибрати всі",
"Name" : "Ім'я",
"Deleted" : "Видалено"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/apps/files_trashbin/lib/Helper.php b/apps/files_trashbin/lib/Helper.php
index 65407b8a56e..01a4fd231ea 100644
--- a/apps/files_trashbin/lib/Helper.php
+++ b/apps/files_trashbin/lib/Helper.php
@@ -62,7 +62,6 @@ class Helper {
$dirContent = $storage->getCache()->getFolderContents($mount->getInternalPath($view->getAbsolutePath($dir)));
foreach ($dirContent as $entry) {
$entryName = $entry->getName();
- $id = $entry->getId();
$name = $entryName;
if ($dir === '' || $dir === '/') {
$pathparts = pathinfo($entryName);
@@ -91,7 +90,8 @@ class Helper {
'directory' => ($dir === '/') ? '' : $dir,
'size' => $entry->getSize(),
'etag' => '',
- 'permissions' => Constants::PERMISSION_ALL - Constants::PERMISSION_SHARE
+ 'permissions' => Constants::PERMISSION_ALL - Constants::PERMISSION_SHARE,
+ 'fileid' => $entry->getId(),
);
if ($originalPath) {
if ($originalPath !== '.') {
diff --git a/apps/files_trashbin/lib/Sabre/ITrash.php b/apps/files_trashbin/lib/Sabre/ITrash.php
index 7ec27f78859..6db9bccf0a2 100644
--- a/apps/files_trashbin/lib/Sabre/ITrash.php
+++ b/apps/files_trashbin/lib/Sabre/ITrash.php
@@ -31,4 +31,8 @@ interface ITrash {
public function getOriginalLocation(): string;
public function getDeletionTime(): int;
+
+ public function getSize();
+
+ public function getFileId(): int;
}
diff --git a/apps/files_trashbin/lib/Sabre/PropfindPlugin.php b/apps/files_trashbin/lib/Sabre/PropfindPlugin.php
index a0aaa552a14..492035304ba 100644
--- a/apps/files_trashbin/lib/Sabre/PropfindPlugin.php
+++ b/apps/files_trashbin/lib/Sabre/PropfindPlugin.php
@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace OCA\Files_Trashbin\Sabre;
+use OCA\DAV\Connector\Sabre\FilesPlugin;
use Sabre\DAV\INode;
use Sabre\DAV\PropFind;
use Sabre\DAV\Server;
@@ -64,6 +65,14 @@ class PropfindPlugin extends ServerPlugin {
$propFind->handle(self::TRASHBIN_DELETION_TIME, function () use ($node) {
return $node->getDeletionTime();
});
+
+ $propFind->handle(FilesPlugin::SIZE_PROPERTYNAME, function () use ($node) {
+ return $node->getSize();
+ });
+
+ $propFind->handle(FilesPlugin::FILEID_PROPERTYNAME, function () use ($node) {
+ return $node->getFileId();
+ });
}
}
diff --git a/apps/files_trashbin/lib/Sabre/RootCollection.php b/apps/files_trashbin/lib/Sabre/RootCollection.php
index e425fb448e2..be31d200f71 100644
--- a/apps/files_trashbin/lib/Sabre/RootCollection.php
+++ b/apps/files_trashbin/lib/Sabre/RootCollection.php
@@ -23,14 +23,17 @@ declare(strict_types=1);
*/
namespace OCA\Files_Trashbin\Sabre;
+use OCP\IConfig;
use Sabre\DAV\INode;
use Sabre\DAVACL\AbstractPrincipalCollection;
use Sabre\DAVACL\PrincipalBackend;
class RootCollection extends AbstractPrincipalCollection {
- public function __construct(PrincipalBackend\BackendInterface $principalBackend) {
+ public function __construct(PrincipalBackend\BackendInterface $principalBackend, IConfig $config) {
parent::__construct($principalBackend, 'principals/users');
+
+ $this->disableListing = !$config->getSystemValue('debug', false);
}
/**
diff --git a/apps/files_trashbin/lib/Sabre/TrashFile.php b/apps/files_trashbin/lib/Sabre/TrashFile.php
index e4c67cbfb31..eba9eee641b 100644
--- a/apps/files_trashbin/lib/Sabre/TrashFile.php
+++ b/apps/files_trashbin/lib/Sabre/TrashFile.php
@@ -90,4 +90,10 @@ class TrashFile implements IFile, ITrash {
public function getDeletionTime(): int {
return $this->getLastModified();
}
+
+ public function getFileId(): int {
+ return $this->data->getId();
+ }
+
+
}
diff --git a/apps/files_trashbin/lib/Sabre/TrashFolder.php b/apps/files_trashbin/lib/Sabre/TrashFolder.php
index e1fd965487b..6b7d71b80ee 100644
--- a/apps/files_trashbin/lib/Sabre/TrashFolder.php
+++ b/apps/files_trashbin/lib/Sabre/TrashFolder.php
@@ -120,4 +120,11 @@ class TrashFolder implements ICollection, ITrash {
return $this->getLastModified();
}
+ public function getSize(): int {
+ return $this->data->getSize();
+ }
+
+ public function getFileId(): int {
+ return $this->data->getId();
+ }
}
diff --git a/apps/files_trashbin/lib/Sabre/TrashFolderFile.php b/apps/files_trashbin/lib/Sabre/TrashFolderFile.php
index 9dd2f7b3ef5..921c98b02fb 100644
--- a/apps/files_trashbin/lib/Sabre/TrashFolderFile.php
+++ b/apps/files_trashbin/lib/Sabre/TrashFolderFile.php
@@ -101,4 +101,8 @@ class TrashFolderFile implements IFile, ITrash {
public function getDeletionTime(): int {
return $this->getLastModified();
}
+
+ public function getFileId(): int {
+ return $this->data->getId();
+ }
}
diff --git a/apps/files_trashbin/lib/Sabre/TrashFolderFolder.php b/apps/files_trashbin/lib/Sabre/TrashFolderFolder.php
index 3c2c4138095..2fe75479c1b 100644
--- a/apps/files_trashbin/lib/Sabre/TrashFolderFolder.php
+++ b/apps/files_trashbin/lib/Sabre/TrashFolderFolder.php
@@ -132,4 +132,12 @@ class TrashFolderFolder implements ICollection, ITrash {
public function getDeletionTime(): int {
return $this->getLastModified();
}
+
+ public function getSize(): int {
+ return $this->data->getSize();
+ }
+
+ public function getFileId(): int {
+ return $this->data->getId();
+ }
}
diff --git a/apps/files_versions/l10n/cs.js b/apps/files_versions/l10n/cs.js
index deb7e3e33b9..e8a5535d660 100644
--- a/apps/files_versions/l10n/cs.js
+++ b/apps/files_versions/l10n/cs.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "Nelze vrátit: %s",
"Versions" : "Verze",
"Failed to revert {file} to revision {timestamp}." : "Selhalo vrácení souboru {file} na verzi {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů","%n bajtů"],
"Restore" : "Obnovit",
"No earlier versions available" : "Nejsou dostupné dřívější verze",
"More versions …" : "Víc verzí …"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/files_versions/l10n/cs.json b/apps/files_versions/l10n/cs.json
index 6b727747998..1164298db83 100644
--- a/apps/files_versions/l10n/cs.json
+++ b/apps/files_versions/l10n/cs.json
@@ -2,9 +2,9 @@
"Could not revert: %s" : "Nelze vrátit: %s",
"Versions" : "Verze",
"Failed to revert {file} to revision {timestamp}." : "Selhalo vrácení souboru {file} na verzi {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtů","%n bajtů"],
"Restore" : "Obnovit",
"No earlier versions available" : "Nejsou dostupné dřívější verze",
"More versions …" : "Víc verzí …"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/fa.js b/apps/files_versions/l10n/fa.js
index 35332939df1..2545daf3817 100644
--- a/apps/files_versions/l10n/fa.js
+++ b/apps/files_versions/l10n/fa.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "بازگردانی امکان ناپذیر است: %s",
"Versions" : "نسخه ها",
"Failed to revert {file} to revision {timestamp}." : "برگرداندن {file} به نسخه {timestamp} با شکست روبرو شد",
- "_%n byte_::_%n bytes_" : ["%n بایت"],
+ "_%n byte_::_%n bytes_" : ["%n بایت","%n بایت"],
"Restore" : "بازیابی",
"No earlier versions available" : "هیچ نسخه قدیمی تری در دسترس نیست",
"More versions …" : "نسخه های بیشتر ..."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/apps/files_versions/l10n/fa.json b/apps/files_versions/l10n/fa.json
index 2618427c674..6b96efe89fb 100644
--- a/apps/files_versions/l10n/fa.json
+++ b/apps/files_versions/l10n/fa.json
@@ -2,9 +2,9 @@
"Could not revert: %s" : "بازگردانی امکان ناپذیر است: %s",
"Versions" : "نسخه ها",
"Failed to revert {file} to revision {timestamp}." : "برگرداندن {file} به نسخه {timestamp} با شکست روبرو شد",
- "_%n byte_::_%n bytes_" : ["%n بایت"],
+ "_%n byte_::_%n bytes_" : ["%n بایت","%n بایت"],
"Restore" : "بازیابی",
"No earlier versions available" : "هیچ نسخه قدیمی تری در دسترس نیست",
"More versions …" : "نسخه های بیشتر ..."
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/he.js b/apps/files_versions/l10n/he.js
index 09e655c422f..d9f9d69bbcc 100644
--- a/apps/files_versions/l10n/he.js
+++ b/apps/files_versions/l10n/he.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "לא ניתן להחזיר: %s",
"Versions" : "גרסאות",
"Failed to revert {file} to revision {timestamp}." : "נכשל אחזור {file} לגרסה {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים"],
+ "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים"],
"Restore" : "שחזור",
"No earlier versions available" : "אין גרסאות קודמות זמינות",
"More versions …" : "גרסאות נוספות…"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/files_versions/l10n/he.json b/apps/files_versions/l10n/he.json
index 380df68f971..15ee15ab7b1 100644
--- a/apps/files_versions/l10n/he.json
+++ b/apps/files_versions/l10n/he.json
@@ -2,9 +2,9 @@
"Could not revert: %s" : "לא ניתן להחזיר: %s",
"Versions" : "גרסאות",
"Failed to revert {file} to revision {timestamp}." : "נכשל אחזור {file} לגרסה {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים"],
+ "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים","%n בייטים"],
"Restore" : "שחזור",
"No earlier versions available" : "אין גרסאות קודמות זמינות",
"More versions …" : "גרסאות נוספות…"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/ka_GE.js b/apps/files_versions/l10n/ka_GE.js
index 464d43af1c9..09bb4d37b24 100644
--- a/apps/files_versions/l10n/ka_GE.js
+++ b/apps/files_versions/l10n/ka_GE.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "ვერ მოხერხდა უკან დაბრუნება: %s",
"Versions" : "ვერსიები",
"Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი"],
+ "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
"Restore" : "აღდგენა",
"No earlier versions available" : "წინა ვერსიები ხელმისაწვდომი არაა",
"More versions …" : "მეტი ვერსია …"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/files_versions/l10n/ka_GE.json b/apps/files_versions/l10n/ka_GE.json
index 89e9436c5d8..73162f3c500 100644
--- a/apps/files_versions/l10n/ka_GE.json
+++ b/apps/files_versions/l10n/ka_GE.json
@@ -2,9 +2,9 @@
"Could not revert: %s" : "ვერ მოხერხდა უკან დაბრუნება: %s",
"Versions" : "ვერსიები",
"Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.",
- "_%n byte_::_%n bytes_" : ["%n ბაიტი"],
+ "_%n byte_::_%n bytes_" : ["%n ბაიტი","%n ბაიტი"],
"Restore" : "აღდგენა",
"No earlier versions available" : "წინა ვერსიები ხელმისაწვდომი არაა",
"More versions …" : "მეტი ვერსია …"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/kn.js b/apps/files_versions/l10n/kn.js
index 181fe6322e2..44edbb5f9a7 100644
--- a/apps/files_versions/l10n/kn.js
+++ b/apps/files_versions/l10n/kn.js
@@ -6,4 +6,4 @@ OC.L10N.register(
"Failed to revert {file} to revision {timestamp}." : "{timestamp} ದ ಪರಿಷ್ಕರಣೆ ಇಂದ {file} ಕಡತವನ್ನು ಹಿಂದಿರುಗಿಸಲು ವಿಫಲವಾಗಿದೆ.",
"Restore" : "ಮರುಸ್ಥಾಪಿಸು"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/apps/files_versions/l10n/kn.json b/apps/files_versions/l10n/kn.json
index 56d909779e4..c35ca7272d9 100644
--- a/apps/files_versions/l10n/kn.json
+++ b/apps/files_versions/l10n/kn.json
@@ -3,5 +3,5 @@
"Versions" : "ಆವೃತ್ತಿಗಳು",
"Failed to revert {file} to revision {timestamp}." : "{timestamp} ದ ಪರಿಷ್ಕರಣೆ ಇಂದ {file} ಕಡತವನ್ನು ಹಿಂದಿರುಗಿಸಲು ವಿಫಲವಾಗಿದೆ.",
"Restore" : "ಮರುಸ್ಥಾಪಿಸು"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/lt_LT.js b/apps/files_versions/l10n/lt_LT.js
index a38a9657503..4fcd26deea8 100644
--- a/apps/files_versions/l10n/lt_LT.js
+++ b/apps/files_versions/l10n/lt_LT.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "Nepavyko sugrąžinti: %s",
"Versions" : "Versijos",
"Failed to revert {file} to revision {timestamp}." : "Nepavyko sugrąžinti {file} į {timestamp} būseną.",
- "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų"],
+ "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
"Restore" : "Atkurti",
"No earlier versions available" : "Nėra ankstesnių versijų",
"More versions …" : "Daugiau versijų …"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/files_versions/l10n/lt_LT.json b/apps/files_versions/l10n/lt_LT.json
index a8842fc1613..eb1d9c26f79 100644
--- a/apps/files_versions/l10n/lt_LT.json
+++ b/apps/files_versions/l10n/lt_LT.json
@@ -2,9 +2,9 @@
"Could not revert: %s" : "Nepavyko sugrąžinti: %s",
"Versions" : "Versijos",
"Failed to revert {file} to revision {timestamp}." : "Nepavyko sugrąžinti {file} į {timestamp} būseną.",
- "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų"],
+ "_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
"Restore" : "Atkurti",
"No earlier versions available" : "Nėra ankstesnių versijų",
"More versions …" : "Daugiau versijų …"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/sk.js b/apps/files_versions/l10n/sk.js
index 0c06a7bf239..2c1179e065f 100644
--- a/apps/files_versions/l10n/sk.js
+++ b/apps/files_versions/l10n/sk.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "Nemožno obnoviť: %s",
"Versions" : "Verzie",
"Failed to revert {file} to revision {timestamp}." : "Zlyhalo obnovenie súboru {file} na verziu {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtov","%n bajtov"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtov","%n bajtov","%n bajtov"],
"Restore" : "Obnoviť",
"No earlier versions available" : "Nie sú dostupné predchádzajúce verzie",
"More versions …" : "Viac verzií ..."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/files_versions/l10n/sk.json b/apps/files_versions/l10n/sk.json
index 76a4d6f8261..a604e39c5f6 100644
--- a/apps/files_versions/l10n/sk.json
+++ b/apps/files_versions/l10n/sk.json
@@ -2,9 +2,9 @@
"Could not revert: %s" : "Nemožno obnoviť: %s",
"Versions" : "Verzie",
"Failed to revert {file} to revision {timestamp}." : "Zlyhalo obnovenie súboru {file} na verziu {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtov","%n bajtov"],
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtov","%n bajtov","%n bajtov"],
"Restore" : "Obnoviť",
"No earlier versions available" : "Nie sú dostupné predchádzajúce verzie",
"More versions …" : "Viac verzií ..."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/files_versions/l10n/uk.js b/apps/files_versions/l10n/uk.js
index 34a9faedbd5..f991bfaf3c4 100644
--- a/apps/files_versions/l10n/uk.js
+++ b/apps/files_versions/l10n/uk.js
@@ -4,9 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "Не вдалося відновити: %s",
"Versions" : "Версії",
"Failed to revert {file} to revision {timestamp}." : "Не вдалося повернути {file} до ревізії {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n байт","%n байтів","%n байта"],
+ "_%n byte_::_%n bytes_" : ["%n байт","%n байтів","%n байта","%n байта"],
"Restore" : "Відновити",
"No earlier versions available" : "Попередні версії недоступні",
"More versions …" : "Більше версій …"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/apps/files_versions/l10n/uk.json b/apps/files_versions/l10n/uk.json
index 8bd76ae3526..82de0fd456c 100644
--- a/apps/files_versions/l10n/uk.json
+++ b/apps/files_versions/l10n/uk.json
@@ -2,9 +2,9 @@
"Could not revert: %s" : "Не вдалося відновити: %s",
"Versions" : "Версії",
"Failed to revert {file} to revision {timestamp}." : "Не вдалося повернути {file} до ревізії {timestamp}.",
- "_%n byte_::_%n bytes_" : ["%n байт","%n байтів","%n байта"],
+ "_%n byte_::_%n bytes_" : ["%n байт","%n байтів","%n байта","%n байта"],
"Restore" : "Відновити",
"No earlier versions available" : "Попередні версії недоступні",
"More versions …" : "Більше версій …"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/apps/files_versions/lib/AppInfo/Application.php b/apps/files_versions/lib/AppInfo/Application.php
index 4431fbf51bf..be80f7d853b 100644
--- a/apps/files_versions/lib/AppInfo/Application.php
+++ b/apps/files_versions/lib/AppInfo/Application.php
@@ -41,16 +41,6 @@ class Application extends App {
$container->registerCapability(Capabilities::class);
/*
- * Register expiration
- */
- $container->registerService('Expiration', function($c) {
- return new Expiration(
- $c->query('ServerContainer')->getConfig(),
- $c->query(ITimeFactory::class)
- );
- });
-
- /*
* Register $principalBackend for the DAV collection
*/
$container->registerService('principalBackend', function () {
diff --git a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php
index d69e5bb87ce..47a1903a535 100644
--- a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php
+++ b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php
@@ -44,22 +44,12 @@ class ExpireVersions extends \OC\BackgroundJob\TimedJob {
*/
private $userManager;
- public function __construct(IUserManager $userManager = null, Expiration $expiration = null) {
+ public function __construct(IUserManager $userManager, Expiration $expiration) {
// Run once per 30 minutes
$this->setInterval(60 * 30);
- if (is_null($expiration) || is_null($userManager)) {
- $this->fixDIForJobs();
- } else {
- $this->expiration = $expiration;
- $this->userManager = $userManager;
- }
- }
-
- protected function fixDIForJobs() {
- $application = new Application();
- $this->expiration = $application->getContainer()->query('Expiration');
- $this->userManager = \OC::$server->getUserManager();
+ $this->expiration = $expiration;
+ $this->userManager = $userManager;
}
protected function run($argument) {
diff --git a/apps/files_versions/lib/Command/ExpireVersions.php b/apps/files_versions/lib/Command/ExpireVersions.php
index 09de0ad6d90..7fdaa27afd9 100644
--- a/apps/files_versions/lib/Command/ExpireVersions.php
+++ b/apps/files_versions/lib/Command/ExpireVersions.php
@@ -46,11 +46,11 @@ class ExpireVersions extends Command {
private $userManager;
/**
- * @param IUserManager|null $userManager
- * @param Expiration|null $expiration
+ * @param IUserManager $userManager
+ * @param Expiration $expiration
*/
- public function __construct(IUserManager $userManager = null,
- Expiration $expiration = null) {
+ public function __construct(IUserManager $userManager,
+ Expiration $expiration) {
parent::__construct();
$this->userManager = $userManager;
diff --git a/apps/files_versions/lib/Sabre/RootCollection.php b/apps/files_versions/lib/Sabre/RootCollection.php
index 397f1c55891..ca5979573b5 100644
--- a/apps/files_versions/lib/Sabre/RootCollection.php
+++ b/apps/files_versions/lib/Sabre/RootCollection.php
@@ -23,6 +23,7 @@
namespace OCA\Files_Versions\Sabre;
use OCP\Files\IRootFolder;
+use OCP\IConfig;
use Sabre\DAV\INode;
use Sabre\DAVACL\AbstractPrincipalCollection;
use Sabre\DAVACL\PrincipalBackend;
@@ -33,10 +34,13 @@ class RootCollection extends AbstractPrincipalCollection {
private $rootFolder;
public function __construct(PrincipalBackend\BackendInterface $principalBackend,
- IRootFolder $rootFolder) {
+ IRootFolder $rootFolder,
+ IConfig $config) {
parent::__construct($principalBackend, 'principals/users');
$this->rootFolder = $rootFolder;
+
+ $this->disableListing = !$config->getSystemValue('debug', false);
}
/**
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php
index 52afdfdaa5a..401544cc5d7 100644
--- a/apps/files_versions/lib/Storage.php
+++ b/apps/files_versions/lib/Storage.php
@@ -337,6 +337,9 @@ class Storage {
return false;
}
+ // Fetch the userfolder to trigger view hooks
+ $userFolder = \OC::$server->getUserFolder($uid);
+
$users_view = new View('/'.$uid);
$files_view = new View('/'. User::getUser().'/files');
@@ -375,9 +378,14 @@ class Storage {
if (self::copyFileContents($users_view, $fileToRestore, 'files' . $filename)) {
$files_view->touch($file, $revision);
Storage::scheduleExpire($uid, $file);
+
+ $node = $userFolder->get($file);
+
+ // TODO: move away from those legacy hooks!
\OC_Hook::emit('\OCP\Versions', 'rollback', array(
'path' => $filename,
'revision' => $revision,
+ 'node' => $node,
));
return true;
} else if ($versionCreated) {
@@ -845,7 +853,7 @@ class Storage {
if (is_null(self::$application)) {
self::$application = new Application();
}
- return self::$application->getContainer()->query('Expiration');
+ return self::$application->getContainer()->query(Expiration::class);
}
}
diff --git a/apps/oauth2/l10n/ca.js b/apps/oauth2/l10n/ca.js
index 19d6ae7f001..dc7bad39f35 100644
--- a/apps/oauth2/l10n/ca.js
+++ b/apps/oauth2/l10n/ca.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"oauth2",
{
+ "OAuth 2.0" : "OAuth 2.0",
"OAuth 2.0 clients" : "clients OAuth 2.0",
"OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permet que els serveis externs sol·licitin accés a %s.",
"Name" : "Nom",
diff --git a/apps/oauth2/l10n/ca.json b/apps/oauth2/l10n/ca.json
index 81855caa2cf..983ff83872e 100644
--- a/apps/oauth2/l10n/ca.json
+++ b/apps/oauth2/l10n/ca.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "OAuth 2.0" : "OAuth 2.0",
"OAuth 2.0 clients" : "clients OAuth 2.0",
"OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 permet que els serveis externs sol·licitin accés a %s.",
"Name" : "Nom",
diff --git a/apps/oauth2/l10n/cs.js b/apps/oauth2/l10n/cs.js
index 7bdce516054..4c768e39ee5 100644
--- a/apps/oauth2/l10n/cs.js
+++ b/apps/oauth2/l10n/cs.js
@@ -10,4 +10,4 @@ OC.L10N.register(
"Add client" : "Přidat klienta",
"Add" : "Přidat"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/oauth2/l10n/cs.json b/apps/oauth2/l10n/cs.json
index 7a76470dbe2..a7f0184c745 100644
--- a/apps/oauth2/l10n/cs.json
+++ b/apps/oauth2/l10n/cs.json
@@ -7,5 +7,5 @@
"Secret" : "Tajemství",
"Add client" : "Přidat klienta",
"Add" : "Přidat"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/oauth2/l10n/es_GT.js b/apps/oauth2/l10n/es_GT.js
index ecad08fd552..c5e0d2f46b0 100644
--- a/apps/oauth2/l10n/es_GT.js
+++ b/apps/oauth2/l10n/es_GT.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"oauth2",
{
+ "OAuth 2.0" : "OAuth 2.0",
"OAuth 2.0 clients" : "Clientes OAuth 2.0",
"OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.",
"Name" : "Nombre",
diff --git a/apps/oauth2/l10n/es_GT.json b/apps/oauth2/l10n/es_GT.json
index 5e42b16f40d..ac9eef5ebf8 100644
--- a/apps/oauth2/l10n/es_GT.json
+++ b/apps/oauth2/l10n/es_GT.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "OAuth 2.0" : "OAuth 2.0",
"OAuth 2.0 clients" : "Clientes OAuth 2.0",
"OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.",
"Name" : "Nombre",
diff --git a/apps/oauth2/l10n/he.js b/apps/oauth2/l10n/he.js
index 250205239a8..080c8e0b9b3 100644
--- a/apps/oauth2/l10n/he.js
+++ b/apps/oauth2/l10n/he.js
@@ -11,4 +11,4 @@ OC.L10N.register(
"Add client" : "הוספת לקוחי",
"Add" : "הוספה"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/oauth2/l10n/he.json b/apps/oauth2/l10n/he.json
index 09505d77302..2d1fbe48cbe 100644
--- a/apps/oauth2/l10n/he.json
+++ b/apps/oauth2/l10n/he.json
@@ -8,5 +8,5 @@
"Secret" : "סוד",
"Add client" : "הוספת לקוחי",
"Add" : "הוספה"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/oauth2/l10n/ka_GE.js b/apps/oauth2/l10n/ka_GE.js
index bc15a0bb375..fcf2da09fd7 100644
--- a/apps/oauth2/l10n/ka_GE.js
+++ b/apps/oauth2/l10n/ka_GE.js
@@ -11,4 +11,4 @@ OC.L10N.register(
"Add client" : "კლიენტის დამატება",
"Add" : "დამატება"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/oauth2/l10n/ka_GE.json b/apps/oauth2/l10n/ka_GE.json
index 234349103b1..829461f55de 100644
--- a/apps/oauth2/l10n/ka_GE.json
+++ b/apps/oauth2/l10n/ka_GE.json
@@ -8,5 +8,5 @@
"Secret" : "საიდუმლო",
"Add client" : "კლიენტის დამატება",
"Add" : "დამატება"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/oauth2/l10n/lt_LT.js b/apps/oauth2/l10n/lt_LT.js
index b93d9063ae2..131959033da 100644
--- a/apps/oauth2/l10n/lt_LT.js
+++ b/apps/oauth2/l10n/lt_LT.js
@@ -10,4 +10,4 @@ OC.L10N.register(
"Add client" : "Pridėti klientą",
"Add" : "Pridėti"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/oauth2/l10n/lt_LT.json b/apps/oauth2/l10n/lt_LT.json
index 6b311c7b5cd..5cf8a27de47 100644
--- a/apps/oauth2/l10n/lt_LT.json
+++ b/apps/oauth2/l10n/lt_LT.json
@@ -7,5 +7,5 @@
"Secret" : "Paslaptis",
"Add client" : "Pridėti klientą",
"Add" : "Pridėti"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/oauth2/l10n/sk.js b/apps/oauth2/l10n/sk.js
index 977ffe779a0..7e1d0983c61 100644
--- a/apps/oauth2/l10n/sk.js
+++ b/apps/oauth2/l10n/sk.js
@@ -11,4 +11,4 @@ OC.L10N.register(
"Add client" : "Pridať klienta",
"Add" : "Pridať"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/oauth2/l10n/sk.json b/apps/oauth2/l10n/sk.json
index bc0e014f859..24f1959e55d 100644
--- a/apps/oauth2/l10n/sk.json
+++ b/apps/oauth2/l10n/sk.json
@@ -8,5 +8,5 @@
"Secret" : "Tajný kľúč",
"Add client" : "Pridať klienta",
"Add" : "Pridať"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/cs.js b/apps/sharebymail/l10n/cs.js
index 25012c581dd..146ffe23e1a 100644
--- a/apps/sharebymail/l10n/cs.js
+++ b/apps/sharebymail/l10n/cs.js
@@ -40,4 +40,4 @@ OC.L10N.register(
"Enforce password protection" : "Vynutit ochranu heslem",
"Failed to send share by E-mail" : "Odeslání sdílení e-mailem se nezdařilo"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/sharebymail/l10n/cs.json b/apps/sharebymail/l10n/cs.json
index 02f938b830a..a4a180957f0 100644
--- a/apps/sharebymail/l10n/cs.json
+++ b/apps/sharebymail/l10n/cs.json
@@ -37,5 +37,5 @@
"Send password by mail" : "Odeslat heslo e-mailem",
"Enforce password protection" : "Vynutit ochranu heslem",
"Failed to send share by E-mail" : "Odeslání sdílení e-mailem se nezdařilo"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/ka_GE.js b/apps/sharebymail/l10n/ka_GE.js
index 8d2d43afc6c..81a952c0dc0 100644
--- a/apps/sharebymail/l10n/ka_GE.js
+++ b/apps/sharebymail/l10n/ka_GE.js
@@ -40,4 +40,4 @@ OC.L10N.register(
"Enforce password protection" : "პროლით დაცვის იძულება",
"Failed to send share by E-mail" : "საოფსტო გაზიარების გაგზავნა ვერ მოხერხდა"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/sharebymail/l10n/ka_GE.json b/apps/sharebymail/l10n/ka_GE.json
index 140b8dbb344..9699e8c10a2 100644
--- a/apps/sharebymail/l10n/ka_GE.json
+++ b/apps/sharebymail/l10n/ka_GE.json
@@ -37,5 +37,5 @@
"Send password by mail" : "პაროლის გაგზავნა ფოსტით",
"Enforce password protection" : "პროლით დაცვის იძულება",
"Failed to send share by E-mail" : "საოფსტო გაზიარების გაგზავნა ვერ მოხერხდა"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/lt_LT.js b/apps/sharebymail/l10n/lt_LT.js
index 4adcb4242f4..a15db357e0a 100644
--- a/apps/sharebymail/l10n/lt_LT.js
+++ b/apps/sharebymail/l10n/lt_LT.js
@@ -40,4 +40,4 @@ OC.L10N.register(
"Enforce password protection" : "Apsaugoti slaptažodžiu",
"Failed to send share by E-mail" : "Nepavyko išsiųsti bendrinimo el. paštu"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/sharebymail/l10n/lt_LT.json b/apps/sharebymail/l10n/lt_LT.json
index 61f2ea0994a..c1dd8bbb85f 100644
--- a/apps/sharebymail/l10n/lt_LT.json
+++ b/apps/sharebymail/l10n/lt_LT.json
@@ -37,5 +37,5 @@
"Send password by mail" : "Siųti slaptažodį elektroniniu paštu",
"Enforce password protection" : "Apsaugoti slaptažodžiu",
"Failed to send share by E-mail" : "Nepavyko išsiųsti bendrinimo el. paštu"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/sk.js b/apps/sharebymail/l10n/sk.js
index d10d5d49959..4fa88544593 100644
--- a/apps/sharebymail/l10n/sk.js
+++ b/apps/sharebymail/l10n/sk.js
@@ -33,4 +33,4 @@ OC.L10N.register(
"Enforce password protection" : "Vynútiť ochranu heslom",
"Failed to send share by E-mail" : "Nebolo možné poslať sprístupnenie emailom"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/sharebymail/l10n/sk.json b/apps/sharebymail/l10n/sk.json
index 89f0b8fc2f3..997de521f8a 100644
--- a/apps/sharebymail/l10n/sk.json
+++ b/apps/sharebymail/l10n/sk.json
@@ -30,5 +30,5 @@
"Send password by mail" : "Odoslať heslo e-mailom",
"Enforce password protection" : "Vynútiť ochranu heslom",
"Failed to send share by E-mail" : "Nebolo možné poslať sprístupnenie emailom"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/cs.js b/apps/systemtags/l10n/cs.js
index 5fc3ae2ba3c..37d563ab4a3 100644
--- a/apps/systemtags/l10n/cs.js
+++ b/apps/systemtags/l10n/cs.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Size" : "Velikost",
"Modified" : "Upraveno"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/systemtags/l10n/cs.json b/apps/systemtags/l10n/cs.json
index 92addac3ef6..bebe1e0c718 100644
--- a/apps/systemtags/l10n/cs.json
+++ b/apps/systemtags/l10n/cs.json
@@ -52,5 +52,5 @@
"No entries found in this folder" : "V tomto adresáři nebylo nic nalezeno",
"Size" : "Velikost",
"Modified" : "Upraveno"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/he.js b/apps/systemtags/l10n/he.js
index a81468cd559..f1b99d86a66 100644
--- a/apps/systemtags/l10n/he.js
+++ b/apps/systemtags/l10n/he.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Size" : "גודל",
"Modified" : "זמן שינוי"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/systemtags/l10n/he.json b/apps/systemtags/l10n/he.json
index 7d3ae53f5f5..ecff1e3bfa5 100644
--- a/apps/systemtags/l10n/he.json
+++ b/apps/systemtags/l10n/he.json
@@ -52,5 +52,5 @@
"No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו",
"Size" : "גודל",
"Modified" : "זמן שינוי"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/ka_GE.js b/apps/systemtags/l10n/ka_GE.js
index ee007fd0189..15b0a1657cb 100644
--- a/apps/systemtags/l10n/ka_GE.js
+++ b/apps/systemtags/l10n/ka_GE.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Size" : "ზომა",
"Modified" : "შეცვლილია"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/systemtags/l10n/ka_GE.json b/apps/systemtags/l10n/ka_GE.json
index 7895041ae1f..6a3a281fe73 100644
--- a/apps/systemtags/l10n/ka_GE.json
+++ b/apps/systemtags/l10n/ka_GE.json
@@ -52,5 +52,5 @@
"No entries found in this folder" : "ამ დირექტორიაში შენატანების მოძებნა ვერ მოხერხდა",
"Size" : "ზომა",
"Modified" : "შეცვლილია"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/lt_LT.js b/apps/systemtags/l10n/lt_LT.js
index daf26d2c389..8fe84801a8f 100644
--- a/apps/systemtags/l10n/lt_LT.js
+++ b/apps/systemtags/l10n/lt_LT.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Size" : "Dydis",
"Modified" : "Pakeista"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/systemtags/l10n/lt_LT.json b/apps/systemtags/l10n/lt_LT.json
index 37296ec4186..c6d1fec960e 100644
--- a/apps/systemtags/l10n/lt_LT.json
+++ b/apps/systemtags/l10n/lt_LT.json
@@ -52,5 +52,5 @@
"No entries found in this folder" : "Nerasta įrašų šiame aplanke",
"Size" : "Dydis",
"Modified" : "Pakeista"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/systemtags/l10n/sk.js b/apps/systemtags/l10n/sk.js
index 77ddf39e4bb..595a382cc5e 100644
--- a/apps/systemtags/l10n/sk.js
+++ b/apps/systemtags/l10n/sk.js
@@ -55,4 +55,4 @@ OC.L10N.register(
"Size" : "Veľkosť",
"Modified" : "Upravené"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/systemtags/l10n/sk.json b/apps/systemtags/l10n/sk.json
index a4d4bb32264..dc676bbc4af 100644
--- a/apps/systemtags/l10n/sk.json
+++ b/apps/systemtags/l10n/sk.json
@@ -52,5 +52,5 @@
"No entries found in this folder" : "V tomto priečinku sa nič nenašlo",
"Size" : "Veľkosť",
"Modified" : "Upravené"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/ca.js b/apps/theming/l10n/ca.js
index f0b24291eda..2e1b7f73bce 100644
--- a/apps/theming/l10n/ca.js
+++ b/apps/theming/l10n/ca.js
@@ -5,14 +5,16 @@ OC.L10N.register(
"Saved" : "Guardat",
"Admin" : "Admin",
"a safe home for all your data" : "un lloc segur per a les teves dades",
+ "Name cannot be empty" : "El nom del fitxer no pot estar buit",
"The given name is too long" : "El nom introduït és massa llarg",
"The given web address is too long" : "L'adreça web proporcionada és massa llarga",
"The given slogan is too long" : "El lema indicat és massa llarg",
"The given color is invalid" : "El color donat no és vàlid",
"No file uploaded" : "No s'ha carregat cap fitxer",
"Unsupported image type" : "Tipus d'imatge no compatible",
- "Theming" : "Adaptació de temes",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "L'adaptació de temes permet personalitzar fàcilment l'aspecte de la vostra instància i els clients compatibles. Això serà visible per a tots els usuaris.",
+ "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ja estàs utilitzant un tema propi. La configuració de l'app s'hauria d'haver modificat.",
+ "Theming" : "Aparença",
+ "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "La personalització permet canviar fàcilment l'aspecte de la vostra web i dels clients. Això serà visible per a tots els usuaris.",
"Name" : "Nom",
"Reset to default" : "Restablir al valor predeterminat",
"Web address" : "Adreça web",
@@ -24,6 +26,9 @@ OC.L10N.register(
"Login image" : "Login logo",
"Upload new login background" : "Carregar nou fons d'inici de sessió",
"Remove background image" : "Elimina la imatge de fons",
+ "Header logo" : "Logo de capçalera",
+ "Upload new header logo" : "Pujar un nou logo de capçalera",
+ "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instal·la l'extensió Imagemagick per al PHP i es generarà automàticament un favicon a partir del logo i del color del tema.",
"You are already using a custom theme" : "Ja esteu utilitzant un tema personalitzat",
"reset to default" : "restablir a configuració predeterminada"
},
diff --git a/apps/theming/l10n/ca.json b/apps/theming/l10n/ca.json
index c26241baaf4..062b7776248 100644
--- a/apps/theming/l10n/ca.json
+++ b/apps/theming/l10n/ca.json
@@ -3,14 +3,16 @@
"Saved" : "Guardat",
"Admin" : "Admin",
"a safe home for all your data" : "un lloc segur per a les teves dades",
+ "Name cannot be empty" : "El nom del fitxer no pot estar buit",
"The given name is too long" : "El nom introduït és massa llarg",
"The given web address is too long" : "L'adreça web proporcionada és massa llarga",
"The given slogan is too long" : "El lema indicat és massa llarg",
"The given color is invalid" : "El color donat no és vàlid",
"No file uploaded" : "No s'ha carregat cap fitxer",
"Unsupported image type" : "Tipus d'imatge no compatible",
- "Theming" : "Adaptació de temes",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "L'adaptació de temes permet personalitzar fàcilment l'aspecte de la vostra instància i els clients compatibles. Això serà visible per a tots els usuaris.",
+ "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ja estàs utilitzant un tema propi. La configuració de l'app s'hauria d'haver modificat.",
+ "Theming" : "Aparença",
+ "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "La personalització permet canviar fàcilment l'aspecte de la vostra web i dels clients. Això serà visible per a tots els usuaris.",
"Name" : "Nom",
"Reset to default" : "Restablir al valor predeterminat",
"Web address" : "Adreça web",
@@ -22,6 +24,9 @@
"Login image" : "Login logo",
"Upload new login background" : "Carregar nou fons d'inici de sessió",
"Remove background image" : "Elimina la imatge de fons",
+ "Header logo" : "Logo de capçalera",
+ "Upload new header logo" : "Pujar un nou logo de capçalera",
+ "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instal·la l'extensió Imagemagick per al PHP i es generarà automàticament un favicon a partir del logo i del color del tema.",
"You are already using a custom theme" : "Ja esteu utilitzant un tema personalitzat",
"reset to default" : "restablir a configuració predeterminada"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/theming/l10n/cs.js b/apps/theming/l10n/cs.js
index 3d56fef0d2e..98ceb010505 100644
--- a/apps/theming/l10n/cs.js
+++ b/apps/theming/l10n/cs.js
@@ -37,4 +37,4 @@ OC.L10N.register(
"Failed to write file to disk." : "Selhal zápis na disk",
"A PHP extension stopped the file upload." : "Rozšíření PHP zastavilo nahrávání souboru."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/theming/l10n/cs.json b/apps/theming/l10n/cs.json
index 6040528d3da..e33d584fce9 100644
--- a/apps/theming/l10n/cs.json
+++ b/apps/theming/l10n/cs.json
@@ -34,5 +34,5 @@
"The uploaded file was only partially uploaded" : "Nahraný soubor byl nahrán pouze částečně",
"Failed to write file to disk." : "Selhal zápis na disk",
"A PHP extension stopped the file upload." : "Rozšíření PHP zastavilo nahrávání souboru."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/theming/l10n/es_GT.js b/apps/theming/l10n/es_GT.js
index a5c28e1ee77..bee78be90cc 100644
--- a/apps/theming/l10n/es_GT.js
+++ b/apps/theming/l10n/es_GT.js
@@ -5,16 +5,22 @@ OC.L10N.register(
"Saved" : "Guardado",
"Admin" : "Administración",
"a safe home for all your data" : "un lugar seguro para todos tus datos",
+ "Name cannot be empty" : "El nombre no puede estar en blanco",
"The given name is too long" : "El nombre dado es demasiado largo",
"The given web address is too long" : "La dirección web dada es demasiado larga",
"The given slogan is too long" : "El lema dado es demasiado largo",
"The given color is invalid" : "El color dado es inválido",
+ "The file was uploaded" : "El archivo fue cargado",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
+ "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
"No file was uploaded" : "No se cargó el archivo",
"Missing a temporary folder" : "Falta una carpeta temporal",
+ "Could not write file to disk" : "No fue posible escribir a disco",
+ "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
"No file uploaded" : "No hay archivos cargados",
"Unsupported image type" : "Tipo de imagen no soportado",
+ "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
"Theming" : "Tematizar",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
"Name" : "Nombre",
@@ -28,6 +34,11 @@ OC.L10N.register(
"Login image" : "Imágen de inicio de sesión",
"Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
"Remove background image" : "Eliminar imagen de fondo",
+ "Advanced options" : "Opciones avanzadas",
+ "Header logo" : "Logo del encabezado",
+ "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
+ "Favicon" : "Favicon",
+ "Upload new favicon" : "Cargar un nuevo favicon",
"Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.",
"You are already using a custom theme" : "Ya estás usando un tema personalizado",
"reset to default" : "restaurar a predeterminado",
diff --git a/apps/theming/l10n/es_GT.json b/apps/theming/l10n/es_GT.json
index 6099c9a9c1e..84e7927dda8 100644
--- a/apps/theming/l10n/es_GT.json
+++ b/apps/theming/l10n/es_GT.json
@@ -3,16 +3,22 @@
"Saved" : "Guardado",
"Admin" : "Administración",
"a safe home for all your data" : "un lugar seguro para todos tus datos",
+ "Name cannot be empty" : "El nombre no puede estar en blanco",
"The given name is too long" : "El nombre dado es demasiado largo",
"The given web address is too long" : "La dirección web dada es demasiado larga",
"The given slogan is too long" : "El lema dado es demasiado largo",
"The given color is invalid" : "El color dado es inválido",
+ "The file was uploaded" : "El archivo fue cargado",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML",
+ "The file was only partially uploaded" : "El archivo sólo fue cargado parcialmente",
"No file was uploaded" : "No se cargó el archivo",
"Missing a temporary folder" : "Falta una carpeta temporal",
+ "Could not write file to disk" : "No fue posible escribir a disco",
+ "A PHP extension stopped the file upload" : "Una extensión de PHP detuvo la carga del archivo",
"No file uploaded" : "No hay archivos cargados",
"Unsupported image type" : "Tipo de imagen no soportado",
+ "You are already using a custom theme. Theming app settings might be overwritten by that." : "Ya te encuentras usando un tema personalizado. La aplicación de Temas puede estar siendo sobreescrita por él.",
"Theming" : "Tematizar",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ",
"Name" : "Nombre",
@@ -26,6 +32,11 @@
"Login image" : "Imágen de inicio de sesión",
"Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión",
"Remove background image" : "Eliminar imagen de fondo",
+ "Advanced options" : "Opciones avanzadas",
+ "Header logo" : "Logo del encabezado",
+ "Upload new header logo" : "Cargar un nuevo logotipo del encabezado",
+ "Favicon" : "Favicon",
+ "Upload new favicon" : "Cargar un nuevo favicon",
"Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.",
"You are already using a custom theme" : "Ya estás usando un tema personalizado",
"reset to default" : "restaurar a predeterminado",
diff --git a/apps/theming/l10n/ka_GE.js b/apps/theming/l10n/ka_GE.js
index 9ced9526a92..3306aae65f0 100644
--- a/apps/theming/l10n/ka_GE.js
+++ b/apps/theming/l10n/ka_GE.js
@@ -37,4 +37,4 @@ OC.L10N.register(
"Failed to write file to disk." : "ფაილი დისკზე ვერ ჩაიწერა.",
"A PHP extension stopped the file upload." : "PHP გაფართოებამ შეაჩერა ფაილის ატვირთვა."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/theming/l10n/ka_GE.json b/apps/theming/l10n/ka_GE.json
index 4f9c81895ea..2d9d9480be7 100644
--- a/apps/theming/l10n/ka_GE.json
+++ b/apps/theming/l10n/ka_GE.json
@@ -34,5 +34,5 @@
"The uploaded file was only partially uploaded" : "ფაილი აიტვირთა მხოლოდ ნაწილობრივ",
"Failed to write file to disk." : "ფაილი დისკზე ვერ ჩაიწერა.",
"A PHP extension stopped the file upload." : "PHP გაფართოებამ შეაჩერა ფაილის ატვირთვა."
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/lt_LT.js b/apps/theming/l10n/lt_LT.js
index 4d5bacf2817..7ef208f86db 100644
--- a/apps/theming/l10n/lt_LT.js
+++ b/apps/theming/l10n/lt_LT.js
@@ -42,4 +42,4 @@ OC.L10N.register(
"Failed to write file to disk." : "Nepavyko įrašyti failą į diską.",
"A PHP extension stopped the file upload." : "PHP plėtinys sustabdė failo įkėlimą."
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/theming/l10n/lt_LT.json b/apps/theming/l10n/lt_LT.json
index 2dd75243c9e..37d47827612 100644
--- a/apps/theming/l10n/lt_LT.json
+++ b/apps/theming/l10n/lt_LT.json
@@ -39,5 +39,5 @@
"The uploaded file was only partially uploaded" : "Įkeliamas failas buvo tik dalinai įkeltas",
"Failed to write file to disk." : "Nepavyko įrašyti failą į diską.",
"A PHP extension stopped the file upload." : "PHP plėtinys sustabdė failo įkėlimą."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/sk.js b/apps/theming/l10n/sk.js
index ef0c289d7a3..b3c5b8571a6 100644
--- a/apps/theming/l10n/sk.js
+++ b/apps/theming/l10n/sk.js
@@ -41,4 +41,4 @@ OC.L10N.register(
"Failed to write file to disk." : "Nepodarilo sa zapísať súbor na disk.",
"A PHP extension stopped the file upload." : "rozšírenie PHP zastavilo nahrávanie súboru."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/theming/l10n/sk.json b/apps/theming/l10n/sk.json
index 335ecfcc819..9a087a7c1f7 100644
--- a/apps/theming/l10n/sk.json
+++ b/apps/theming/l10n/sk.json
@@ -38,5 +38,5 @@
"The uploaded file was only partially uploaded" : "Ukladaný súbor sa nahral len čiastočne",
"Failed to write file to disk." : "Nepodarilo sa zapísať súbor na disk.",
"A PHP extension stopped the file upload." : "rozšírenie PHP zastavilo nahrávanie súboru."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php
index 27daf756d48..dd7bf4bb04d 100644
--- a/apps/theming/lib/Controller/ThemingController.php
+++ b/apps/theming/lib/Controller/ThemingController.php
@@ -258,8 +258,9 @@ class ThemingController extends Controller {
}
$target = $folder->newFile($key);
- $supportedFormats = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'text/svg'];
- if (!in_array($image['type'], $supportedFormats)) {
+ $supportedFormats = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/svg'];
+ $detectedMimeType = mime_content_type($image['tmp_name']);
+ if (!in_array($image['type'], $supportedFormats) || !in_array($detectedMimeType, $supportedFormats)) {
return new DataResponse(
[
'data' => [
@@ -363,6 +364,7 @@ class ThemingController extends Controller {
$response->addHeader('Expires', $expires->format(\DateTime::RFC2822));
$response->addHeader('Pragma', 'cache');
$response->addHeader('Content-Type', $this->config->getAppValue($this->appName, $key . 'Mime', ''));
+ $response->addHeader('Content-Disposition', 'attachment; filename="' . $key . '"');
return $response;
}
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index f2f14e44a02..f196541d371 100644
--- a/apps/theming/tests/Controller/ThemingControllerTest.php
+++ b/apps/theming/tests/Controller/ThemingControllerTest.php
@@ -255,7 +255,7 @@ class ThemingControllerTest extends TestCase {
->method('getUploadedFile')
->with('image')
->willReturn([
- 'tmp_name' => 'logo.pdf',
+ 'tmp_name' => __DIR__ . '/../../../../tests/data/lorem.txt',
'type' => 'application/pdf',
'name' => 'logo.pdf',
'error' => 0,
@@ -295,7 +295,7 @@ class ThemingControllerTest extends TestCase {
['image/gif'],
['image/png'],
['image/svg+xml'],
- ['text/svg'],
+ ['image/svg']
];
}
@@ -305,6 +305,7 @@ class ThemingControllerTest extends TestCase {
$destination = \OC::$server->getTempManager()->getTemporaryFolder();
touch($tmpLogo);
+ copy(__DIR__ . '/../../../../tests/data/testimage.png', $tmpLogo);
$this->request
->expects($this->at(0))
->method('getParam')
@@ -377,10 +378,10 @@ class ThemingControllerTest extends TestCase {
/** @dataProvider dataUpdateImages */
public function testUpdateLogoLoginScreenUpload($folderExists) {
- $tmpLogo = \OC::$server->getTempManager()->getTemporaryFolder() . '/logo.svg';
+ $tmpLogo = \OC::$server->getTempManager()->getTemporaryFolder() . 'logo.png';
touch($tmpLogo);
- file_put_contents($tmpLogo, file_get_contents(__DIR__ . '/../../../../tests/data/desktopapp.png'));
+ copy(__DIR__ . '/../../../../tests/data/desktopapp.png', $tmpLogo);
$this->request
->expects($this->at(0))
->method('getParam')
@@ -392,7 +393,7 @@ class ThemingControllerTest extends TestCase {
->with('image')
->willReturn([
'tmp_name' => $tmpLogo,
- 'type' => 'text/svg',
+ 'type' => 'image/svg+xml',
'name' => 'logo.svg',
'error' => 0,
]);
@@ -524,7 +525,7 @@ class ThemingControllerTest extends TestCase {
->with('image')
->willReturn([
'tmp_name' => '',
- 'type' => 'text/svg',
+ 'type' => 'image/svg+xml',
'name' => 'logo.svg',
'error' => $error,
]);
@@ -700,6 +701,7 @@ class ThemingControllerTest extends TestCase {
$expected->addHeader('Expires', $expires->format(\DateTime::RFC2822));
$expected->addHeader('Pragma', 'cache');
$expected->addHeader('Content-Type', 'text/svg');
+ $expected->addHeader('Content-Disposition', 'attachment; filename="logo"');
@$this->assertEquals($expected, $this->themingController->getImage('logo'));
}
@@ -732,6 +734,7 @@ class ThemingControllerTest extends TestCase {
$expected->addHeader('Expires', $expires->format(\DateTime::RFC2822));
$expected->addHeader('Pragma', 'cache');
$expected->addHeader('Content-Type', 'image/png');
+ $expected->addHeader('Content-Disposition', 'attachment; filename="background"');
@$this->assertEquals($expected, $this->themingController->getImage('background'));
}
diff --git a/apps/theming/tests/IconBuilderTest.php b/apps/theming/tests/IconBuilderTest.php
index a2a330a2f24..1b9f204cd9e 100644
--- a/apps/theming/tests/IconBuilderTest.php
+++ b/apps/theming/tests/IconBuilderTest.php
@@ -25,13 +25,11 @@
*/
namespace OCA\Theming\Tests;
+use OC\Files\AppData\AppData;
use OCA\Theming\IconBuilder;
use OCA\Theming\ThemingDefaults;
use OCA\Theming\Util;
use OCP\App\IAppManager;
-use OCP\AppFramework\Http\NotFoundResponse;
-use OCP\Files\IAppData;
-use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\IConfig;
use PHPUnit\Framework\Error\Warning;
@@ -41,7 +39,7 @@ class IconBuilderTest extends TestCase {
/** @var IConfig */
protected $config;
- /** @var IAppData */
+ /** @var AppData */
protected $appData;
/** @var ThemingDefaults */
protected $themingDefaults;
@@ -56,7 +54,7 @@ class IconBuilderTest extends TestCase {
parent::setUp();
$this->config = $this->getMockBuilder(IConfig::class)->getMock();
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
$this->themingDefaults = $this->getMockBuilder('OCA\Theming\ThemingDefaults')
->disableOriginalConstructor()->getMock();
$this->appManager = $this->getMockBuilder('OCP\App\IAppManager')->getMock();
@@ -127,6 +125,10 @@ class IconBuilderTest extends TestCase {
$this->themingDefaults->expects($this->once())
->method('getColorPrimary')
->willReturn($color);
+ $this->appData->expects($this->once())
+ ->method('getFolder')
+ ->with('images')
+ ->willThrowException(new NotFoundException());
$expectedIcon = new \Imagick(realpath(dirname(__FILE__)). "/data/" . $file);
$icon = new \Imagick();
@@ -156,6 +158,10 @@ class IconBuilderTest extends TestCase {
$this->themingDefaults->expects($this->once())
->method('getColorPrimary')
->willReturn($color);
+ $this->appData->expects($this->once())
+ ->method('getFolder')
+ ->with('images')
+ ->willThrowException(new NotFoundException());
$expectedIcon = new \Imagick(realpath(dirname(__FILE__)). "/data/" . $file);
$actualIcon = $this->iconBuilder->getFavicon($app);
diff --git a/apps/twofactor_backupcodes/l10n/cs.js b/apps/twofactor_backupcodes/l10n/cs.js
index 6b8ceac654d..17d62e542f8 100644
--- a/apps/twofactor_backupcodes/l10n/cs.js
+++ b/apps/twofactor_backupcodes/l10n/cs.js
@@ -15,4 +15,4 @@ OC.L10N.register(
"Use backup code" : "Použít záložní kód",
"Second-factor backup codes" : "Dvoufázové záložní kódy"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/twofactor_backupcodes/l10n/cs.json b/apps/twofactor_backupcodes/l10n/cs.json
index c4f01be5418..9c6307d4f94 100644
--- a/apps/twofactor_backupcodes/l10n/cs.json
+++ b/apps/twofactor_backupcodes/l10n/cs.json
@@ -12,5 +12,5 @@
"Backup code" : "Záložní kód",
"Use backup code" : "Použít záložní kód",
"Second-factor backup codes" : "Dvoufázové záložní kódy"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/es_GT.js b/apps/twofactor_backupcodes/l10n/es_GT.js
index 925894cb77d..cfafd50e3a3 100644
--- a/apps/twofactor_backupcodes/l10n/es_GT.js
+++ b/apps/twofactor_backupcodes/l10n/es_GT.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta",
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
+ "Two factor backup codes" : "Códigos de respaldo de dos factores",
"Second-factor backup codes" : "Códigos de respaldo del segundo factor"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/twofactor_backupcodes/l10n/es_GT.json b/apps/twofactor_backupcodes/l10n/es_GT.json
index 3cfd05bcd37..a4ceb78353a 100644
--- a/apps/twofactor_backupcodes/l10n/es_GT.json
+++ b/apps/twofactor_backupcodes/l10n/es_GT.json
@@ -11,6 +11,7 @@
"You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta",
"Backup code" : "Código de respaldo",
"Use backup code" : "Usa el código de respaldo",
+ "Two factor backup codes" : "Códigos de respaldo de dos factores",
"Second-factor backup codes" : "Códigos de respaldo del segundo factor"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/ka_GE.js b/apps/twofactor_backupcodes/l10n/ka_GE.js
index 93de0eaee8f..94f5802e9bb 100644
--- a/apps/twofactor_backupcodes/l10n/ka_GE.js
+++ b/apps/twofactor_backupcodes/l10n/ka_GE.js
@@ -16,4 +16,4 @@ OC.L10N.register(
"Two factor backup codes" : "მეორე-ფაქტორის ბექაფის კოდები",
"Second-factor backup codes" : "მეორე-ფაქტორის ბექაფის კოდები"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/twofactor_backupcodes/l10n/ka_GE.json b/apps/twofactor_backupcodes/l10n/ka_GE.json
index f6c95d674b8..7fc565f633b 100644
--- a/apps/twofactor_backupcodes/l10n/ka_GE.json
+++ b/apps/twofactor_backupcodes/l10n/ka_GE.json
@@ -13,5 +13,5 @@
"Use backup code" : "ბექაფის კოდების გამოყენება",
"Two factor backup codes" : "მეორე-ფაქტორის ბექაფის კოდები",
"Second-factor backup codes" : "მეორე-ფაქტორის ბექაფის კოდები"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/sk.js b/apps/twofactor_backupcodes/l10n/sk.js
index d81158eb5ef..85f0bb884a7 100644
--- a/apps/twofactor_backupcodes/l10n/sk.js
+++ b/apps/twofactor_backupcodes/l10n/sk.js
@@ -15,4 +15,4 @@ OC.L10N.register(
"Use backup code" : "Použiť záložný kód",
"Second-factor backup codes" : "Dvojfaktorové záložné kódy"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/twofactor_backupcodes/l10n/sk.json b/apps/twofactor_backupcodes/l10n/sk.json
index 230cfa62523..4ecb0ac52e6 100644
--- a/apps/twofactor_backupcodes/l10n/sk.json
+++ b/apps/twofactor_backupcodes/l10n/sk.json
@@ -12,5 +12,5 @@
"Backup code" : "Záložný kód",
"Use backup code" : "Použiť záložný kód",
"Second-factor backup codes" : "Dvojfaktorové záložné kódy"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/cs.js b/apps/updatenotification/l10n/cs.js
index f060b245894..f1e1172da2f 100644
--- a/apps/updatenotification/l10n/cs.js
+++ b/apps/updatenotification/l10n/cs.js
@@ -29,4 +29,4 @@ OC.L10N.register(
"The selected update channel makes dedicated notifications for the server obsolete." : "Zvolený kanál aktualizací označuje dedikovaná upozornění pro server za zastaralá.",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Obnovte stránku."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/updatenotification/l10n/cs.json b/apps/updatenotification/l10n/cs.json
index 9226c60df94..7ed8018338e 100644
--- a/apps/updatenotification/l10n/cs.json
+++ b/apps/updatenotification/l10n/cs.json
@@ -26,5 +26,5 @@
"Checked on %s" : "Zkontrolováno %s",
"The selected update channel makes dedicated notifications for the server obsolete." : "Zvolený kanál aktualizací označuje dedikovaná upozornění pro server za zastaralá.",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Obnovte stránku."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/es_GT.js b/apps/updatenotification/l10n/es_GT.js
index c5f27640c95..c09deca12f9 100644
--- a/apps/updatenotification/l10n/es_GT.js
+++ b/apps/updatenotification/l10n/es_GT.js
@@ -2,15 +2,26 @@ OC.L10N.register(
"updatenotification",
{
"{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
+ "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
"Open updater" : "Abrir actualizador",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
"Update channel:" : "Actualizar el canal:",
"You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.",
+ "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
"Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
+ "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
+ "<strong>production</strong> will always provide the latest patch level, but not update to the next major release immediately. That update usually happens with the second minor release (x.0.2)." : "<strong>producción</strong> siempre contará el más reciente nivel de parches, pero no actualizará a la siguiente liberación mayor inmediatamente. Esta actualización siempre sucede en la segunda liberación menor (x.0.2)",
+ "<strong>stable</strong> is the most recent stable version. It is suited for production use and will always update to the latest major version." : "<strong>estable</strong> es la version estable más reciente. Es adecuada para su uso en producción y siempre estará actualizada a la versión mayor más reciente. ",
+ "<strong>beta</strong> is a pre-release version only for testing new features, not for production environments." : "<strong>beta</strong> es una versión de pre-liberación sólo para probar nuevas características, no para ambientes de producción. ",
"Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
@@ -19,7 +30,9 @@ OC.L10N.register(
"Update to %1$s is available." : "La actualización a %1$s está disponible. ",
"Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
+ "Update notification" : "Notificación de actualización",
"A new version is available: %s" : "Una nueva versión está disponible: %s",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
"Download now" : "Descargar ahora",
"Checked on %s" : "Verificado el %s",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
diff --git a/apps/updatenotification/l10n/es_GT.json b/apps/updatenotification/l10n/es_GT.json
index 35a0f910f75..36b78263980 100644
--- a/apps/updatenotification/l10n/es_GT.json
+++ b/apps/updatenotification/l10n/es_GT.json
@@ -1,14 +1,25 @@
{ "translations": {
"{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ",
+ "Apps with available updates" : "Aplicaciones con actualizaciones disponibles",
"Open updater" : "Abrir actualizador",
"Your version is up to date." : "Tu verisón está actualizada.",
"A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:",
"Update channel:" : "Actualizar el canal:",
"You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ",
- "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.",
+ "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces omitimos una versión cuando encontramos detalles.",
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
"Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
+ "A new version is available: <strong>{newVersionString}</strong>" : "Una versión más reciente está disponible: <strong>{newVersionString}</strong>",
+ "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
+ "Checking apps for compatible updates" : "Verificando si las aplicaciones tienen actualizaciones compatibles",
+ "Please make sure your config.php does not set <samp>appstoreenabled</samp> to false." : "Por favor asegurate que en tu config.php no se establezca <samp>appstoreenabled</samp> como falso.",
+ "Could not connect to the appstore or the appstore returned no updates at all. Search manually for updates or make sure your server has access to the internet and can connect to the appstore." : "No fue posible conectarse a la appstore o bien la appstore no regresó ninguna actualización. Busca manualmente o asegurate que tu servidor teng acceso a Internet y pueda conectarse a la appstore. ",
+ "<strong>All</strong> apps have an update for this version available" : "<strong>Todas</strong> las aplicaciones tienen una actualización disponible para esta versión",
+ "_<strong>%n</strong> app has no update for this version available_::_<strong>%n</strong> apps have no update for this version available_" : ["<strong>%n</strong> aplicación no cuenta con una actualización para esta versión","<strong>%n</strong> aplicaciones no cuentan con una actualización para esta versión"],
+ "<strong>production</strong> will always provide the latest patch level, but not update to the next major release immediately. That update usually happens with the second minor release (x.0.2)." : "<strong>producción</strong> siempre contará el más reciente nivel de parches, pero no actualizará a la siguiente liberación mayor inmediatamente. Esta actualización siempre sucede en la segunda liberación menor (x.0.2)",
+ "<strong>stable</strong> is the most recent stable version. It is suited for production use and will always update to the latest major version." : "<strong>estable</strong> es la version estable más reciente. Es adecuada para su uso en producción y siempre estará actualizada a la versión mayor más reciente. ",
+ "<strong>beta</strong> is a pre-release version only for testing new features, not for production environments." : "<strong>beta</strong> es una versión de pre-liberación sólo para probar nuevas características, no para ambientes de producción. ",
"Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
@@ -17,7 +28,9 @@
"Update to %1$s is available." : "La actualización a %1$s está disponible. ",
"Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.",
"Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.",
+ "Update notification" : "Notificación de actualización",
"A new version is available: %s" : "Una nueva versión está disponible: %s",
+ "The version you are running is not maintained anymore. Please make sure to update to a supported version as soon as possible." : "La versión que estas corriendo ya no cuenta con mantenimiento. Por favor asegurate de actualizar a una versión soportada lo antes posible. ",
"Download now" : "Descargar ahora",
"Checked on %s" : "Verificado el %s",
"The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ",
diff --git a/apps/updatenotification/l10n/ka_GE.js b/apps/updatenotification/l10n/ka_GE.js
index 5f4d40c1227..6f5dc6e111e 100644
--- a/apps/updatenotification/l10n/ka_GE.js
+++ b/apps/updatenotification/l10n/ka_GE.js
@@ -27,4 +27,4 @@ OC.L10N.register(
"The selected update channel makes dedicated notifications for the server obsolete." : "არჩეული განახლების არხი მოძველებული სერვერის შესახებ საჭიროებს გამოყოფილ შეტყობინებებს.",
"The update check is not yet finished. Please refresh the page." : "განახლება ჯერ არ დასრულებულა. გთხოვთ განაახლოთ გვერდი."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/updatenotification/l10n/ka_GE.json b/apps/updatenotification/l10n/ka_GE.json
index 3ccf4e2a5a8..a8a46923c31 100644
--- a/apps/updatenotification/l10n/ka_GE.json
+++ b/apps/updatenotification/l10n/ka_GE.json
@@ -24,5 +24,5 @@
"Checked on %s" : "შემოწმდა %s-ზე",
"The selected update channel makes dedicated notifications for the server obsolete." : "არჩეული განახლების არხი მოძველებული სერვერის შესახებ საჭიროებს გამოყოფილ შეტყობინებებს.",
"The update check is not yet finished. Please refresh the page." : "განახლება ჯერ არ დასრულებულა. გთხოვთ განაახლოთ გვერდი."
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/lt_LT.js b/apps/updatenotification/l10n/lt_LT.js
index d644525946a..ec5af957e4b 100644
--- a/apps/updatenotification/l10n/lt_LT.js
+++ b/apps/updatenotification/l10n/lt_LT.js
@@ -24,4 +24,4 @@ OC.L10N.register(
"Checked on %s" : "Tikrinta %s",
"The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo."
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/updatenotification/l10n/lt_LT.json b/apps/updatenotification/l10n/lt_LT.json
index 1ab530e1093..7c43922b62e 100644
--- a/apps/updatenotification/l10n/lt_LT.json
+++ b/apps/updatenotification/l10n/lt_LT.json
@@ -21,5 +21,5 @@
"Download now" : "Atsisiųsti dabar",
"Checked on %s" : "Tikrinta %s",
"The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/sk.js b/apps/updatenotification/l10n/sk.js
index b6e93e41e01..b3575a143f9 100644
--- a/apps/updatenotification/l10n/sk.js
+++ b/apps/updatenotification/l10n/sk.js
@@ -28,4 +28,4 @@ OC.L10N.register(
"The selected update channel makes dedicated notifications for the server obsolete." : "Pre vybraný aktualizačný kanál budú priradené upozornenia pre server zastarané.",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizácií ešte neskončila. Obnovte prosím stránku."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/updatenotification/l10n/sk.json b/apps/updatenotification/l10n/sk.json
index b3537282c72..495f71e4c9f 100644
--- a/apps/updatenotification/l10n/sk.json
+++ b/apps/updatenotification/l10n/sk.json
@@ -25,5 +25,5 @@
"Checked on %s" : "Skontrolované %s",
"The selected update channel makes dedicated notifications for the server obsolete." : "Pre vybraný aktualizačný kanál budú priradené upozornenia pre server zastarané.",
"The update check is not yet finished. Please refresh the page." : "Kontrola aktualizácií ešte neskončila. Obnovte prosím stránku."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/user_ldap/css/renewPassword.css b/apps/user_ldap/css/renewPassword.css
index 03fe2bccd88..7493789eab0 100644
--- a/apps/user_ldap/css/renewPassword.css
+++ b/apps/user_ldap/css/renewPassword.css
@@ -1,6 +1,6 @@
#personal-show + label {
- left: 222px !important;
- margin-top: 3px !important;
+ left: 236px !important;
+ margin-top: 17px !important;
}
#renewpassword .strengthify-wrapper {
@@ -19,7 +19,126 @@
background-color: transparent;
}
-input.primary,
-button.primary {
- background-color: #00a2e9 !important;
+.tooltip {
+ position:absolute;
+ display:block;
+ font-family:'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif;
+ font-style:normal;
+ font-weight:400;
+ letter-spacing:normal;
+ line-break:auto;
+ line-height:1.6;
+ text-align:left;
+ text-align:start;
+ text-decoration:none;
+ text-shadow:none;
+ text-transform:none;
+ white-space:normal;
+ word-break:normal;
+ word-spacing:normal;
+ word-wrap:normal;
+ font-size:12px;
+ opacity:0;
+ z-index:100000;
+ filter:drop-shadow(0 1px 10px rgba(77, 77, 77, 0.75));
+}
+
+.tooltip.in {
+ opacity:1
+}
+
+.tooltip.top {
+ margin-top:-3px;
+ padding:10px 0
+}
+
+.tooltip.bottom {
+ margin-top:3px;
+ padding:10px 0
+}
+
+.tooltip.right {
+ margin-left:3px;
+ padding:0 10px
+}
+
+.tooltip.right .tooltip-arrow {
+ top:50%;
+ left:0;
+ margin-top:-10px;
+ border-width:10px 10px 10px 0;
+ border-right-color:#fff
+}
+
+.tooltip.left {
+ margin-left:-3px;
+ padding:0 5px
+}
+
+.tooltip.left .tooltip-arrow {
+ top:50%;
+ right:0;
+ margin-top:-10px;
+ border-width:10px 0 10px 10px;
+ border-left-color:#fff
+}
+
+.tooltip.top .tooltip-arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow {
+ bottom:0;
+ border-width:10px 10px 0;
+ border-top-color:#fff
+}
+
+.tooltip.top .tooltip-arrow {
+ left:50%;
+ margin-left:-10px
+}
+
+.tooltip.top-left .tooltip-arrow {
+ right:10px;
+ margin-bottom:-10px
+}
+
+.tooltip.top-right .tooltip-arrow {
+ left:10px;
+ margin-bottom:-10px
+}
+
+.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow {
+ top:0;
+ border-width:0 10px 10px;
+ border-bottom-color:#fff
+}
+
+.tooltip.bottom .tooltip-arrow {
+ left:50%;
+ margin-left:-10px
+}
+
+.tooltip.bottom-left .tooltip-arrow {
+ right:10px;
+ margin-top:-10px
+}
+
+.tooltip.bottom-right .tooltip-arrow {
+ left:10px;
+ margin-top:-10px
+}
+
+.tooltip-inner {
+ max-width:350px;
+ padding:5px 8px !important;
+ background-color:#fff;
+ color:#000 !important;
+ text-align:center !important;
+ font-weight:normal !important;
+ border-radius:3px
+}
+
+.tooltip-arrow {
+ position:absolute;
+ width:0;
+ height:0;
+ border-color:transparent;
+ border-style:solid
}
diff --git a/apps/user_ldap/l10n/ca.js b/apps/user_ldap/l10n/ca.js
index 4e6444f79ff..43b84360f07 100644
--- a/apps/user_ldap/l10n/ca.js
+++ b/apps/user_ldap/l10n/ca.js
@@ -74,7 +74,9 @@ OC.L10N.register(
"Edit LDAP Query" : "Editeu la consulta LDAP",
"LDAP Filter:" : "Filtre LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "El filtre especifica quins grups LDAP haurien de tenir accés a la instància %s.",
+ "Verify settings and count the groups" : "Comprova la configuració i compta els grups",
"Other Attributes:" : "Altres atributs:",
+ "Verify settings" : "Comprova la configuració",
"1. Server" : "1. Servidor",
"%s. Server:" : "%s. Servidor:",
"Delete the current configuration" : "Esborra la configuració actual",
@@ -109,7 +111,7 @@ OC.L10N.register(
"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." : "No es recomana, useu-ho només com a prova! Importeu el certificat SSL del servidor LDAP al servidor %s només si la connexió funciona amb aquesta opció.",
"Cache Time-To-Live" : "Memòria cau Time-To-Live",
"in seconds. A change empties the cache." : "en segons. Un canvi buidarà la memòria cau.",
- "Directory Settings" : "Arranjaments de carpetes",
+ "Directory Settings" : "Configuracio de carpetes",
"User Display Name Field" : "Camp per mostrar el nom d'usuari",
"The LDAP attribute to use to generate the user's display name." : "Atribut LDAP a usar per generar el nom a mostrar de l'usuari.",
"Base User Tree" : "Arbre base d'usuaris",
diff --git a/apps/user_ldap/l10n/ca.json b/apps/user_ldap/l10n/ca.json
index 8678aeae7c8..3397e5ef871 100644
--- a/apps/user_ldap/l10n/ca.json
+++ b/apps/user_ldap/l10n/ca.json
@@ -72,7 +72,9 @@
"Edit LDAP Query" : "Editeu la consulta LDAP",
"LDAP Filter:" : "Filtre LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "El filtre especifica quins grups LDAP haurien de tenir accés a la instància %s.",
+ "Verify settings and count the groups" : "Comprova la configuració i compta els grups",
"Other Attributes:" : "Altres atributs:",
+ "Verify settings" : "Comprova la configuració",
"1. Server" : "1. Servidor",
"%s. Server:" : "%s. Servidor:",
"Delete the current configuration" : "Esborra la configuració actual",
@@ -107,7 +109,7 @@
"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." : "No es recomana, useu-ho només com a prova! Importeu el certificat SSL del servidor LDAP al servidor %s només si la connexió funciona amb aquesta opció.",
"Cache Time-To-Live" : "Memòria cau Time-To-Live",
"in seconds. A change empties the cache." : "en segons. Un canvi buidarà la memòria cau.",
- "Directory Settings" : "Arranjaments de carpetes",
+ "Directory Settings" : "Configuracio de carpetes",
"User Display Name Field" : "Camp per mostrar el nom d'usuari",
"The LDAP attribute to use to generate the user's display name." : "Atribut LDAP a usar per generar el nom a mostrar de l'usuari.",
"Base User Tree" : "Arbre base d'usuaris",
diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js
index 09307c37f14..de915ead291 100644
--- a/apps/user_ldap/l10n/cs.js
+++ b/apps/user_ldap/l10n/cs.js
@@ -57,10 +57,10 @@ OC.L10N.register(
"Please login with the new password" : "Prosím, přihlaste se pomocí nového hesla",
"Your password will expire tomorrow." : "Vaše heslo zítra vyprší.",
"Your password will expire today." : "Vaše heslo dnes vyprší.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo vyprší za %n den.","Vaše heslo vyprší za %n dny.","Vaše heslo vyprší za %n dní."],
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo vyprší za %n den.","Vaše heslo vyprší za %n dny.","Vaše heslo vyprší za %n dní.","Vaše heslo vyprší za %n dní."],
"LDAP / AD integration" : "LDAP / AD propojení",
- "_%s group found_::_%s groups found_" : ["nalezena %s skupina","nalezeny %s skupiny","nalezeno %s skupin"],
- "_%s user found_::_%s users found_" : ["nalezen %s uživatel","nalezeni %s uživatelé","nalezeno %s uživatelů"],
+ "_%s group found_::_%s groups found_" : ["nalezena %s skupina","nalezeny %s skupiny","nalezeno %s skupin","nalezeno %s skupin"],
+ "_%s user found_::_%s users found_" : ["nalezen %s uživatel","nalezeni %s uživatelé","nalezeno %s uživatelů","nalezeno %s uživatelů"],
"Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Nelze detekovat atribut pro zobrazení jména uživatele. Upřesněte ho prosím sami v rozšířeném nastavení LDAP.",
"Could not find the desired feature" : "Nelze nalézt požadovanou vlastnost",
"Invalid Host" : "Neplatný hostitel",
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Aktuální heslo",
"New password" : "Žádné heslo",
"Renew password" : "Obnovit heslo",
- "Wrong password. Reset it?" : "Chybné heslo. Resetovat?",
"Wrong password." : "Chybné heslo.",
"Cancel" : "Zrušit",
"Server" : "Server",
@@ -186,8 +185,9 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu",
"Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu",
" entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN",
+ "Wrong password. Reset it?" : "Chybné heslo. Resetovat?",
"LDAP" : "LDAP",
"<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>Varování:</b> Aplikace user_ldap a user_webdavauth jsou vzájemně nekompatibilní. Můžete zaznamenat neočekávané chování. Požádejte prosím svého správce systému o zakázání jedné z nich.",
"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." : "Uživatelská jména jsou používána pro uchovávání a přiřazování (meta)dat. Pro správnou identifikaci a rozpoznání uživatelů bude mít každý LDAP uživatel interní uživatelské jméno. To vyžaduje mapování uživatelských jmen na uživatele LDAP. Vytvořené uživatelské jméno je mapováno na UUID uživatele v LDAP. DN informace je navíc udržována v paměti pro snížení interakce s LDAP, ale není používána pro identifikaci. Pokud se DN změní, bude to správně rozpoznáno. Interní uživatelské jméno se používá celé. Vyčištění mapování zanechá zbytky všude. Vyčištění navíc není specifické pro každou konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, ale pouze v testovací nebo experimentální fázi."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json
index 2fe6368681d..d5f5f338224 100644
--- a/apps/user_ldap/l10n/cs.json
+++ b/apps/user_ldap/l10n/cs.json
@@ -55,10 +55,10 @@
"Please login with the new password" : "Prosím, přihlaste se pomocí nového hesla",
"Your password will expire tomorrow." : "Vaše heslo zítra vyprší.",
"Your password will expire today." : "Vaše heslo dnes vyprší.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo vyprší za %n den.","Vaše heslo vyprší za %n dny.","Vaše heslo vyprší za %n dní."],
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo vyprší za %n den.","Vaše heslo vyprší za %n dny.","Vaše heslo vyprší za %n dní.","Vaše heslo vyprší za %n dní."],
"LDAP / AD integration" : "LDAP / AD propojení",
- "_%s group found_::_%s groups found_" : ["nalezena %s skupina","nalezeny %s skupiny","nalezeno %s skupin"],
- "_%s user found_::_%s users found_" : ["nalezen %s uživatel","nalezeni %s uživatelé","nalezeno %s uživatelů"],
+ "_%s group found_::_%s groups found_" : ["nalezena %s skupina","nalezeny %s skupiny","nalezeno %s skupin","nalezeno %s skupin"],
+ "_%s user found_::_%s users found_" : ["nalezen %s uživatel","nalezeni %s uživatelé","nalezeno %s uživatelů","nalezeno %s uživatelů"],
"Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Nelze detekovat atribut pro zobrazení jména uživatele. Upřesněte ho prosím sami v rozšířeném nastavení LDAP.",
"Could not find the desired feature" : "Nelze nalézt požadovanou vlastnost",
"Invalid Host" : "Neplatný hostitel",
@@ -116,7 +116,6 @@
"Current password" : "Aktuální heslo",
"New password" : "Žádné heslo",
"Renew password" : "Obnovit heslo",
- "Wrong password. Reset it?" : "Chybné heslo. Resetovat?",
"Wrong password." : "Chybné heslo.",
"Cancel" : "Zrušit",
"Server" : "Server",
@@ -184,8 +183,9 @@
"Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu",
"Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu",
" entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN",
+ "Wrong password. Reset it?" : "Chybné heslo. Resetovat?",
"LDAP" : "LDAP",
"<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>Varování:</b> Aplikace user_ldap a user_webdavauth jsou vzájemně nekompatibilní. Můžete zaznamenat neočekávané chování. Požádejte prosím svého správce systému o zakázání jedné z nich.",
"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." : "Uživatelská jména jsou používána pro uchovávání a přiřazování (meta)dat. Pro správnou identifikaci a rozpoznání uživatelů bude mít každý LDAP uživatel interní uživatelské jméno. To vyžaduje mapování uživatelských jmen na uživatele LDAP. Vytvořené uživatelské jméno je mapováno na UUID uživatele v LDAP. DN informace je navíc udržována v paměti pro snížení interakce s LDAP, ale není používána pro identifikaci. Pokud se DN změní, bude to správně rozpoznáno. Interní uživatelské jméno se používá celé. Vyčištění mapování zanechá zbytky všude. Vyčištění navíc není specifické pro každou konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, ale pouze v testovací nebo experimentální fázi."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js
index 012faf64a51..6d72da68004 100644
--- a/apps/user_ldap/l10n/da.js
+++ b/apps/user_ldap/l10n/da.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Nuværende password",
"New password" : "Nyt password",
"Renew password" : "Forny venligst password",
- "Wrong password. Reset it?" : "Forkert password.\nSkal det nulstilles?",
"Wrong password." : "Forkert password.",
"Cancel" : "Annullér",
"Server" : "Server",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Ryd kortlægning mellem brugernavn og LDAP-bruger",
"Clear Groupname-LDAP Group Mapping" : "Ryd kortlægning mellem gruppenavn og LDAP-gruppe",
" entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.",
+ "Wrong password. Reset it?" : "Forkert password.\nSkal det nulstilles?",
"LDAP" : "LDAP",
"<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.",
"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." : "Brugernavne bruges til at lagre og tildele (meta)data. For at kunne identificere og genkende brugere præcist, så vil hver LDAP-bruger have et internt brugernavn. Det oprettede brugernavn kortlægges til UUID'et for LDAP-brugeren. I tillæg mellemlagres DN'et for at mindske LDAP-interaktioner, men det benyttes ikke til identifikation. Hvis DN'et ændres, så vil ændringerne blive registreret. Det interne brugernavn anvendes overalt. Hvis kortlægningerne ryddes, så vil der være rester overalt. Rydning af kortlægningerne er ikke konfigurationssensitivt - det påvirker alle LDAP-konfigurationer! Ryd aldrig kortlægningerne i et produktionsmiljø, kun i et teststadie eller eksperimentelt stadie."
diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json
index a63c58a97f4..ab981ea1e50 100644
--- a/apps/user_ldap/l10n/da.json
+++ b/apps/user_ldap/l10n/da.json
@@ -116,7 +116,6 @@
"Current password" : "Nuværende password",
"New password" : "Nyt password",
"Renew password" : "Forny venligst password",
- "Wrong password. Reset it?" : "Forkert password.\nSkal det nulstilles?",
"Wrong password." : "Forkert password.",
"Cancel" : "Annullér",
"Server" : "Server",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Ryd kortlægning mellem brugernavn og LDAP-bruger",
"Clear Groupname-LDAP Group Mapping" : "Ryd kortlægning mellem gruppenavn og LDAP-gruppe",
" entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.",
+ "Wrong password. Reset it?" : "Forkert password.\nSkal det nulstilles?",
"LDAP" : "LDAP",
"<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.",
"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." : "Brugernavne bruges til at lagre og tildele (meta)data. For at kunne identificere og genkende brugere præcist, så vil hver LDAP-bruger have et internt brugernavn. Det oprettede brugernavn kortlægges til UUID'et for LDAP-brugeren. I tillæg mellemlagres DN'et for at mindske LDAP-interaktioner, men det benyttes ikke til identifikation. Hvis DN'et ændres, så vil ændringerne blive registreret. Det interne brugernavn anvendes overalt. Hvis kortlægningerne ryddes, så vil der være rester overalt. Rydning af kortlægningerne er ikke konfigurationssensitivt - det påvirker alle LDAP-konfigurationer! Ryd aldrig kortlægningerne i et produktionsmiljø, kun i et teststadie eller eksperimentelt stadie."
diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js
index fae34127e5a..81fc7b1d9ec 100644
--- a/apps/user_ldap/l10n/de.js
+++ b/apps/user_ldap/l10n/de.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Renew password" : "Bitte erneuere Dein Passwort",
- "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"Wrong password." : "Falsches Passwort.",
"Cancel" : "Abbrechen",
"Server" : "Server",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung löschen",
"Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen",
" entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar",
+ "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"LDAP" : "LDAP",
"<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>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktiere deinen Systemadministator und bitte ihn um die Deaktivierung einer der beiden Anwendungen.",
"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." : "Die Benutzernamen werden genutzt, um (Meta-)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung."
diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json
index 77dc6c56bca..c0f2d839d46 100644
--- a/apps/user_ldap/l10n/de.json
+++ b/apps/user_ldap/l10n/de.json
@@ -117,7 +117,6 @@
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Renew password" : "Bitte erneuere Dein Passwort",
- "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"Wrong password." : "Falsches Passwort.",
"Cancel" : "Abbrechen",
"Server" : "Server",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung löschen",
"Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen",
" entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar",
+ "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"LDAP" : "LDAP",
"<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>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktiere deinen Systemadministator und bitte ihn um die Deaktivierung einer der beiden Anwendungen.",
"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." : "Die Benutzernamen werden genutzt, um (Meta-)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung."
diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js
index 2f2ea022d85..b9131d588e0 100644
--- a/apps/user_ldap/l10n/de_DE.js
+++ b/apps/user_ldap/l10n/de_DE.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Renew password" : "Bitte erneuern Sie Ihr Passwort",
- "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"Wrong password." : "Falsches Passwort.",
"Cancel" : "Abbrechen",
"Server" : "Server",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Lösche LDAP-Benutzernamenzuordnung",
"Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung",
" entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar",
+ "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"LDAP" : "LDAP",
"<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>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktieren Sie Ihren Systemadministator und bitten Sie um die Deaktivierung einer der beiden Anwendungen.",
"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." : "Benutzernamen dienen zum Speichern und Zuweisen von (Meta-)Daten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung."
diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json
index 489d09adadb..4c3ccbe3460 100644
--- a/apps/user_ldap/l10n/de_DE.json
+++ b/apps/user_ldap/l10n/de_DE.json
@@ -117,7 +117,6 @@
"Current password" : "Aktuelles Passwort",
"New password" : "Neues Passwort",
"Renew password" : "Bitte erneuern Sie Ihr Passwort",
- "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"Wrong password." : "Falsches Passwort.",
"Cancel" : "Abbrechen",
"Server" : "Server",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Lösche LDAP-Benutzernamenzuordnung",
"Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung",
" entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar",
+ "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?",
"LDAP" : "LDAP",
"<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>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktieren Sie Ihren Systemadministator und bitten Sie um die Deaktivierung einer der beiden Anwendungen.",
"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." : "Benutzernamen dienen zum Speichern und Zuweisen von (Meta-)Daten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung."
diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js
index e7ba28f6bde..f695d503a4c 100644
--- a/apps/user_ldap/l10n/el.js
+++ b/apps/user_ldap/l10n/el.js
@@ -108,7 +108,6 @@ OC.L10N.register(
"Current password" : "Τρέχον συνθηματικό",
"New password" : "Νέο συνθηματικό",
"Renew password" : "Ανανέωση συνθηματικού",
- "Wrong password. Reset it?" : "Λάθος συνθηματικο. Επαναφορά;",
"Wrong password." : "Εσφαλμένο συνθηματικό.",
"Cancel" : "Ακύρωση",
"Server" : "Διακομιστής",
@@ -164,6 +163,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη",
"Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας",
" entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ",
+ "Wrong password. Reset it?" : "Λάθος συνθηματικο. Επαναφορά;",
"LDAP" : "LDAP",
"<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 είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και τον προσδιορισμό των (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωριστούν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκαν αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα εντοπιστούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο."
diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json
index b6cbc202f1a..299a475f9e1 100644
--- a/apps/user_ldap/l10n/el.json
+++ b/apps/user_ldap/l10n/el.json
@@ -106,7 +106,6 @@
"Current password" : "Τρέχον συνθηματικό",
"New password" : "Νέο συνθηματικό",
"Renew password" : "Ανανέωση συνθηματικού",
- "Wrong password. Reset it?" : "Λάθος συνθηματικο. Επαναφορά;",
"Wrong password." : "Εσφαλμένο συνθηματικό.",
"Cancel" : "Ακύρωση",
"Server" : "Διακομιστής",
@@ -162,6 +161,7 @@
"Clear Username-LDAP User Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη",
"Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας",
" entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ",
+ "Wrong password. Reset it?" : "Λάθος συνθηματικο. Επαναφορά;",
"LDAP" : "LDAP",
"<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 είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και τον προσδιορισμό των (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωριστούν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκαν αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα εντοπιστούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο."
diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js
index 523a6bf3f68..0b75790da2a 100644
--- a/apps/user_ldap/l10n/en_GB.js
+++ b/apps/user_ldap/l10n/en_GB.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Current password",
"New password" : "New password",
"Renew password" : "Renew password",
- "Wrong password. Reset it?" : "Wrong password. Reset it?",
"Wrong password." : "Wrong password.",
"Cancel" : "Cancel",
"Server" : "Server",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Clear Username-LDAP User Mapping",
"Clear Groupname-LDAP Group Mapping" : "Clear Groupname-LDAP Group Mapping",
" entries available within the provided Base DN" : " entries available within the provided Base DN",
+ "Wrong password. Reset it?" : "Wrong password. Reset it?",
"LDAP" : "LDAP",
"<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>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.",
"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." : "Usernames are used to store and assign (meta) data. In order to precisely identify and recognise 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."
diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json
index 3e2558b35c7..35ca2857a50 100644
--- a/apps/user_ldap/l10n/en_GB.json
+++ b/apps/user_ldap/l10n/en_GB.json
@@ -117,7 +117,6 @@
"Current password" : "Current password",
"New password" : "New password",
"Renew password" : "Renew password",
- "Wrong password. Reset it?" : "Wrong password. Reset it?",
"Wrong password." : "Wrong password.",
"Cancel" : "Cancel",
"Server" : "Server",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Clear Username-LDAP User Mapping",
"Clear Groupname-LDAP Group Mapping" : "Clear Groupname-LDAP Group Mapping",
" entries available within the provided Base DN" : " entries available within the provided Base DN",
+ "Wrong password. Reset it?" : "Wrong password. Reset it?",
"LDAP" : "LDAP",
"<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>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.",
"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." : "Usernames are used to store and assign (meta) data. In order to precisely identify and recognise 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."
diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js
index c72d9de66b9..4e6825c7206 100644
--- a/apps/user_ldap/l10n/es.js
+++ b/apps/user_ldap/l10n/es.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña errónea. ¿Resetearla?",
"Wrong password." : "Contraseña errónea.",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar la asignación de los Nombres de usuario de los usuarios LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP",
" entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista",
+ "Wrong password. Reset it?" : "Contraseña errónea. ¿Resetearla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pídale a su administrador del sistema que desactive uno de ellos.",
"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." : "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental."
diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json
index 3779614d9b2..8b807abb5d5 100644
--- a/apps/user_ldap/l10n/es.json
+++ b/apps/user_ldap/l10n/es.json
@@ -117,7 +117,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña errónea. ¿Resetearla?",
"Wrong password." : "Contraseña errónea.",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Borrar la asignación de los Nombres de usuario de los usuarios LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP",
" entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista",
+ "Wrong password. Reset it?" : "Contraseña errónea. ¿Resetearla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pídale a su administrador del sistema que desactive uno de ellos.",
"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." : "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental."
diff --git a/apps/user_ldap/l10n/es_419.js b/apps/user_ldap/l10n/es_419.js
index ab83878f042..9078bc2d9f7 100644
--- a/apps/user_ldap/l10n/es_419.js
+++ b/apps/user_ldap/l10n/es_419.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_419.json b/apps/user_ldap/l10n/es_419.json
index e00c0738526..019e7a4ae98 100644
--- a/apps/user_ldap/l10n/es_419.json
+++ b/apps/user_ldap/l10n/es_419.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_AR.js b/apps/user_ldap/l10n/es_AR.js
index cfddd809572..89f3f1ab5e4 100644
--- a/apps/user_ldap/l10n/es_AR.js
+++ b/apps/user_ldap/l10n/es_AR.js
@@ -106,7 +106,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Desea restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -174,6 +173,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Nombres de usuario a los Usuarios LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos de LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Desea restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Usted puede expermientar comportamientos inesperados. Favor de solicitar a su administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los nombres de usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Nombre de usuario interno. Esto requiere un mapeo del Nombre de usuario al usuario LDAP. El nombre de usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Nombre del usuario interno se usa en todos lados. Limpiar los mapeos dejará sobras en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borre las configuraciones en el ambiente de producción, sólo hágalo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_AR.json b/apps/user_ldap/l10n/es_AR.json
index 6a8e7acb79d..3337ef175a6 100644
--- a/apps/user_ldap/l10n/es_AR.json
+++ b/apps/user_ldap/l10n/es_AR.json
@@ -104,7 +104,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Desea restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -172,6 +171,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Nombres de usuario a los Usuarios LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos de LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Desea restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Usted puede expermientar comportamientos inesperados. Favor de solicitar a su administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los nombres de usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Nombre de usuario interno. Esto requiere un mapeo del Nombre de usuario al usuario LDAP. El nombre de usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Nombre del usuario interno se usa en todos lados. Limpiar los mapeos dejará sobras en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borre las configuraciones en el ambiente de producción, sólo hágalo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_CL.js b/apps/user_ldap/l10n/es_CL.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_CL.js
+++ b/apps/user_ldap/l10n/es_CL.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_CL.json b/apps/user_ldap/l10n/es_CL.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_CL.json
+++ b/apps/user_ldap/l10n/es_CL.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_CO.js b/apps/user_ldap/l10n/es_CO.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_CO.js
+++ b/apps/user_ldap/l10n/es_CO.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_CO.json b/apps/user_ldap/l10n/es_CO.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_CO.json
+++ b/apps/user_ldap/l10n/es_CO.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_CR.js b/apps/user_ldap/l10n/es_CR.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_CR.js
+++ b/apps/user_ldap/l10n/es_CR.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_CR.json b/apps/user_ldap/l10n/es_CR.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_CR.json
+++ b/apps/user_ldap/l10n/es_CR.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_DO.js b/apps/user_ldap/l10n/es_DO.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_DO.js
+++ b/apps/user_ldap/l10n/es_DO.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_DO.json b/apps/user_ldap/l10n/es_DO.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_DO.json
+++ b/apps/user_ldap/l10n/es_DO.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_EC.js b/apps/user_ldap/l10n/es_EC.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_EC.js
+++ b/apps/user_ldap/l10n/es_EC.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_EC.json b/apps/user_ldap/l10n/es_EC.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_EC.json
+++ b/apps/user_ldap/l10n/es_EC.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_GT.js b/apps/user_ldap/l10n/es_GT.js
index f07057218d0..43b8b6f03aa 100644
--- a/apps/user_ldap/l10n/es_GT.js
+++ b/apps/user_ldap/l10n/es_GT.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.",
"More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} registro disponible dentro del DN base proporcionado","{objectsFound} registros disponibles dentro del DN base proporcionado"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar el borrado",
@@ -118,7 +119,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -141,7 +141,7 @@ OC.L10N.register(
"Cache Time-To-Live" : "Tiempo de vida del caché",
"in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.",
"Directory Settings" : "Configuraciones del directorio",
- "User Display Name Field" : "Campo de Usuario a desplegar",
+ "User Display Name Field" : "Campo de Nombre a Desplegar del Usuario",
"The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.",
"2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario",
"Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.",
@@ -183,9 +183,11 @@ OC.L10N.register(
"UUID Attribute for Users:" : "Atributo UUID para Usuarios:",
"UUID Attribute for Groups:" : "Atributo UUID para Grupos:",
"Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP",
+ "Usernames are used to store and assign metadata. 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." : "Los nombres de usuarios son usados para almacenar y asignar metadatos. Para poder identificar y reconocer usuarios con precisión, cada usuario LDAP tendrá un nombre de usuario interno. Esto requiere una correspondencia de nombre de usuario a usuario LDAP. El nombre de usuario creado tiene una correspondencia al UUID del usuario LDAP. Adicionalmente, también se manda a cache el DN para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, los cambios serán encontrados. El nombre de usuario interno se usa intensivamente. Limpiar las correspondencias dejará restos en muhcos logares. ¡Limpiar las correspondencias no es sensitivo a la configuración, afecta a todas las configuraciones LDAP! Nunca limpies las correspondencias en un ambiente de producción, solo hazlo en los ambientes de pruebas o experimentación.",
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_GT.json b/apps/user_ldap/l10n/es_GT.json
index 9ced23a2f01..33185152d2c 100644
--- a/apps/user_ldap/l10n/es_GT.json
+++ b/apps/user_ldap/l10n/es_GT.json
@@ -31,6 +31,7 @@
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.",
"More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ",
+ "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} registro disponible dentro del DN base proporcionado","{objectsFound} registros disponibles dentro del DN base proporcionado"],
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar el borrado",
@@ -116,7 +117,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -139,7 +139,7 @@
"Cache Time-To-Live" : "Tiempo de vida del caché",
"in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.",
"Directory Settings" : "Configuraciones del directorio",
- "User Display Name Field" : "Campo de Usuario a desplegar",
+ "User Display Name Field" : "Campo de Nombre a Desplegar del Usuario",
"The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.",
"2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario",
"Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.",
@@ -181,9 +181,11 @@
"UUID Attribute for Users:" : "Atributo UUID para Usuarios:",
"UUID Attribute for Groups:" : "Atributo UUID para Grupos:",
"Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP",
+ "Usernames are used to store and assign metadata. 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." : "Los nombres de usuarios son usados para almacenar y asignar metadatos. Para poder identificar y reconocer usuarios con precisión, cada usuario LDAP tendrá un nombre de usuario interno. Esto requiere una correspondencia de nombre de usuario a usuario LDAP. El nombre de usuario creado tiene una correspondencia al UUID del usuario LDAP. Adicionalmente, también se manda a cache el DN para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, los cambios serán encontrados. El nombre de usuario interno se usa intensivamente. Limpiar las correspondencias dejará restos en muhcos logares. ¡Limpiar las correspondencias no es sensitivo a la configuración, afecta a todas las configuraciones LDAP! Nunca limpies las correspondencias en un ambiente de producción, solo hazlo en los ambientes de pruebas o experimentación.",
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_HN.js b/apps/user_ldap/l10n/es_HN.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_HN.js
+++ b/apps/user_ldap/l10n/es_HN.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_HN.json b/apps/user_ldap/l10n/es_HN.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_HN.json
+++ b/apps/user_ldap/l10n/es_HN.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_MX.js b/apps/user_ldap/l10n/es_MX.js
index d8f2003877d..43b8b6f03aa 100644
--- a/apps/user_ldap/l10n/es_MX.js
+++ b/apps/user_ldap/l10n/es_MX.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_MX.json b/apps/user_ldap/l10n/es_MX.json
index 86a41686306..33185152d2c 100644
--- a/apps/user_ldap/l10n/es_MX.json
+++ b/apps/user_ldap/l10n/es_MX.json
@@ -117,7 +117,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_NI.js b/apps/user_ldap/l10n/es_NI.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_NI.js
+++ b/apps/user_ldap/l10n/es_NI.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_NI.json b/apps/user_ldap/l10n/es_NI.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_NI.json
+++ b/apps/user_ldap/l10n/es_NI.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PA.js b/apps/user_ldap/l10n/es_PA.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_PA.js
+++ b/apps/user_ldap/l10n/es_PA.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PA.json b/apps/user_ldap/l10n/es_PA.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_PA.json
+++ b/apps/user_ldap/l10n/es_PA.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PE.js b/apps/user_ldap/l10n/es_PE.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_PE.js
+++ b/apps/user_ldap/l10n/es_PE.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PE.json b/apps/user_ldap/l10n/es_PE.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_PE.json
+++ b/apps/user_ldap/l10n/es_PE.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PR.js b/apps/user_ldap/l10n/es_PR.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_PR.js
+++ b/apps/user_ldap/l10n/es_PR.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PR.json b/apps/user_ldap/l10n/es_PR.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_PR.json
+++ b/apps/user_ldap/l10n/es_PR.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PY.js b/apps/user_ldap/l10n/es_PY.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_PY.js
+++ b/apps/user_ldap/l10n/es_PY.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_PY.json b/apps/user_ldap/l10n/es_PY.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_PY.json
+++ b/apps/user_ldap/l10n/es_PY.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_SV.js b/apps/user_ldap/l10n/es_SV.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_SV.js
+++ b/apps/user_ldap/l10n/es_SV.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_SV.json b/apps/user_ldap/l10n/es_SV.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_SV.json
+++ b/apps/user_ldap/l10n/es_SV.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_UY.js b/apps/user_ldap/l10n/es_UY.js
index f07057218d0..7d56d01533d 100644
--- a/apps/user_ldap/l10n/es_UY.js
+++ b/apps/user_ldap/l10n/es_UY.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/es_UY.json b/apps/user_ldap/l10n/es_UY.json
index 9ced23a2f01..af406eb1c55 100644
--- a/apps/user_ldap/l10n/es_UY.json
+++ b/apps/user_ldap/l10n/es_UY.json
@@ -116,7 +116,6 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Renew password" : "Renovar contraseña",
- "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"Wrong password." : "Contraseña incorrecta. ",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP",
" entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado",
+ "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?",
"LDAP" : "LDAP",
"<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>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.",
"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." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. "
diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js
index 7605b67565b..95b49cd5291 100644
--- a/apps/user_ldap/l10n/fr.js
+++ b/apps/user_ldap/l10n/fr.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Renew password" : "Renouveler le mot de passe",
- "Wrong password. Reset it?" : "Mot de passe incorrect. Réinitialiser ?",
"Wrong password." : "Mot de passe incorrect.",
"Cancel" : "Annuler",
"Server" : "Serveur",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Supprimer l'association utilisateur interne-utilisateur LDAP",
"Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP",
" entries available within the provided Base DN" : "entrées disponibles dans le DN de base spécifié",
+ "Wrong password. Reset it?" : "Mot de passe incorrect. Réinitialiser ?",
"LDAP" : "LDAP",
"<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>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une.",
"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." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur ownCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à ownCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations."
diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json
index 6d4eca8b493..bb339c08fc9 100644
--- a/apps/user_ldap/l10n/fr.json
+++ b/apps/user_ldap/l10n/fr.json
@@ -117,7 +117,6 @@
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Renew password" : "Renouveler le mot de passe",
- "Wrong password. Reset it?" : "Mot de passe incorrect. Réinitialiser ?",
"Wrong password." : "Mot de passe incorrect.",
"Cancel" : "Annuler",
"Server" : "Serveur",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Supprimer l'association utilisateur interne-utilisateur LDAP",
"Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP",
" entries available within the provided Base DN" : "entrées disponibles dans le DN de base spécifié",
+ "Wrong password. Reset it?" : "Mot de passe incorrect. Réinitialiser ?",
"LDAP" : "LDAP",
"<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>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une.",
"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." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur ownCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à ownCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations."
diff --git a/apps/user_ldap/l10n/he.js b/apps/user_ldap/l10n/he.js
index c47089e7184..659a1793cbe 100644
--- a/apps/user_ldap/l10n/he.js
+++ b/apps/user_ldap/l10n/he.js
@@ -38,8 +38,8 @@ OC.L10N.register(
"A connection error to LDAP / AD occurred, please check host, port and credentials." : "אירעה שגיאת חיבור ל- 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 user found_::_%s users found_" : ["אותר %s משתמש","אותרו %s משתמשים"],
+ "_%s group found_::_%s groups found_" : ["אותרה %s קבוצה","אותרו %s קבוצות","אותרו %s קבוצות"],
+ "_%s user found_::_%s users found_" : ["אותר %s משתמש","אותרו %s משתמשים","אותרו %s משתמשים"],
"Could not find the desired feature" : "לא אותרה התכונה הרצויה",
"Invalid Host" : "מארח לא חוקי",
"Test Configuration" : "בדיקת הגדרות",
@@ -134,4 +134,4 @@ OC.L10N.register(
"LDAP" : "LDAP",
"<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 אינם תואמים. תופעות לא מוסברות עלולות להתקיים. כדאי לפנות למנהל המערכת כדי שינטרל אחד מהם."
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/apps/user_ldap/l10n/he.json b/apps/user_ldap/l10n/he.json
index c98905ef12d..18ec7ef56e0 100644
--- a/apps/user_ldap/l10n/he.json
+++ b/apps/user_ldap/l10n/he.json
@@ -36,8 +36,8 @@
"A connection error to LDAP / AD occurred, please check host, port and credentials." : "אירעה שגיאת חיבור ל- 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 user found_::_%s users found_" : ["אותר %s משתמש","אותרו %s משתמשים"],
+ "_%s group found_::_%s groups found_" : ["אותרה %s קבוצה","אותרו %s קבוצות","אותרו %s קבוצות"],
+ "_%s user found_::_%s users found_" : ["אותר %s משתמש","אותרו %s משתמשים","אותרו %s משתמשים"],
"Could not find the desired feature" : "לא אותרה התכונה הרצויה",
"Invalid Host" : "מארח לא חוקי",
"Test Configuration" : "בדיקת הגדרות",
@@ -131,5 +131,5 @@
" entries available within the provided Base DN" : " קיימות רשומות מתוך בסיס ה- DN שסופק",
"LDAP" : "LDAP",
"<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 אינם תואמים. תופעות לא מוסברות עלולות להתקיים. כדאי לפנות למנהל המערכת כדי שינטרל אחד מהם."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/hu.js b/apps/user_ldap/l10n/hu.js
index 76d8b26857f..b008bebc32b 100644
--- a/apps/user_ldap/l10n/hu.js
+++ b/apps/user_ldap/l10n/hu.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Jelenlegi jelszó",
"New password" : "Új jelszó",
"Renew password" : "Jelszó megújítás",
- "Wrong password. Reset it?" : "Hibás jelszó. Visszaállítja?",
"Wrong password." : "Hibás jelszó.",
"Cancel" : "Mégsem",
"Server" : "Szerver",
@@ -187,6 +186,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "A felhasználó - LDAP felhasználó hozzárendelés törlése",
"Clear Groupname-LDAP Group Mapping" : "A csoport - LDAP csoport hozzárendelés törlése",
" entries available within the provided Base DN" : "a megadott címtár gyökér alatt elérhető bejegyzések",
+ "Wrong password. Reset it?" : "Hibás jelszó. Visszaállítja?",
"LDAP" : "LDAP",
"<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>Figyelem:</b> a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket.",
"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." : "A felhasználónevek adattárolásra és hozzárendelésre (meta) szolgálnak. A felhasználók pontos felismerésére és azonosítására, minden LDAP felhasználóhoz hozzárendelünk egy belső felhaszhálónevet. Ez a felhasználónév LDAP felhasználóhoz rendelését igényli. A létrehozott felhasználónév az LDAP UUID-hez kötődik. Egyben a DN tárolásra kerül az LDAP interakció csökkentésére, de nem használjuk az azonosítás során. Ha a DN változik, a változást megtaláljuk. A belső felhasználónevek újrahasznosításra kerülnek. A leképezés kitörlése mindenfelé maradványokat eredményez. A leképezések törlése nem konfiguráció érzékeny, minden LDAP konfigurációt érint! Soha ne töröld a leképezéseket éles rendszeren, csak tesztelési vagy kísérleti állapotban."
diff --git a/apps/user_ldap/l10n/hu.json b/apps/user_ldap/l10n/hu.json
index 87672cadadb..8561f5dcb25 100644
--- a/apps/user_ldap/l10n/hu.json
+++ b/apps/user_ldap/l10n/hu.json
@@ -117,7 +117,6 @@
"Current password" : "Jelenlegi jelszó",
"New password" : "Új jelszó",
"Renew password" : "Jelszó megújítás",
- "Wrong password. Reset it?" : "Hibás jelszó. Visszaállítja?",
"Wrong password." : "Hibás jelszó.",
"Cancel" : "Mégsem",
"Server" : "Szerver",
@@ -185,6 +184,7 @@
"Clear Username-LDAP User Mapping" : "A felhasználó - LDAP felhasználó hozzárendelés törlése",
"Clear Groupname-LDAP Group Mapping" : "A csoport - LDAP csoport hozzárendelés törlése",
" entries available within the provided Base DN" : "a megadott címtár gyökér alatt elérhető bejegyzések",
+ "Wrong password. Reset it?" : "Hibás jelszó. Visszaállítja?",
"LDAP" : "LDAP",
"<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>Figyelem:</b> a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket.",
"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." : "A felhasználónevek adattárolásra és hozzárendelésre (meta) szolgálnak. A felhasználók pontos felismerésére és azonosítására, minden LDAP felhasználóhoz hozzárendelünk egy belső felhaszhálónevet. Ez a felhasználónév LDAP felhasználóhoz rendelését igényli. A létrehozott felhasználónév az LDAP UUID-hez kötődik. Egyben a DN tárolásra kerül az LDAP interakció csökkentésére, de nem használjuk az azonosítás során. Ha a DN változik, a változást megtaláljuk. A belső felhasználónevek újrahasznosításra kerülnek. A leképezés kitörlése mindenfelé maradványokat eredményez. A leképezések törlése nem konfiguráció érzékeny, minden LDAP konfigurációt érint! Soha ne töröld a leképezéseket éles rendszeren, csak tesztelési vagy kísérleti állapotban."
diff --git a/apps/user_ldap/l10n/is.js b/apps/user_ldap/l10n/is.js
index ad321c10c29..6c363f27fa7 100644
--- a/apps/user_ldap/l10n/is.js
+++ b/apps/user_ldap/l10n/is.js
@@ -76,7 +76,6 @@ OC.L10N.register(
"Current password" : "Núverandi lykilorð",
"New password" : "Nýtt lykilorð",
"Renew password" : "Endurnýja lykilorð",
- "Wrong password. Reset it?" : "Rangt lykilorð. Endursetja?",
"Wrong password." : "Rangt lykilorð.",
"Cancel" : "Hætta við",
"Server" : "Þjónn",
@@ -98,6 +97,7 @@ OC.L10N.register(
"Quota Default" : "Sjálfgefinn kvóti",
"Email Field" : "Gagnasvið fyrir netfang",
"Internal Username" : "Innra notandanafn",
+ "Wrong password. Reset it?" : "Rangt lykilorð. Endursetja?",
"LDAP" : "LDAP"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/user_ldap/l10n/is.json b/apps/user_ldap/l10n/is.json
index dd7d0b236fe..2acb12cd51b 100644
--- a/apps/user_ldap/l10n/is.json
+++ b/apps/user_ldap/l10n/is.json
@@ -74,7 +74,6 @@
"Current password" : "Núverandi lykilorð",
"New password" : "Nýtt lykilorð",
"Renew password" : "Endurnýja lykilorð",
- "Wrong password. Reset it?" : "Rangt lykilorð. Endursetja?",
"Wrong password." : "Rangt lykilorð.",
"Cancel" : "Hætta við",
"Server" : "Þjónn",
@@ -96,6 +95,7 @@
"Quota Default" : "Sjálfgefinn kvóti",
"Email Field" : "Gagnasvið fyrir netfang",
"Internal Username" : "Innra notandanafn",
+ "Wrong password. Reset it?" : "Rangt lykilorð. Endursetja?",
"LDAP" : "LDAP"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js
index 395c7c202da..33ac07b23a1 100644
--- a/apps/user_ldap/l10n/it.js
+++ b/apps/user_ldap/l10n/it.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Password attuale",
"New password" : "Nuova password",
"Renew password" : "Rinnova la password",
- "Wrong password. Reset it?" : "Password errata. Vuoi reimpostarla?",
"Wrong password." : "Password errata.",
"Cancel" : "Annulla",
"Server" : "Server",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Cancella associazione Nome utente-Utente LDAP",
"Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP",
" entries available within the provided Base DN" : "voci disponibili all'interno del DN base",
+ "Wrong password. Reset it?" : "Password errata. Vuoi reimpostarla?",
"LDAP" : "LDAP",
"<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>Avviso:</b> le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne una.",
"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." : "I nomi utente sono utilizzati per archiviare e assegnare i (meta) dati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. In aggiunta, il DN viene mantenuto in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test."
diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json
index ca807bdfb2e..cb983f4b5cf 100644
--- a/apps/user_ldap/l10n/it.json
+++ b/apps/user_ldap/l10n/it.json
@@ -117,7 +117,6 @@
"Current password" : "Password attuale",
"New password" : "Nuova password",
"Renew password" : "Rinnova la password",
- "Wrong password. Reset it?" : "Password errata. Vuoi reimpostarla?",
"Wrong password." : "Password errata.",
"Cancel" : "Annulla",
"Server" : "Server",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Cancella associazione Nome utente-Utente LDAP",
"Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP",
" entries available within the provided Base DN" : "voci disponibili all'interno del DN base",
+ "Wrong password. Reset it?" : "Password errata. Vuoi reimpostarla?",
"LDAP" : "LDAP",
"<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>Avviso:</b> le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne una.",
"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." : "I nomi utente sono utilizzati per archiviare e assegnare i (meta) dati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. In aggiunta, il DN viene mantenuto in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test."
diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js
index 4ea8050205d..e59613901a1 100644
--- a/apps/user_ldap/l10n/ja.js
+++ b/apps/user_ldap/l10n/ja.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "現在のパスワード",
"New password" : "新しいパスワード",
"Renew password" : "パスワードを更新",
- "Wrong password. Reset it?" : "パスワードが間違っています。リセットしますか?",
"Wrong password." : "パスワードが間違っています。",
"Cancel" : "キャンセル",
"Server" : "サーバー",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピングをクリアする",
"Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする",
" entries available within the provided Base DN" : "入力されたベースDNでエントリーが利用可能",
+ "Wrong password. Reset it?" : "パスワードが間違っています。リセットしますか?",
"LDAP" : "LDAP",
"<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 のアプリには互換性がありません。予期せぬ動作をする可能性があります。システム管理者にどちらかを無効にするよう問い合わせてください。",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は(メタ)データの保存と割り当てに使用されます。ユーザーを正確に識別して認識するために、個々のLDAPユーザは内部ユーザ名を持っています。これは、ユーザー名からLDAPユーザーへのマッピングが必要であることを意味しています。この生成されたユーザ名は、LDAPユーザのUUIDにマッピングされます。加えて、DNがLDAPとのインタラクションを削減するためにキャッシュされますが、識別には利用されません。DNが変わった場合は、変更が検出されます。内部ユーザ名は全体に亘って利用されます。マッピングをクリアすると、いたるところに使われないままの物が残るでしょう。マッピングのクリアは設定に敏感ではありませんが、すべてのLDAPの設定に影響を与えます!本番の環境では決してマッピングをクリアしないでください。テストもしくは実験の段階でのみマッピングのクリアを行なってください。"
diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json
index 27898eea6c9..b872f2805ed 100644
--- a/apps/user_ldap/l10n/ja.json
+++ b/apps/user_ldap/l10n/ja.json
@@ -116,7 +116,6 @@
"Current password" : "現在のパスワード",
"New password" : "新しいパスワード",
"Renew password" : "パスワードを更新",
- "Wrong password. Reset it?" : "パスワードが間違っています。リセットしますか?",
"Wrong password." : "パスワードが間違っています。",
"Cancel" : "キャンセル",
"Server" : "サーバー",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピングをクリアする",
"Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする",
" entries available within the provided Base DN" : "入力されたベースDNでエントリーが利用可能",
+ "Wrong password. Reset it?" : "パスワードが間違っています。リセットしますか?",
"LDAP" : "LDAP",
"<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 のアプリには互換性がありません。予期せぬ動作をする可能性があります。システム管理者にどちらかを無効にするよう問い合わせてください。",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は(メタ)データの保存と割り当てに使用されます。ユーザーを正確に識別して認識するために、個々のLDAPユーザは内部ユーザ名を持っています。これは、ユーザー名からLDAPユーザーへのマッピングが必要であることを意味しています。この生成されたユーザ名は、LDAPユーザのUUIDにマッピングされます。加えて、DNがLDAPとのインタラクションを削減するためにキャッシュされますが、識別には利用されません。DNが変わった場合は、変更が検出されます。内部ユーザ名は全体に亘って利用されます。マッピングをクリアすると、いたるところに使われないままの物が残るでしょう。マッピングのクリアは設定に敏感ではありませんが、すべてのLDAPの設定に影響を与えます!本番の環境では決してマッピングをクリアしないでください。テストもしくは実験の段階でのみマッピングのクリアを行なってください。"
diff --git a/apps/user_ldap/l10n/ka_GE.js b/apps/user_ldap/l10n/ka_GE.js
index f4703c4b95c..61be13b2cec 100644
--- a/apps/user_ldap/l10n/ka_GE.js
+++ b/apps/user_ldap/l10n/ka_GE.js
@@ -57,10 +57,10 @@ OC.L10N.register(
"Please login with the new password" : "გთხოვთ გაიაროთ ავტორიზაცია ახალი პაროლით",
"Your password will expire tomorrow." : "თქვენი პაროლი გაუქმდება ხვალ.",
"Your password will expire today." : "თქვენი პაროლი გაუქმდება დღეს.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["თქვენი პაროლი გაუქმდება %n დღეში."],
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["თქვენი პაროლი გაუქმდება %n დღეში.","თქვენი პაროლი გაუქმდება %n დღეში."],
"LDAP / AD integration" : "LDAP / AD ინტეგრაცია",
- "_%s group found_::_%s groups found_" : ["ნაპოვნა %s ჯგუფი"],
- "_%s user found_::_%s users found_" : ["ნაპოვნია %s მომხმარებელი"],
+ "_%s group found_::_%s groups found_" : ["ნაპოვნა %s ჯგუფი","ნაპოვნა %s ჯგუფი"],
+ "_%s user found_::_%s users found_" : ["ნაპოვნია %s მომხმარებელი","ნაპოვნია %s მომხმარებელი"],
"Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "მომხმარებლის დისპლეის სახელის ატრიბუტის აღმოჩენა ვერ მოხერხდა. გთხოვთ LDAP-ის პარამეტრებში თქვენით დააყენოთ ის.",
"Could not find the desired feature" : "მოთხოვნილი ფუნქციონალის პოვნა ვერ მოხერხდა",
"Invalid Host" : "არასწორი ჰოსტი",
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "ამჟამინდელი პაროლი",
"New password" : "ახალი პაროლი",
"Renew password" : "პაროლის განახლება",
- "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ?",
"Wrong password." : "არასწორი პაროლი.",
"Cancel" : "უარყოფა",
"Server" : "სერვერი",
@@ -186,8 +185,9 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Username-LDAP მომხმარებლის ბმების გასუფთავება",
"Clear Groupname-LDAP Group Mapping" : "Groupname-LDAP ჯგუფის ბმების გასუფთავება",
" entries available within the provided Base DN" : "მითითებულ საბაზისო DN-ში შენატანები ხელმისაწვდომია",
+ "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ?",
"LDAP" : "LDAP",
"<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 არაა თავსებადი. შესაძლოა შეგვხდეთ მოულოდნელი ქმედება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს ერთ-ერთის გათიშვა.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "მომხმარებლების სახელები გამოიყენება (მეტა) მონაცემების შესანახად და დასანიშნად. ზუსტი იდენტიფიკაციისა და ამოზნობისთვის, ყოველ LDAP-ის მომხმარებელს ექნება შიდა მომხმარებელი. ეს საჭიროებს ბმას მომხმარებელსა და LDAP-ის სახელს შორის. შექმნილი მომხმარებელი ებმება LDAP-ის მომხმარებელის UUID-ს. LDAP-თან ინტერაქციის შესამცირებლად, დამატებითად კეშირდება DN, მაგრამ არ ხდება მისი მოხმარება იდენტიფიკაციისთვის. ბმების გასუფთავება ბევრ ადგილას დატოვებს კვალს. ბმების გასუფთავება არაა კონფიგურაციასთან მგრძნობიარე, ის მოქმედებს ყველა LDAP-ის კონფიგურაციაზე! არასდროს გაასუფთავოთ ბმები საწარმოო გარემოში, მოიხმარეთ ეს მხოლოდ შემოწმების ან ექსპერიმენტისთვის."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/user_ldap/l10n/ka_GE.json b/apps/user_ldap/l10n/ka_GE.json
index 144989f6210..d36cf3558eb 100644
--- a/apps/user_ldap/l10n/ka_GE.json
+++ b/apps/user_ldap/l10n/ka_GE.json
@@ -55,10 +55,10 @@
"Please login with the new password" : "გთხოვთ გაიაროთ ავტორიზაცია ახალი პაროლით",
"Your password will expire tomorrow." : "თქვენი პაროლი გაუქმდება ხვალ.",
"Your password will expire today." : "თქვენი პაროლი გაუქმდება დღეს.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["თქვენი პაროლი გაუქმდება %n დღეში."],
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["თქვენი პაროლი გაუქმდება %n დღეში.","თქვენი პაროლი გაუქმდება %n დღეში."],
"LDAP / AD integration" : "LDAP / AD ინტეგრაცია",
- "_%s group found_::_%s groups found_" : ["ნაპოვნა %s ჯგუფი"],
- "_%s user found_::_%s users found_" : ["ნაპოვნია %s მომხმარებელი"],
+ "_%s group found_::_%s groups found_" : ["ნაპოვნა %s ჯგუფი","ნაპოვნა %s ჯგუფი"],
+ "_%s user found_::_%s users found_" : ["ნაპოვნია %s მომხმარებელი","ნაპოვნია %s მომხმარებელი"],
"Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "მომხმარებლის დისპლეის სახელის ატრიბუტის აღმოჩენა ვერ მოხერხდა. გთხოვთ LDAP-ის პარამეტრებში თქვენით დააყენოთ ის.",
"Could not find the desired feature" : "მოთხოვნილი ფუნქციონალის პოვნა ვერ მოხერხდა",
"Invalid Host" : "არასწორი ჰოსტი",
@@ -116,7 +116,6 @@
"Current password" : "ამჟამინდელი პაროლი",
"New password" : "ახალი პაროლი",
"Renew password" : "პაროლის განახლება",
- "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ?",
"Wrong password." : "არასწორი პაროლი.",
"Cancel" : "უარყოფა",
"Server" : "სერვერი",
@@ -184,8 +183,9 @@
"Clear Username-LDAP User Mapping" : "Username-LDAP მომხმარებლის ბმების გასუფთავება",
"Clear Groupname-LDAP Group Mapping" : "Groupname-LDAP ჯგუფის ბმების გასუფთავება",
" entries available within the provided Base DN" : "მითითებულ საბაზისო DN-ში შენატანები ხელმისაწვდომია",
+ "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ?",
"LDAP" : "LDAP",
"<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 არაა თავსებადი. შესაძლოა შეგვხდეთ მოულოდნელი ქმედება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს ერთ-ერთის გათიშვა.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "მომხმარებლების სახელები გამოიყენება (მეტა) მონაცემების შესანახად და დასანიშნად. ზუსტი იდენტიფიკაციისა და ამოზნობისთვის, ყოველ LDAP-ის მომხმარებელს ექნება შიდა მომხმარებელი. ეს საჭიროებს ბმას მომხმარებელსა და LDAP-ის სახელს შორის. შექმნილი მომხმარებელი ებმება LDAP-ის მომხმარებელის UUID-ს. LDAP-თან ინტერაქციის შესამცირებლად, დამატებითად კეშირდება DN, მაგრამ არ ხდება მისი მოხმარება იდენტიფიკაციისთვის. ბმების გასუფთავება ბევრ ადგილას დატოვებს კვალს. ბმების გასუფთავება არაა კონფიგურაციასთან მგრძნობიარე, ის მოქმედებს ყველა LDAP-ის კონფიგურაციაზე! არასდროს გაასუფთავოთ ბმები საწარმოო გარემოში, მოიხმარეთ ეს მხოლოდ შემოწმების ან ექსპერიმენტისთვის."
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ko.js b/apps/user_ldap/l10n/ko.js
index 88542a67868..b0f8a68fce9 100644
--- a/apps/user_ldap/l10n/ko.js
+++ b/apps/user_ldap/l10n/ko.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "현재 암호",
"New password" : "새 암호",
"Renew password" : "암호 갱신",
- "Wrong password. Reset it?" : "암호가 잘못되었습니다. 초기화하시겠습니까?",
"Wrong password." : "암호가 잘못되었습니다.",
"Cancel" : "취소",
"Server" : "서버",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기",
"Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기",
" entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)",
+ "Wrong password. Reset it?" : "암호가 잘못되었습니다. 초기화하시겠습니까?",
"LDAP" : "LDAP",
"<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 앱은 서로 호환되지 않습니다. 예상하지 못한 행동을 할 수도 있습니다. 시스템 관리자에게 연락하여 둘 중 하나의 앱의 사용을 중단하십시오.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오."
diff --git a/apps/user_ldap/l10n/ko.json b/apps/user_ldap/l10n/ko.json
index 5e20231f82e..ec5c1beea61 100644
--- a/apps/user_ldap/l10n/ko.json
+++ b/apps/user_ldap/l10n/ko.json
@@ -116,7 +116,6 @@
"Current password" : "현재 암호",
"New password" : "새 암호",
"Renew password" : "암호 갱신",
- "Wrong password. Reset it?" : "암호가 잘못되었습니다. 초기화하시겠습니까?",
"Wrong password." : "암호가 잘못되었습니다.",
"Cancel" : "취소",
"Server" : "서버",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기",
"Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기",
" entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)",
+ "Wrong password. Reset it?" : "암호가 잘못되었습니다. 초기화하시겠습니까?",
"LDAP" : "LDAP",
"<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 앱은 서로 호환되지 않습니다. 예상하지 못한 행동을 할 수도 있습니다. 시스템 관리자에게 연락하여 둘 중 하나의 앱의 사용을 중단하십시오.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오."
diff --git a/apps/user_ldap/l10n/lt_LT.js b/apps/user_ldap/l10n/lt_LT.js
index 9e5601ff819..ba86c852fd8 100644
--- a/apps/user_ldap/l10n/lt_LT.js
+++ b/apps/user_ldap/l10n/lt_LT.js
@@ -56,8 +56,8 @@ OC.L10N.register(
"Your password will expire tomorrow." : "Jūsų slaptažodžio galiojimo laikas pasibaigs rytoj.",
"Your password will expire today." : "Jūsų slaptažodžio galiojimo laikas baigiasi šiandien.",
"LDAP / AD integration" : "LDAP / AD integracija",
- "_%s group found_::_%s groups found_" : ["Rasta %s grupė","Rastos %s grupės","Rastos %s grupės"],
- "_%s user found_::_%s users found_" : ["Rastas %s naudotojas","Rasti %s naudotojai","Rasta %s naudotojų"],
+ "_%s group found_::_%s groups found_" : ["Rasta %s grupė","Rastos %s grupės","Rastos %s grupės","Rastos %s grupės"],
+ "_%s user found_::_%s users found_" : ["Rastas %s naudotojas","Rasti %s naudotojai","Rasta %s naudotojų","Rasta %s naudotojų"],
"Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Nepavyko aptikti naudotojo rodomo vardo atributo. Nurodykite jį papildomuose LDAP nustatymuose.",
"Could not find the desired feature" : "Nepavyko rasti pageidaujamos ypatybės",
"Invalid Host" : "Neteisingas serveris",
@@ -112,7 +112,6 @@ OC.L10N.register(
"Current password" : "Dabartinis slaptažodis",
"New password" : "Naujas slaptažodis",
"Renew password" : "Atnaujintas slaptažodis",
- "Wrong password. Reset it?" : "Neteisingas slaptažodis. Atstatyti jį?",
"Wrong password." : "Neteisingas slaptažodis.",
"Cancel" : "Atsisakyti",
"Server" : "Serveris",
@@ -176,8 +175,9 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Išvalyti naudotojo vardo - LDAP naudotojo sąsają",
"Clear Groupname-LDAP Group Mapping" : "Išvalyti grupės pavadinimo - LDAP naudotojo sąsają",
" entries available within the provided Base DN" : "pasiekiami įrašai pateiktoje DN šakoje",
+ "Wrong password. Reset it?" : "Neteisingas slaptažodis. Atstatyti jį?",
"LDAP" : "LDAP",
"<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>Įspėjimas: </b> Programėlės user_ldap ir user_webdavauth yra nesuderinami. Tai gali sukelti nepageidaujamą veikimą. Paprašykite, kad sistemos administratorius vieną jų išjungtų.",
"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." : "Naudotojų vardai yra naudojami saugoti ir priskirti (meta) duomenis. Siekiant identifikuoti ir atpažinti naudotojus,kiekvienas LDAP naudotojas turės vidinį naudotojo vardą. Tam reikia susieti naudotojo vardą su LDAP naudotoju. Sukurtas naudotojo vardas yra susiejamas su LDAP naudotojo UUID. Papildomai DN talpinamas, kad sumažintų LDAP sąveiką, bet nenaudojamas identifikacijoje. Visur yra naudojamas vidinis naudotojo vardas. Susiejimų pašalinimas visur paliks \"pėdsaką\" ir įtakos visas LDAP konfigūracijas! Niekada susiejimų nešalinkite produkciniame serveryje."
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/user_ldap/l10n/lt_LT.json b/apps/user_ldap/l10n/lt_LT.json
index 5ec5162111f..66f96775e4f 100644
--- a/apps/user_ldap/l10n/lt_LT.json
+++ b/apps/user_ldap/l10n/lt_LT.json
@@ -54,8 +54,8 @@
"Your password will expire tomorrow." : "Jūsų slaptažodžio galiojimo laikas pasibaigs rytoj.",
"Your password will expire today." : "Jūsų slaptažodžio galiojimo laikas baigiasi šiandien.",
"LDAP / AD integration" : "LDAP / AD integracija",
- "_%s group found_::_%s groups found_" : ["Rasta %s grupė","Rastos %s grupės","Rastos %s grupės"],
- "_%s user found_::_%s users found_" : ["Rastas %s naudotojas","Rasti %s naudotojai","Rasta %s naudotojų"],
+ "_%s group found_::_%s groups found_" : ["Rasta %s grupė","Rastos %s grupės","Rastos %s grupės","Rastos %s grupės"],
+ "_%s user found_::_%s users found_" : ["Rastas %s naudotojas","Rasti %s naudotojai","Rasta %s naudotojų","Rasta %s naudotojų"],
"Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Nepavyko aptikti naudotojo rodomo vardo atributo. Nurodykite jį papildomuose LDAP nustatymuose.",
"Could not find the desired feature" : "Nepavyko rasti pageidaujamos ypatybės",
"Invalid Host" : "Neteisingas serveris",
@@ -110,7 +110,6 @@
"Current password" : "Dabartinis slaptažodis",
"New password" : "Naujas slaptažodis",
"Renew password" : "Atnaujintas slaptažodis",
- "Wrong password. Reset it?" : "Neteisingas slaptažodis. Atstatyti jį?",
"Wrong password." : "Neteisingas slaptažodis.",
"Cancel" : "Atsisakyti",
"Server" : "Serveris",
@@ -174,8 +173,9 @@
"Clear Username-LDAP User Mapping" : "Išvalyti naudotojo vardo - LDAP naudotojo sąsają",
"Clear Groupname-LDAP Group Mapping" : "Išvalyti grupės pavadinimo - LDAP naudotojo sąsają",
" entries available within the provided Base DN" : "pasiekiami įrašai pateiktoje DN šakoje",
+ "Wrong password. Reset it?" : "Neteisingas slaptažodis. Atstatyti jį?",
"LDAP" : "LDAP",
"<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>Įspėjimas: </b> Programėlės user_ldap ir user_webdavauth yra nesuderinami. Tai gali sukelti nepageidaujamą veikimą. Paprašykite, kad sistemos administratorius vieną jų išjungtų.",
"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." : "Naudotojų vardai yra naudojami saugoti ir priskirti (meta) duomenis. Siekiant identifikuoti ir atpažinti naudotojus,kiekvienas LDAP naudotojas turės vidinį naudotojo vardą. Tam reikia susieti naudotojo vardą su LDAP naudotoju. Sukurtas naudotojo vardas yra susiejamas su LDAP naudotojo UUID. Papildomai DN talpinamas, kad sumažintų LDAP sąveiką, bet nenaudojamas identifikacijoje. Visur yra naudojamas vidinis naudotojo vardas. Susiejimų pašalinimas visur paliks \"pėdsaką\" ir įtakos visas LDAP konfigūracijas! Niekada susiejimų nešalinkite produkciniame serveryje."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/nb.js b/apps/user_ldap/l10n/nb.js
index d7154f6aef5..ee1e94ff59f 100644
--- a/apps/user_ldap/l10n/nb.js
+++ b/apps/user_ldap/l10n/nb.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Nåværende passord",
"New password" : "Nytt passord",
"Renew password" : "Forny passord",
- "Wrong password. Reset it?" : "Feilpassord. Tilbakestill?",
"Wrong password." : "Feil passord.",
"Cancel" : "Avbryt",
"Server" : "Tjener",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Nullstill tilknytning av brukernavn til LDAP-bruker",
"Clear Groupname-LDAP Group Mapping" : "Nullstill tilknytning av gruppenavn til LDAP-gruppe",
" entries available within the provided Base DN" : "oppføringer tilgjengelig innenfor angitt base-DN",
+ "Wrong password. Reset it?" : "Feilpassord. Tilbakestill?",
"LDAP" : "LDAP",
"<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> Programmene user_ldap og user_webdavauth er ikke kompatible med hverandre. Uventet oppførsel kan forekomme. Be systemadministratoren om å deaktivere én av dem.",
"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." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering."
diff --git a/apps/user_ldap/l10n/nb.json b/apps/user_ldap/l10n/nb.json
index 5f4b2075a6f..9f953956ca3 100644
--- a/apps/user_ldap/l10n/nb.json
+++ b/apps/user_ldap/l10n/nb.json
@@ -116,7 +116,6 @@
"Current password" : "Nåværende passord",
"New password" : "Nytt passord",
"Renew password" : "Forny passord",
- "Wrong password. Reset it?" : "Feilpassord. Tilbakestill?",
"Wrong password." : "Feil passord.",
"Cancel" : "Avbryt",
"Server" : "Tjener",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Nullstill tilknytning av brukernavn til LDAP-bruker",
"Clear Groupname-LDAP Group Mapping" : "Nullstill tilknytning av gruppenavn til LDAP-gruppe",
" entries available within the provided Base DN" : "oppføringer tilgjengelig innenfor angitt base-DN",
+ "Wrong password. Reset it?" : "Feilpassord. Tilbakestill?",
"LDAP" : "LDAP",
"<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> Programmene user_ldap og user_webdavauth er ikke kompatible med hverandre. Uventet oppførsel kan forekomme. Be systemadministratoren om å deaktivere én av dem.",
"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." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering."
diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js
index e3f3f19ef6b..166969c749b 100644
--- a/apps/user_ldap/l10n/nl.js
+++ b/apps/user_ldap/l10n/nl.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Huidig wachtwoord",
"New password" : "Nieuw wachtwoord",
"Renew password" : "Herstel wachtwoord",
- "Wrong password. Reset it?" : "Onjuist wachtwoord. Resetten?",
"Wrong password." : "Onjuist wachtwoord.",
"Cancel" : "Annuleren",
"Server" : "Server",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling",
"Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling",
" entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN",
+ "Wrong password. Reset it?" : "Onjuist wachtwoord. Resetten?",
"LDAP" : "LDAP",
"<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>Waarschuwing:</b> De Apps user_ldap en user_webdavauth zijn incompatibel. Je kunt onverwacht gedrag ervaren. Vraag je beheerder om een van beide apps de deactiveren.",
"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." : "Gebruikersnamen worden gebruikt om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een ​​LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving."
diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json
index db109d3c74d..3a286b4bd0b 100644
--- a/apps/user_ldap/l10n/nl.json
+++ b/apps/user_ldap/l10n/nl.json
@@ -117,7 +117,6 @@
"Current password" : "Huidig wachtwoord",
"New password" : "Nieuw wachtwoord",
"Renew password" : "Herstel wachtwoord",
- "Wrong password. Reset it?" : "Onjuist wachtwoord. Resetten?",
"Wrong password." : "Onjuist wachtwoord.",
"Cancel" : "Annuleren",
"Server" : "Server",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling",
"Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling",
" entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN",
+ "Wrong password. Reset it?" : "Onjuist wachtwoord. Resetten?",
"LDAP" : "LDAP",
"<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>Waarschuwing:</b> De Apps user_ldap en user_webdavauth zijn incompatibel. Je kunt onverwacht gedrag ervaren. Vraag je beheerder om een van beide apps de deactiveren.",
"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." : "Gebruikersnamen worden gebruikt om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een ​​LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving."
diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js
index bea740cf9bf..1aab60898a3 100644
--- a/apps/user_ldap/l10n/pl.js
+++ b/apps/user_ldap/l10n/pl.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Bieżące hasło",
"New password" : "Nowe hasło",
"Renew password" : "Odnów hasło",
- "Wrong password. Reset it?" : "Nieprawidłowe hasło. Czy chcesz je zresetować?",
"Wrong password." : "Nieprawidłowe hasło",
"Cancel" : "Anuluj",
"Server" : "Serwer",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Czyść Mapowanie użytkownika LDAP",
"Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP",
" entries available within the provided Base DN" : "wpisów dostępnych w podanym Base DN ",
+ "Wrong password. Reset it?" : "Nieprawidłowe hasło. Czy chcesz je zresetować?",
"LDAP" : "LDAP",
"<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>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.",
"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." : "Nazwy użytkowników służą do przechowywania i przypisywania (meta) danych. W celu dokładnego określenia i rozpoznawania użytkowników, każdy użytkownik LDAP ma przypisaną wewnętrzną nazwę użytkownika. Wymaga to mapowania nazwy użytkownika do użytkownika LDAP. Utworzona nazwa użytkownika jest odwzorowywana na UUID użytkownika LDAP. Dodatkowo DN są buforowane, także w celu zmniejszenia oddziaływania LDAP, ale nie są stosowane do identyfikacji. Po zmianie DN, będzie można znaleźć zmiany. Wewnętrzna nazwa jest używana wszędzie. Usuwanie mapowania będzie miało wpływ wszędzie. Usuwanie mapowania nie jest wrażliwe na konfiguracje, dotyczy to wszystkich konfiguracji LDAP! Nigdy nie usuwaj mapowania w środowisku produkcyjnym, jest to dopuszczalne tylko w fazie eksperymentalnej, testowej."
diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json
index e6a5979a50a..096498559ea 100644
--- a/apps/user_ldap/l10n/pl.json
+++ b/apps/user_ldap/l10n/pl.json
@@ -116,7 +116,6 @@
"Current password" : "Bieżące hasło",
"New password" : "Nowe hasło",
"Renew password" : "Odnów hasło",
- "Wrong password. Reset it?" : "Nieprawidłowe hasło. Czy chcesz je zresetować?",
"Wrong password." : "Nieprawidłowe hasło",
"Cancel" : "Anuluj",
"Server" : "Serwer",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Czyść Mapowanie użytkownika LDAP",
"Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP",
" entries available within the provided Base DN" : "wpisów dostępnych w podanym Base DN ",
+ "Wrong password. Reset it?" : "Nieprawidłowe hasło. Czy chcesz je zresetować?",
"LDAP" : "LDAP",
"<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>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.",
"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." : "Nazwy użytkowników służą do przechowywania i przypisywania (meta) danych. W celu dokładnego określenia i rozpoznawania użytkowników, każdy użytkownik LDAP ma przypisaną wewnętrzną nazwę użytkownika. Wymaga to mapowania nazwy użytkownika do użytkownika LDAP. Utworzona nazwa użytkownika jest odwzorowywana na UUID użytkownika LDAP. Dodatkowo DN są buforowane, także w celu zmniejszenia oddziaływania LDAP, ale nie są stosowane do identyfikacji. Po zmianie DN, będzie można znaleźć zmiany. Wewnętrzna nazwa jest używana wszędzie. Usuwanie mapowania będzie miało wpływ wszędzie. Usuwanie mapowania nie jest wrażliwe na konfiguracje, dotyczy to wszystkich konfiguracji LDAP! Nigdy nie usuwaj mapowania w środowisku produkcyjnym, jest to dopuszczalne tylko w fazie eksperymentalnej, testowej."
diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js
index aa5ae1ce61e..9eb16ef6338 100644
--- a/apps/user_ldap/l10n/pt_BR.js
+++ b/apps/user_ldap/l10n/pt_BR.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Senha atual",
"New password" : "Senha nova",
"Renew password" : "Renovar a senha",
- "Wrong password. Reset it?" : "Senha errada. Redefini-la?",
"Wrong password." : "Senha errada.",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Limpar Mapeamento de Usuário username-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP",
" entries available within the provided Base DN" : "entradas disponíveis na Base DN fornecida",
+ "Wrong password. Reset it?" : "Senha errada. Redefini-la?",
"LDAP" : "LDAP",
"<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>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles.",
"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." : "Nomes de usuários são usados para armazenar e atribuir dados (meta). A fim de identificar e reconhecer precisamente os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN é armazenado em cache para reduzir a interação LDAP mas não é usado para identificação. Se o DN mudar, as mudanças serão encontradas. O nome de usuário interno é usado por toda parte. Limpando os mapeamentos terá sobras em todos os lugares. A limpeza dos mapeamentos não é case sensitive e afeta todas as configurações LDAP! Nunca limpe os mapeamentos em um ambiente de produção, somente em um teste ou estágio experimental."
diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json
index 0fb333dada5..81af321b5de 100644
--- a/apps/user_ldap/l10n/pt_BR.json
+++ b/apps/user_ldap/l10n/pt_BR.json
@@ -117,7 +117,6 @@
"Current password" : "Senha atual",
"New password" : "Senha nova",
"Renew password" : "Renovar a senha",
- "Wrong password. Reset it?" : "Senha errada. Redefini-la?",
"Wrong password." : "Senha errada.",
"Cancel" : "Cancelar",
"Server" : "Servidor",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Limpar Mapeamento de Usuário username-LDAP",
"Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP",
" entries available within the provided Base DN" : "entradas disponíveis na Base DN fornecida",
+ "Wrong password. Reset it?" : "Senha errada. Redefini-la?",
"LDAP" : "LDAP",
"<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>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles.",
"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." : "Nomes de usuários são usados para armazenar e atribuir dados (meta). A fim de identificar e reconhecer precisamente os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN é armazenado em cache para reduzir a interação LDAP mas não é usado para identificação. Se o DN mudar, as mudanças serão encontradas. O nome de usuário interno é usado por toda parte. Limpando os mapeamentos terá sobras em todos os lugares. A limpeza dos mapeamentos não é case sensitive e afeta todas as configurações LDAP! Nunca limpe os mapeamentos em um ambiente de produção, somente em um teste ou estágio experimental."
diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js
index ab53635b252..f1d07ba0e63 100644
--- a/apps/user_ldap/l10n/ru.js
+++ b/apps/user_ldap/l10n/ru.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Текущий пароль",
"New password" : "Новый пароль",
"Renew password" : "Обновление пароля",
- "Wrong password. Reset it?" : "Неправильный пароль. Сбросить его?",
"Wrong password." : "Неправильный пароль.",
"Cancel" : "Отмена",
"Server" : "Сервер",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP",
"Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP",
" entries available within the provided Base DN" : "элементов доступно в предоставленном базовом DN",
+ "Wrong password. Reset it?" : "Неправильный пароль. Сбросить его?",
"LDAP" : "LDAP",
"<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 несовместимы. Вы можете наблюдать некорректное поведение. Пожалуйста, попросите вашего системного администратора отключить одно из них.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования."
diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json
index 5e09a313eac..546e3022cff 100644
--- a/apps/user_ldap/l10n/ru.json
+++ b/apps/user_ldap/l10n/ru.json
@@ -117,7 +117,6 @@
"Current password" : "Текущий пароль",
"New password" : "Новый пароль",
"Renew password" : "Обновление пароля",
- "Wrong password. Reset it?" : "Неправильный пароль. Сбросить его?",
"Wrong password." : "Неправильный пароль.",
"Cancel" : "Отмена",
"Server" : "Сервер",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP",
"Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP",
" entries available within the provided Base DN" : "элементов доступно в предоставленном базовом DN",
+ "Wrong password. Reset it?" : "Неправильный пароль. Сбросить его?",
"LDAP" : "LDAP",
"<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 несовместимы. Вы можете наблюдать некорректное поведение. Пожалуйста, попросите вашего системного администратора отключить одно из них.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования."
diff --git a/apps/user_ldap/l10n/sk.js b/apps/user_ldap/l10n/sk.js
index 804c9cdb8b6..e0e24521ee7 100644
--- a/apps/user_ldap/l10n/sk.js
+++ b/apps/user_ldap/l10n/sk.js
@@ -48,10 +48,10 @@ OC.L10N.register(
"Please login with the new password" : "Prihláste sa prosím novým heslom",
"Your password will expire tomorrow." : "Vaše heslo expiruje zajtra.",
"Your password will expire today." : "Vaše heslo expiruje dnes.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo expiruje o %n deň.","Vaše heslo expiruje o %n dni.","Vaše heslo expiruje o %n dní."],
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo expiruje o %n deň.","Vaše heslo expiruje o %n dni.","Vaše heslo expiruje o %n dní.","Vaše heslo expiruje o %n dní."],
"LDAP / AD integration" : "Spolupráca s LDAP/AD",
- "_%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"],
+ "_%s group found_::_%s groups found_" : ["%s nájdená skupina","%s nájdené skupiny","%s nájdených skupín","%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","%s nájdených používateľov"],
"Could not find the desired feature" : "Nemožno nájsť požadovanú funkciu",
"Invalid Host" : "Neplatný hostiteľ",
"Test Configuration" : "Test nastavenia",
@@ -98,7 +98,6 @@ OC.L10N.register(
"An internal error occurred." : "Nastala interná chyba.",
"Current password" : "Aktuálne heslo",
"New password" : "Nové heslo",
- "Wrong password. Reset it?" : "Chybné heslo. Chcete ho obnoviť?",
"Wrong password." : "Nesprávne heslo.",
"Cancel" : "Zrušiť",
"Server" : "Server",
@@ -153,8 +152,9 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Zrušiť mapovanie LDAP používateľských mien",
"Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín",
" entries available within the provided Base DN" : "dostupných záznamov v zadanej základnej DN",
+ "Wrong password. Reset it?" : "Chybné heslo. Chcete ho obnoviť?",
"LDAP" : "LDAP",
"<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>Upozornenie:</b> Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich.",
"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." : "Používateľské mená sa používajú na uchovávanie a priraďovanie (meta)dát. Každý používateľ v LDAP bude mať interné používateľské meno, aby bolo možné správne identifikovať a rozpoznávať používateľov. To je vyžaduje vytvorenie mapovania používateľských mien na používateľov v LDAPe. Vytvorené používateľské meno sa namapuje na UUID používateľa v LDAPe. Naviac je sa vo vyrovnávacej pamäti udržiava DN, aby sa obmedzila nadmerná interakcia s LDAPom, ale to sa nepoužíva na identifikáciu. Ak sa DN zmení, zmena bude správne rozpoznaná. Interné používateľské meno sa používa všade. Vyčistenie mapovaní vymaže zvyšky všade. Vyčistenie mapovaní naviac nie je špecifické pre určitú konfiguráciu; bude mať vplyv na všetky konfigurácie LDAPu! Nikdy nečistite mapovanie v produkčnom prostredí, len v testovacej alebo experimentálnej fáze."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/user_ldap/l10n/sk.json b/apps/user_ldap/l10n/sk.json
index 5512367af8e..e0119fafc8d 100644
--- a/apps/user_ldap/l10n/sk.json
+++ b/apps/user_ldap/l10n/sk.json
@@ -46,10 +46,10 @@
"Please login with the new password" : "Prihláste sa prosím novým heslom",
"Your password will expire tomorrow." : "Vaše heslo expiruje zajtra.",
"Your password will expire today." : "Vaše heslo expiruje dnes.",
- "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo expiruje o %n deň.","Vaše heslo expiruje o %n dni.","Vaše heslo expiruje o %n dní."],
+ "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo expiruje o %n deň.","Vaše heslo expiruje o %n dni.","Vaše heslo expiruje o %n dní.","Vaše heslo expiruje o %n dní."],
"LDAP / AD integration" : "Spolupráca s LDAP/AD",
- "_%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"],
+ "_%s group found_::_%s groups found_" : ["%s nájdená skupina","%s nájdené skupiny","%s nájdených skupín","%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","%s nájdených používateľov"],
"Could not find the desired feature" : "Nemožno nájsť požadovanú funkciu",
"Invalid Host" : "Neplatný hostiteľ",
"Test Configuration" : "Test nastavenia",
@@ -96,7 +96,6 @@
"An internal error occurred." : "Nastala interná chyba.",
"Current password" : "Aktuálne heslo",
"New password" : "Nové heslo",
- "Wrong password. Reset it?" : "Chybné heslo. Chcete ho obnoviť?",
"Wrong password." : "Nesprávne heslo.",
"Cancel" : "Zrušiť",
"Server" : "Server",
@@ -151,8 +150,9 @@
"Clear Username-LDAP User Mapping" : "Zrušiť mapovanie LDAP používateľských mien",
"Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín",
" entries available within the provided Base DN" : "dostupných záznamov v zadanej základnej DN",
+ "Wrong password. Reset it?" : "Chybné heslo. Chcete ho obnoviť?",
"LDAP" : "LDAP",
"<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>Upozornenie:</b> Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich.",
"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." : "Používateľské mená sa používajú na uchovávanie a priraďovanie (meta)dát. Každý používateľ v LDAP bude mať interné používateľské meno, aby bolo možné správne identifikovať a rozpoznávať používateľov. To je vyžaduje vytvorenie mapovania používateľských mien na používateľov v LDAPe. Vytvorené používateľské meno sa namapuje na UUID používateľa v LDAPe. Naviac je sa vo vyrovnávacej pamäti udržiava DN, aby sa obmedzila nadmerná interakcia s LDAPom, ale to sa nepoužíva na identifikáciu. Ak sa DN zmení, zmena bude správne rozpoznaná. Interné používateľské meno sa používa všade. Vyčistenie mapovaní vymaže zvyšky všade. Vyčistenie mapovaní naviac nie je špecifické pre určitú konfiguráciu; bude mať vplyv na všetky konfigurácie LDAPu! Nikdy nečistite mapovanie v produkčnom prostredí, len v testovacej alebo experimentálnej fáze."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/sq.js b/apps/user_ldap/l10n/sq.js
index 2cf615338e8..f6dde47e473 100644
--- a/apps/user_ldap/l10n/sq.js
+++ b/apps/user_ldap/l10n/sq.js
@@ -114,7 +114,6 @@ OC.L10N.register(
"Current password" : "Fjalëkalimi aktual",
"New password" : "Fjalëkalim i ri",
"Renew password" : "Rinovo fjalëkalimin",
- "Wrong password. Reset it?" : "Fjalëkalim i gabuar. Do ta rivendosësh?",
"Wrong password." : "Fjalëkalim i gabuar.",
"Cancel" : "Anullo",
"Server" : "Shërbyes",
@@ -182,6 +181,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Pastro Përshoqërimin Emër përdoruesi-Përdorues LDAP",
"Clear Groupname-LDAP Group Mapping" : "Pastro Përshoqërimin Emër grupi-Grup LDAP",
" entries available within the provided Base DN" : " zëra të gatshëm brenda DN-së Bazë të dhënë",
+ "Wrong password. Reset it?" : "Fjalëkalim i gabuar. Do ta rivendosësh?",
"LDAP" : "LDAP",
"<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>Kujdes:</b> user_ldap dhe user_webdavauth të aplikacionit janë të papërputhshëm. Mund t’ju ndodhin sjellje të papritura. Ju lutemi, kërkojini përgjegjësit të sistemit tuaj të çaktivizojë një prej tyre.",
"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." : "Emrat e përdoruesve përdoren për të depozituar dhe shpërndarë (tej) të dhëna. Që të mund të identifikohen dhe pranohen saktësisht përdoruesit, çdo përdorues LDAP do të ketë një emër të brendshëm përdoruesi. Kjo kërkon përshoqërim nga emër përdoruesi te përdorues LDAP. Emri i përdoruesit i krijuar i përshoqërohet UUID-së së përdoruesit LDAP. Tej kësaj, edhe DN-ja ruhet në fshehtinë, për të zvogëluar ndërveprim LDAP, por s’përdoret për identifikim. Nëse ndryshon DN-ja, ndryshimet do të gjenden. Emri i brendshëm i përdoruesi përdoret gjithandej. Heqja e përshoqërimeve do të lërë thërrime ngado. Heqja e përshoqërimeve nuk preket nga formësimi, prek krejt formësimet për LDAP-në! Mos i hiqni kurrë përshoqërimet në një mjedis prodhimi, vetëm në një faqë testimi ose eksperimetale."
diff --git a/apps/user_ldap/l10n/sq.json b/apps/user_ldap/l10n/sq.json
index 3662ef627c5..65d1ae5ea3b 100644
--- a/apps/user_ldap/l10n/sq.json
+++ b/apps/user_ldap/l10n/sq.json
@@ -112,7 +112,6 @@
"Current password" : "Fjalëkalimi aktual",
"New password" : "Fjalëkalim i ri",
"Renew password" : "Rinovo fjalëkalimin",
- "Wrong password. Reset it?" : "Fjalëkalim i gabuar. Do ta rivendosësh?",
"Wrong password." : "Fjalëkalim i gabuar.",
"Cancel" : "Anullo",
"Server" : "Shërbyes",
@@ -180,6 +179,7 @@
"Clear Username-LDAP User Mapping" : "Pastro Përshoqërimin Emër përdoruesi-Përdorues LDAP",
"Clear Groupname-LDAP Group Mapping" : "Pastro Përshoqërimin Emër grupi-Grup LDAP",
" entries available within the provided Base DN" : " zëra të gatshëm brenda DN-së Bazë të dhënë",
+ "Wrong password. Reset it?" : "Fjalëkalim i gabuar. Do ta rivendosësh?",
"LDAP" : "LDAP",
"<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>Kujdes:</b> user_ldap dhe user_webdavauth të aplikacionit janë të papërputhshëm. Mund t’ju ndodhin sjellje të papritura. Ju lutemi, kërkojini përgjegjësit të sistemit tuaj të çaktivizojë një prej tyre.",
"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." : "Emrat e përdoruesve përdoren për të depozituar dhe shpërndarë (tej) të dhëna. Që të mund të identifikohen dhe pranohen saktësisht përdoruesit, çdo përdorues LDAP do të ketë një emër të brendshëm përdoruesi. Kjo kërkon përshoqërim nga emër përdoruesi te përdorues LDAP. Emri i përdoruesit i krijuar i përshoqërohet UUID-së së përdoruesit LDAP. Tej kësaj, edhe DN-ja ruhet në fshehtinë, për të zvogëluar ndërveprim LDAP, por s’përdoret për identifikim. Nëse ndryshon DN-ja, ndryshimet do të gjenden. Emri i brendshëm i përdoruesi përdoret gjithandej. Heqja e përshoqërimeve do të lërë thërrime ngado. Heqja e përshoqërimeve nuk preket nga formësimi, prek krejt formësimet për LDAP-në! Mos i hiqni kurrë përshoqërimet në një mjedis prodhimi, vetëm në një faqë testimi ose eksperimetale."
diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js
index e730121cdde..390f07a9346 100644
--- a/apps/user_ldap/l10n/sr.js
+++ b/apps/user_ldap/l10n/sr.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Тренутна лозинка",
"New password" : "Нова лозинка",
"Renew password" : "Обнови лозинку",
- "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?",
"Wrong password." : "Лоша лозинка.",
"Cancel" : "Одустани",
"Server" : "Сервер",
@@ -184,9 +183,11 @@ OC.L10N.register(
"UUID Attribute for Users:" : "UUID параметри за кориснике:",
"UUID Attribute for Groups:" : "UUID параметри за групе:",
"Username-LDAP User Mapping" : "Username-LDAP мапирање корисника",
+ "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање метаподатака. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази.",
"Clear Username-LDAP User Mapping" : "Очисти Username-LDAP мапирање корисника",
"Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група",
" entries available within the provided Base DN" : "уноса доступно за дати базни ДН",
+ "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?",
"LDAP" : "LDAP",
"<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 нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање (мета) података. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази."
diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json
index 6dcf8706824..9423ba4424a 100644
--- a/apps/user_ldap/l10n/sr.json
+++ b/apps/user_ldap/l10n/sr.json
@@ -117,7 +117,6 @@
"Current password" : "Тренутна лозинка",
"New password" : "Нова лозинка",
"Renew password" : "Обнови лозинку",
- "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?",
"Wrong password." : "Лоша лозинка.",
"Cancel" : "Одустани",
"Server" : "Сервер",
@@ -182,9 +181,11 @@
"UUID Attribute for Users:" : "UUID параметри за кориснике:",
"UUID Attribute for Groups:" : "UUID параметри за групе:",
"Username-LDAP User Mapping" : "Username-LDAP мапирање корисника",
+ "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање метаподатака. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази.",
"Clear Username-LDAP User Mapping" : "Очисти Username-LDAP мапирање корисника",
"Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група",
" entries available within the provided Base DN" : "уноса доступно за дати базни ДН",
+ "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?",
"LDAP" : "LDAP",
"<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 нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање (мета) података. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази."
diff --git a/apps/user_ldap/l10n/sv.js b/apps/user_ldap/l10n/sv.js
index 60f29f4e325..e0c1c5297b9 100644
--- a/apps/user_ldap/l10n/sv.js
+++ b/apps/user_ldap/l10n/sv.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "Nuvarande lösenord",
"New password" : "Nytt lösenord",
"Renew password" : "Förnya lösenord",
- "Wrong password. Reset it?" : "Fel lösenord. Återställa det?",
"Wrong password." : "Fel lösenord.",
"Cancel" : "Avbryt",
"Server" : "Server",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning",
"Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning",
" entries available within the provided Base DN" : "Poster tillgängliga inom angivet Base DN",
+ "Wrong password. Reset it?" : "Fel lösenord. Återställa det?",
"LDAP" : "LDAP",
"<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>Varning:</b> Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dem.",
"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." : "Användarnamn används för att lagra och tilldela (meta) data. För att exakt identifiera och känna igen användare, kommer varje LDAP-användare att ha ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID't för LDAP-användaren. Dessutom är DN't cachat också för att minska LDAP-interaktion, men används inte för identifiering. Om DN't ändras, kommer ändringar att hittas. Det interna användarnamnet används överallt. Rensning av mappningarna kommer att ha kvarlevor överallt. Rensning av mappningarna är inte konfigurationskänsliga, de påverka alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i test- eller experimentläge."
diff --git a/apps/user_ldap/l10n/sv.json b/apps/user_ldap/l10n/sv.json
index 077ca66bc86..4582aa0c1fc 100644
--- a/apps/user_ldap/l10n/sv.json
+++ b/apps/user_ldap/l10n/sv.json
@@ -116,7 +116,6 @@
"Current password" : "Nuvarande lösenord",
"New password" : "Nytt lösenord",
"Renew password" : "Förnya lösenord",
- "Wrong password. Reset it?" : "Fel lösenord. Återställa det?",
"Wrong password." : "Fel lösenord.",
"Cancel" : "Avbryt",
"Server" : "Server",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning",
"Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning",
" entries available within the provided Base DN" : "Poster tillgängliga inom angivet Base DN",
+ "Wrong password. Reset it?" : "Fel lösenord. Återställa det?",
"LDAP" : "LDAP",
"<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>Varning:</b> Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dem.",
"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." : "Användarnamn används för att lagra och tilldela (meta) data. För att exakt identifiera och känna igen användare, kommer varje LDAP-användare att ha ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID't för LDAP-användaren. Dessutom är DN't cachat också för att minska LDAP-interaktion, men används inte för identifiering. Om DN't ändras, kommer ändringar att hittas. Det interna användarnamnet används överallt. Rensning av mappningarna kommer att ha kvarlevor överallt. Rensning av mappningarna är inte konfigurationskänsliga, de påverka alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i test- eller experimentläge."
diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js
index f91dc2fa6e0..71ff23aedf6 100644
--- a/apps/user_ldap/l10n/tr.js
+++ b/apps/user_ldap/l10n/tr.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Current password" : "Geçerli parola",
"New password" : "Yeni parola",
"Renew password" : "Parolayı yenile",
- "Wrong password. Reset it?" : "Parola yanlış. Sıfırlamak ister misiniz?",
"Wrong password." : "Parola yanlış.",
"Cancel" : "İptal",
"Server" : "Sunucu",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirmesini Kaldır",
"Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır",
" entries available within the provided Base DN" : "kayıt belirtilen Base DN üzerinde var",
+ "Wrong password. Reset it?" : "Parola yanlış. Sıfırlamak ister misiniz?",
"LDAP" : "LDAP",
"<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>Uyarı:</b> user_ldap ve user_webdavauth uygulamaları uyumlu değil. Beklenmedik bir davranışla karşılaşabilirsiniz. Lütfen ikisinden birini devre dışı bırakmak için sistem yöneticinizle görüşün.",
"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." : "Kullanıcı adları, (üst) veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın."
diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json
index aef6b0d9c00..5c34e5f0eca 100644
--- a/apps/user_ldap/l10n/tr.json
+++ b/apps/user_ldap/l10n/tr.json
@@ -117,7 +117,6 @@
"Current password" : "Geçerli parola",
"New password" : "Yeni parola",
"Renew password" : "Parolayı yenile",
- "Wrong password. Reset it?" : "Parola yanlış. Sıfırlamak ister misiniz?",
"Wrong password." : "Parola yanlış.",
"Cancel" : "İptal",
"Server" : "Sunucu",
@@ -186,6 +185,7 @@
"Clear Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirmesini Kaldır",
"Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır",
" entries available within the provided Base DN" : "kayıt belirtilen Base DN üzerinde var",
+ "Wrong password. Reset it?" : "Parola yanlış. Sıfırlamak ister misiniz?",
"LDAP" : "LDAP",
"<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>Uyarı:</b> user_ldap ve user_webdavauth uygulamaları uyumlu değil. Beklenmedik bir davranışla karşılaşabilirsiniz. Lütfen ikisinden birini devre dışı bırakmak için sistem yöneticinizle görüşün.",
"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." : "Kullanıcı adları, (üst) veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın."
diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js
index 00678e0eaee..bb39875effd 100644
--- a/apps/user_ldap/l10n/uk.js
+++ b/apps/user_ldap/l10n/uk.js
@@ -21,8 +21,8 @@ OC.L10N.register(
"Error while clearing the mappings." : "Помилка при очищенні відображень.",
"Select attributes" : "Виберіть атрибути",
"User found and settings verified." : "Користувача знайдено і налаштування перевірені.",
- "_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено "],
- "_%s user found_::_%s users found_" : ["%s користувача знайдено","%s користувачів знайдено","%s користувачів знайдено"],
+ "_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено ","%s груп знайдено "],
+ "_%s user found_::_%s users found_" : ["%s користувача знайдено","%s користувачів знайдено","%s користувачів знайдено","%s користувачів знайдено"],
"Could not find the desired feature" : "Не вдалося знайти потрібну функцію",
"Invalid Host" : "Невірний Host",
"Test Configuration" : "Тестове налаштування",
@@ -107,4 +107,4 @@ 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>Попередження:</b> Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud використовує імена користувачів для зберігання та призначення метаданих. Для точної ідентифікації та розпізнавання користувачів, кожен користувач LDAP буде мати своє внутрішнє ім'я користувача. Це вимагає прив'язки імені користувача ownCloud до користувача LDAP. При створенні ім'я користувача призначається ідентифікатором UUID користувача LDAP. Крім цього кешируєтся доменне ім'я (DN) для зменшення числа звернень до LDAP, однак воно не використовується для ідентифікації. Якщо доменне ім'я було змінено, про це стане відомо ownCloud. Внутрішнє ім'я ownCloud використовується повсюдно в ownCloud. Після скидання прив'язок в базі можуть зберегтися залишки старої інформації. Скидання прив'язок не прив'язане до конфігурації, воно вплине на всі LDAP підключення! Ні в якому разі не рекомендується скидати прив'язки якщо система вже знаходиться в експлуатації, тільки на етапі тестування."
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/apps/user_ldap/l10n/uk.json b/apps/user_ldap/l10n/uk.json
index b7adace6ea6..08dc887c53c 100644
--- a/apps/user_ldap/l10n/uk.json
+++ b/apps/user_ldap/l10n/uk.json
@@ -19,8 +19,8 @@
"Error while clearing the mappings." : "Помилка при очищенні відображень.",
"Select attributes" : "Виберіть атрибути",
"User found and settings verified." : "Користувача знайдено і налаштування перевірені.",
- "_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено "],
- "_%s user found_::_%s users found_" : ["%s користувача знайдено","%s користувачів знайдено","%s користувачів знайдено"],
+ "_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено ","%s груп знайдено "],
+ "_%s user found_::_%s users found_" : ["%s користувача знайдено","%s користувачів знайдено","%s користувачів знайдено","%s користувачів знайдено"],
"Could not find the desired feature" : "Не вдалося знайти потрібну функцію",
"Invalid Host" : "Невірний Host",
"Test Configuration" : "Тестове налаштування",
@@ -104,5 +104,5 @@
"LDAP" : "LDAP",
"<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 не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud використовує імена користувачів для зберігання та призначення метаданих. Для точної ідентифікації та розпізнавання користувачів, кожен користувач LDAP буде мати своє внутрішнє ім'я користувача. Це вимагає прив'язки імені користувача ownCloud до користувача LDAP. При створенні ім'я користувача призначається ідентифікатором UUID користувача LDAP. Крім цього кешируєтся доменне ім'я (DN) для зменшення числа звернень до LDAP, однак воно не використовується для ідентифікації. Якщо доменне ім'я було змінено, про це стане відомо ownCloud. Внутрішнє ім'я ownCloud використовується повсюдно в ownCloud. Після скидання прив'язок в базі можуть зберегтися залишки старої інформації. Скидання прив'язок не прив'язане до конфігурації, воно вплине на всі LDAP підключення! Ні в якому разі не рекомендується скидати прив'язки якщо система вже знаходиться в експлуатації, тільки на етапі тестування."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/zh_CN.js b/apps/user_ldap/l10n/zh_CN.js
index 1c528200172..e060132b955 100644
--- a/apps/user_ldap/l10n/zh_CN.js
+++ b/apps/user_ldap/l10n/zh_CN.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Current password" : "当前密码",
"New password" : "新密码",
"Renew password" : "更新密码",
- "Wrong password. Reset it?" : "密码错误。是否重置?",
"Wrong password." : "密码错误。",
"Cancel" : "取消!",
"Server" : "服务器",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "清除用户-LDAP用户映射",
"Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射",
" entries available within the provided Base DN" : "基础DN中的可用条目",
+ "Wrong password. Reset it?" : "密码错误。是否重置?",
"LDAP" : "LDAP",
"<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 之间不兼容。您可能遭遇未预料的行为。请让系统管理员禁用其中一个。",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配数据 (元)。为了准确地识别和确认用户,每个用户都有一个内部用户名。这需要一个 ownCloud 用户名到 LDAP 用户的映射。创建的用户名被映射到 LDAP 用户的 UUID。此外,DN 也会被缓存,以减少 LDAP 连接,但它不用于识别。DN 的变化会被监视到。内部用户名会被用于所有地方。清除映射将导致一片混乱。清除映射不是常用的设置,它会影响到所有的 LDAP 配置!千万不要在正式环境中清除映射,只有在测试或试验时才这样做。"
diff --git a/apps/user_ldap/l10n/zh_CN.json b/apps/user_ldap/l10n/zh_CN.json
index 42b3bb4c53d..d47cf120f01 100644
--- a/apps/user_ldap/l10n/zh_CN.json
+++ b/apps/user_ldap/l10n/zh_CN.json
@@ -116,7 +116,6 @@
"Current password" : "当前密码",
"New password" : "新密码",
"Renew password" : "更新密码",
- "Wrong password. Reset it?" : "密码错误。是否重置?",
"Wrong password." : "密码错误。",
"Cancel" : "取消!",
"Server" : "服务器",
@@ -184,6 +183,7 @@
"Clear Username-LDAP User Mapping" : "清除用户-LDAP用户映射",
"Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射",
" entries available within the provided Base DN" : "基础DN中的可用条目",
+ "Wrong password. Reset it?" : "密码错误。是否重置?",
"LDAP" : "LDAP",
"<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 之间不兼容。您可能遭遇未预料的行为。请让系统管理员禁用其中一个。",
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配数据 (元)。为了准确地识别和确认用户,每个用户都有一个内部用户名。这需要一个 ownCloud 用户名到 LDAP 用户的映射。创建的用户名被映射到 LDAP 用户的 UUID。此外,DN 也会被缓存,以减少 LDAP 连接,但它不用于识别。DN 的变化会被监视到。内部用户名会被用于所有地方。清除映射将导致一片混乱。清除映射不是常用的设置,它会影响到所有的 LDAP 配置!千万不要在正式环境中清除映射,只有在测试或试验时才这样做。"
diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php
index eb4101ddc25..27578921450 100644
--- a/apps/user_ldap/lib/User/User.php
+++ b/apps/user_ldap/lib/User/User.php
@@ -617,7 +617,7 @@ class User {
$uid = $params['uid'];
if(isset($uid) && $uid === $this->getUsername()) {
//retrieve relevant user attributes
- $result = $this->access->search('objectclass=*', $this->dn, ['pwdpolicysubentry', 'pwdgraceusetime', 'pwdreset', 'pwdchangedtime']);
+ $result = $this->access->search('objectclass=*', array($this->dn), ['pwdpolicysubentry', 'pwdgraceusetime', 'pwdreset', 'pwdchangedtime']);
if(array_key_exists('pwdpolicysubentry', $result[0])) {
$pwdPolicySubentry = $result[0]['pwdpolicysubentry'];
@@ -634,7 +634,7 @@ class User {
$cacheKey = 'ppolicyAttributes' . $ppolicyDN;
$result = $this->connection->getFromCache($cacheKey);
if(is_null($result)) {
- $result = $this->access->search('objectclass=*', $ppolicyDN, ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']);
+ $result = $this->access->search('objectclass=*', array($ppolicyDN), ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']);
$this->connection->writeToCache($cacheKey, $result);
}
diff --git a/apps/user_ldap/templates/renewpassword.php b/apps/user_ldap/templates/renewpassword.php
index 9fc4271d6be..12b1d7fc045 100644
--- a/apps/user_ldap/templates/renewpassword.php
+++ b/apps/user_ldap/templates/renewpassword.php
@@ -53,11 +53,7 @@ style('user_ldap', 'renewPassword');
<input type="submit" id="submit" class="login primary icon-confirm-white" title="" value="<?php p($l->t('Renew password')); ?>"/>
- <?php if (!empty($_['invalidpassword']) && !empty($_['canResetPassword'])) { ?>
- <a id="lost-password" class="warning" href="<?php p($_['resetPasswordLink']); ?>">
- <?php p($l->t('Wrong password. Reset it?')); ?>
- </a>
- <?php } else if (!empty($_['invalidpassword'])) { ?>
+ <?php if (!empty($_['invalidpassword'])) { ?>
<p class="warning">
<?php p($l->t('Wrong password.')); ?>
</p>
diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php
index 27bd7762e39..c61a9bd3d47 100644
--- a/apps/user_ldap/tests/User/UserTest.php
+++ b/apps/user_ldap/tests/User/UserTest.php
@@ -1132,7 +1132,7 @@ class UserTest extends \Test\TestCase {
$this->access->expects($this->any())
->method('search')
->will($this->returnCallback(function($filter, $base) {
- if($base === 'uid=alice') {
+ if($base === array('uid=alice')) {
return array(
array(
'pwdchangedtime' => array((new \DateTime())->sub(new \DateInterval('P28D'))->format('Ymdhis').'Z'),
@@ -1140,7 +1140,7 @@ class UserTest extends \Test\TestCase {
),
);
}
- if($base === 'cn=default,ou=policies,dc=foo,dc=bar') {
+ if($base === array('cn=default,ou=policies,dc=foo,dc=bar')) {
return array(
array(
'pwdmaxage' => array('2592000'),
@@ -1202,7 +1202,7 @@ class UserTest extends \Test\TestCase {
$this->access->expects($this->any())
->method('search')
->will($this->returnCallback(function($filter, $base) {
- if($base === 'uid=alice') {
+ if($base === array('uid=alice')) {
return array(
array(
'pwdpolicysubentry' => array('cn=custom,ou=policies,dc=foo,dc=bar'),
@@ -1211,7 +1211,7 @@ class UserTest extends \Test\TestCase {
)
);
}
- if($base === 'cn=custom,ou=policies,dc=foo,dc=bar') {
+ if($base === array('cn=custom,ou=policies,dc=foo,dc=bar')) {
return array(
array(
'pwdmaxage' => array('2592000'),
diff --git a/apps/workflowengine/l10n/ca.js b/apps/workflowengine/l10n/ca.js
index 2051fcff347..f0958152e40 100644
--- a/apps/workflowengine/l10n/ca.js
+++ b/apps/workflowengine/l10n/ca.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"workflowengine",
{
+ "Group list is empty" : "La llista del grup és buida",
"Saved" : "Desat",
"Saving failed:" : "Error al desar",
"File MIME type" : "Tipus MIME d\\'arxiu",
@@ -33,7 +34,7 @@ OC.L10N.register(
"Predefined URLs" : "URLs predefinits",
"Files WebDAV" : "Arxius WebDAV",
"Request user agent" : "Agent d\\'usuari de la petició",
- "Sync clients" : "Sincronitzar clients",
+ "Sync clients" : "Aplicacions per sincronitzar",
"Android client" : "Client android",
"iOS client" : "Client iOS",
"Desktop client" : "Client d'escriptori",
diff --git a/apps/workflowengine/l10n/ca.json b/apps/workflowengine/l10n/ca.json
index 66ee033d04c..c30639e370e 100644
--- a/apps/workflowengine/l10n/ca.json
+++ b/apps/workflowengine/l10n/ca.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Group list is empty" : "La llista del grup és buida",
"Saved" : "Desat",
"Saving failed:" : "Error al desar",
"File MIME type" : "Tipus MIME d\\'arxiu",
@@ -31,7 +32,7 @@
"Predefined URLs" : "URLs predefinits",
"Files WebDAV" : "Arxius WebDAV",
"Request user agent" : "Agent d\\'usuari de la petició",
- "Sync clients" : "Sincronitzar clients",
+ "Sync clients" : "Aplicacions per sincronitzar",
"Android client" : "Client android",
"iOS client" : "Client iOS",
"Desktop client" : "Client d'escriptori",
diff --git a/apps/workflowengine/l10n/cs.js b/apps/workflowengine/l10n/cs.js
index d5b34773d4b..af4429e9a36 100644
--- a/apps/workflowengine/l10n/cs.js
+++ b/apps/workflowengine/l10n/cs.js
@@ -68,4 +68,4 @@ OC.L10N.register(
"Saving…" : "Ukládání…",
"Loading…" : "Načítání…"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/apps/workflowengine/l10n/cs.json b/apps/workflowengine/l10n/cs.json
index 923fc6a4004..fc56c084c19 100644
--- a/apps/workflowengine/l10n/cs.json
+++ b/apps/workflowengine/l10n/cs.json
@@ -65,5 +65,5 @@
"Save" : "Uložit",
"Saving…" : "Ukládání…",
"Loading…" : "Načítání…"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/es_GT.js b/apps/workflowengine/l10n/es_GT.js
index b1bae553634..48cfb3adb42 100644
--- a/apps/workflowengine/l10n/es_GT.js
+++ b/apps/workflowengine/l10n/es_GT.js
@@ -1,6 +1,8 @@
OC.L10N.register(
"workflowengine",
{
+ "Group list is empty" : "La lista de grupos esta vacía",
+ "Unable to retrieve the group list" : "No fue posible recuperar la lista del gurpo",
"Saved" : "Guardado",
"Saving failed:" : "Falla al guardar:",
"File MIME type" : "Tipo MIME del archivo",
@@ -59,6 +61,7 @@ OC.L10N.register(
"Check %s is invalid" : "La validación %s no es inválida",
"Check #%s does not exist" : "La validación #%s no existe",
"Workflow" : "Flujo de trabajo",
+ "Files workflow engine" : "Motor de flujo de trabajo de archivos",
"Open documentation" : "Abrir la documentación",
"Add rule group" : "Agregar regla de grupo",
"Short rule description" : "Descripción corta de la regla",
diff --git a/apps/workflowengine/l10n/es_GT.json b/apps/workflowengine/l10n/es_GT.json
index 7b0db7e4727..7baaa98fffd 100644
--- a/apps/workflowengine/l10n/es_GT.json
+++ b/apps/workflowengine/l10n/es_GT.json
@@ -1,4 +1,6 @@
{ "translations": {
+ "Group list is empty" : "La lista de grupos esta vacía",
+ "Unable to retrieve the group list" : "No fue posible recuperar la lista del gurpo",
"Saved" : "Guardado",
"Saving failed:" : "Falla al guardar:",
"File MIME type" : "Tipo MIME del archivo",
@@ -57,6 +59,7 @@
"Check %s is invalid" : "La validación %s no es inválida",
"Check #%s does not exist" : "La validación #%s no existe",
"Workflow" : "Flujo de trabajo",
+ "Files workflow engine" : "Motor de flujo de trabajo de archivos",
"Open documentation" : "Abrir la documentación",
"Add rule group" : "Agregar regla de grupo",
"Short rule description" : "Descripción corta de la regla",
diff --git a/apps/workflowengine/l10n/fa.js b/apps/workflowengine/l10n/fa.js
index 023c22aca89..789fe77645f 100644
--- a/apps/workflowengine/l10n/fa.js
+++ b/apps/workflowengine/l10n/fa.js
@@ -68,4 +68,4 @@ OC.L10N.register(
"Saving…" : "در حال ذخیره",
"Loading…" : "در حال بار گزاری"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/apps/workflowengine/l10n/fa.json b/apps/workflowengine/l10n/fa.json
index a2342b3198c..6607456938b 100644
--- a/apps/workflowengine/l10n/fa.json
+++ b/apps/workflowengine/l10n/fa.json
@@ -65,5 +65,5 @@
"Save" : "ذخیره",
"Saving…" : "در حال ذخیره",
"Loading…" : "در حال بار گزاری"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/ka_GE.js b/apps/workflowengine/l10n/ka_GE.js
index f2060064f1c..c4feaee0b2e 100644
--- a/apps/workflowengine/l10n/ka_GE.js
+++ b/apps/workflowengine/l10n/ka_GE.js
@@ -69,4 +69,4 @@ OC.L10N.register(
"Saving…" : "მიმდინარეობს დამახსოვრება...",
"Loading…" : "იტვირთება..."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/apps/workflowengine/l10n/ka_GE.json b/apps/workflowengine/l10n/ka_GE.json
index 5cf10e81968..419cd38beea 100644
--- a/apps/workflowengine/l10n/ka_GE.json
+++ b/apps/workflowengine/l10n/ka_GE.json
@@ -66,5 +66,5 @@
"Save" : "შენახვა",
"Saving…" : "მიმდინარეობს დამახსოვრება...",
"Loading…" : "იტვირთება..."
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/lt_LT.js b/apps/workflowengine/l10n/lt_LT.js
index 018745d964a..66026d54714 100644
--- a/apps/workflowengine/l10n/lt_LT.js
+++ b/apps/workflowengine/l10n/lt_LT.js
@@ -70,4 +70,4 @@ OC.L10N.register(
"Saving…" : "Įrašoma…",
"Loading…" : "Įkeliama…"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/apps/workflowengine/l10n/lt_LT.json b/apps/workflowengine/l10n/lt_LT.json
index 4dc641183c6..3d0b36f5220 100644
--- a/apps/workflowengine/l10n/lt_LT.json
+++ b/apps/workflowengine/l10n/lt_LT.json
@@ -67,5 +67,5 @@
"Save" : "Įrašyti",
"Saving…" : "Įrašoma…",
"Loading…" : "Įkeliama…"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/sk.js b/apps/workflowengine/l10n/sk.js
index 0afe7721b24..a50f5f1d0a0 100644
--- a/apps/workflowengine/l10n/sk.js
+++ b/apps/workflowengine/l10n/sk.js
@@ -70,4 +70,4 @@ OC.L10N.register(
"Saving…" : "Ukladá sa...",
"Loading…" : "Načítava sa..."
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/apps/workflowengine/l10n/sk.json b/apps/workflowengine/l10n/sk.json
index 6a7dcd9c56f..9e9981970c7 100644
--- a/apps/workflowengine/l10n/sk.json
+++ b/apps/workflowengine/l10n/sk.json
@@ -67,5 +67,5 @@
"Save" : "Uložiť",
"Saving…" : "Ukladá sa...",
"Loading…" : "Načítava sa..."
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/core/Migrations/Version14000Date20180516101403.php b/core/Migrations/Version14000Date20180516101403.php
new file mode 100644
index 00000000000..9b56e0ab601
--- /dev/null
+++ b/core/Migrations/Version14000Date20180516101403.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OC\Core\Migrations;
+
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\SimpleMigrationStep;
+use OCP\Migration\IOutput;
+
+class Version14000Date20180516101403 extends SimpleMigrationStep {
+
+ /**
+ * @param IOutput $output
+ * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
+ * @param array $options
+ * @return null|ISchemaWrapper
+ */
+ public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) {
+ /** @var ISchemaWrapper $schema */
+ $schema = $schemaClosure();
+
+ $table = $schema->getTable('authtoken');
+
+ if (!$table->hasColumn('expires')) {
+ $table->addColumn('expires', 'integer', [
+ 'notnull' => false,
+ 'length' => 4,
+ 'default' => null,
+ 'unsigned' => true,
+ ]);
+
+ return $schema;
+ }
+ return null;
+ }
+}
diff --git a/core/js/files/client.js b/core/js/files/client.js
index e16facbde07..7e0e136989a 100644
--- a/core/js/files/client.js
+++ b/core/js/files/client.js
@@ -932,7 +932,7 @@
var client = new OC.Files.Client({
host: OC.getHost(),
port: OC.getPort(),
- root: OC.linkToRemoteBase('webdav'),
+ root: OC.linkToRemoteBase('dav') + '/files/' + OC.getCurrentUser().uid,
useHTTPS: OC.getProtocol() === 'https'
});
OC.Files._defaultClient = client;
diff --git a/core/l10n/ca.js b/core/l10n/ca.js
index bda89c37993..9daa4b7705a 100644
--- a/core/l10n/ca.js
+++ b/core/l10n/ca.js
@@ -73,7 +73,7 @@ OC.L10N.register(
"Cancel" : "Cancel·la",
"Confirm" : "Confirma",
"Failed to authenticate, try again" : "Error d'autenticació, torna-ho a intentar",
- "seconds ago" : "segons enrere",
+ "seconds ago" : "fa uns segons",
"Logging in …" : "Accedint a …",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "L'enllaç per reiniciar la vostra contrasenya s'ha enviat al vostre correu. Si no el rebeu en un temps raonable comproveu les carpetes de spam. <br>Si no és allà, pregunteu a l'administrador local.",
"Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Els vostres fitxers estan encriptats. No hi haurà manera de recuperar les dades després que reestabliu la contrasenya. <br />Si no esteu segurs del que feu, contacteu amb l'administrador abans de continuar.<br />Voleu continuar?",
@@ -110,6 +110,7 @@ OC.L10N.register(
"Good password" : "Contrasenya bona",
"Strong password" : "Contrasenya forta",
"Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor",
+ "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the <a href=\"{docUrl}\">security tips</a>." : "S'està accedint de manera no segura mitjançant HTTP. Es recomana utilitzar HTTPS, tal i com detallen els <a href=\"{docUrl}\">consells de seguretat</a>.",
"Shared" : "Compartit",
"Shared with" : "Compartit amb",
"Shared by" : "Compartit per",
diff --git a/core/l10n/ca.json b/core/l10n/ca.json
index 330e68d5060..4ec20e284ce 100644
--- a/core/l10n/ca.json
+++ b/core/l10n/ca.json
@@ -71,7 +71,7 @@
"Cancel" : "Cancel·la",
"Confirm" : "Confirma",
"Failed to authenticate, try again" : "Error d'autenticació, torna-ho a intentar",
- "seconds ago" : "segons enrere",
+ "seconds ago" : "fa uns segons",
"Logging in …" : "Accedint a …",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "L'enllaç per reiniciar la vostra contrasenya s'ha enviat al vostre correu. Si no el rebeu en un temps raonable comproveu les carpetes de spam. <br>Si no és allà, pregunteu a l'administrador local.",
"Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Els vostres fitxers estan encriptats. No hi haurà manera de recuperar les dades després que reestabliu la contrasenya. <br />Si no esteu segurs del que feu, contacteu amb l'administrador abans de continuar.<br />Voleu continuar?",
@@ -108,6 +108,7 @@
"Good password" : "Contrasenya bona",
"Strong password" : "Contrasenya forta",
"Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor",
+ "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the <a href=\"{docUrl}\">security tips</a>." : "S'està accedint de manera no segura mitjançant HTTP. Es recomana utilitzar HTTPS, tal i com detallen els <a href=\"{docUrl}\">consells de seguretat</a>.",
"Shared" : "Compartit",
"Shared with" : "Compartit amb",
"Shared by" : "Compartit per",
diff --git a/core/l10n/cs.js b/core/l10n/cs.js
index b5bc8b1dd95..860818e1f2f 100644
--- a/core/l10n/cs.js
+++ b/core/l10n/cs.js
@@ -64,7 +64,7 @@ OC.L10N.register(
"Error fetching contact actions" : "Chyba při získávání akcí kontaktů",
"Settings" : "Nastavení",
"Connection to server lost" : "Připojení k serveru ztraceno",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problém s načítáním stránky, obnovení za %n sekundu","Problém s načítáním stránky, obnovení za %n sekundy","Problém s načítáním stránky, obnovení za %n sekund"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problém s načítáním stránky, obnovení za %n sekundu","Problém s načítáním stránky, obnovení za %n sekundy","Problém s načítáním stránky, obnovení za %n sekund","Problém s načítáním stránky, obnovení za %n sekund"],
"Saving..." : "Ukládám...",
"Dismiss" : "Zamítnout",
"This action requires you to confirm your password" : "Tato akce vyžaduje zadání vašeho hesla",
@@ -91,7 +91,7 @@ OC.L10N.register(
"OK" : "OK",
"Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}",
"read-only" : "pouze ke čtení",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů","{count} souborových konfliktů"],
"One file conflict" : "Jeden konflikt souboru",
"New Files" : "Nové soubory",
"Already existing files" : "Již existující soubory",
@@ -170,7 +170,7 @@ OC.L10N.register(
"Could not unshare" : "Nelze zrušit sdílení",
"Error while sharing" : "Chyba při sdílení",
"Share details could not be loaded for this item." : "Detaily sdílení pro tuto položku nelze načíst.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Alespoň {count} znak je vyžadován pro automatické doplňování","Alespoň {count} znaky jsou vyžadovány pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Alespoň {count} znak je vyžadován pro automatické doplňování","Alespoň {count} znaky jsou vyžadovány pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování"],
"This list is maybe truncated - please refine your search term to see more results." : "Tento seznam je možná zkrácený - prosím upřesněte vyhledávací výraz pro více výsledků.",
"No users or groups found for {search}" : "Nebyli nalezeni žádní členové ani skupiny pro {search}",
"No users found for {search}" : "Nebyli nalezeni žádní uživatelé pro {search}",
@@ -201,7 +201,7 @@ OC.L10N.register(
"Hello {name}" : "Vítej, {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Toto jsou vaše výsledky hledání<script>alert(1)</script></strong>",
"new" : "nový",
- "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"],
+ "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů","stáhnout %n souborů"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "Probíhá aktualizace, opuštění této stránky může v některých prostředích přerušit proces.",
"Update to {version}" : "Aktualizace na {version}",
"An error occurred." : "Došlo k chybě.",
@@ -209,10 +209,10 @@ OC.L10N.register(
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizace nebyla úspěšná. Pro více informací si <a href=\"{url}\">přečtěte komentáře ve fóru</a> pojednávající o tomto problému.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Aktualizace byla neúspěšná. Nahlaste prosím problém <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">komunitě Nextcloudu</a>",
"Continue to Nextcloud" : "Pokračovat do Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundu.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundy.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekund."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundu.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundy.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekund.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekund."],
"Searching other places" : "Prohledávání ostatních umístění",
"No search results in other folders for {tag}{filter}{endtag}" : "Žádné výsledky v dalších složkách pro {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} nález v dalším adresáři","{count} nálezy v dalších adresářích","{count} nálezů v dalších adresářích"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} nález v dalším adresáři","{count} nálezy v dalších adresářích","{count} nálezů v dalších adresářích","{count} nálezů v dalších adresářích"],
"Personal" : "Osobní",
"Users" : "Uživatelé",
"Apps" : "Aplikace",
@@ -345,4 +345,4 @@ OC.L10N.register(
"Back to log in" : "Zpět na přihlášení",
"Depending on your configuration, this button could also work to trust the domain:" : "V závislosti na vaší konfiguraci by pro označení domény za důvěryhodnou mohlo fungovat i toto tlačítko:"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/core/l10n/cs.json b/core/l10n/cs.json
index 75dc780b631..400cfef0bc5 100644
--- a/core/l10n/cs.json
+++ b/core/l10n/cs.json
@@ -62,7 +62,7 @@
"Error fetching contact actions" : "Chyba při získávání akcí kontaktů",
"Settings" : "Nastavení",
"Connection to server lost" : "Připojení k serveru ztraceno",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problém s načítáním stránky, obnovení za %n sekundu","Problém s načítáním stránky, obnovení za %n sekundy","Problém s načítáním stránky, obnovení za %n sekund"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problém s načítáním stránky, obnovení za %n sekundu","Problém s načítáním stránky, obnovení za %n sekundy","Problém s načítáním stránky, obnovení za %n sekund","Problém s načítáním stránky, obnovení za %n sekund"],
"Saving..." : "Ukládám...",
"Dismiss" : "Zamítnout",
"This action requires you to confirm your password" : "Tato akce vyžaduje zadání vašeho hesla",
@@ -89,7 +89,7 @@
"OK" : "OK",
"Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}",
"read-only" : "pouze ke čtení",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů","{count} souborových konfliktů"],
"One file conflict" : "Jeden konflikt souboru",
"New Files" : "Nové soubory",
"Already existing files" : "Již existující soubory",
@@ -168,7 +168,7 @@
"Could not unshare" : "Nelze zrušit sdílení",
"Error while sharing" : "Chyba při sdílení",
"Share details could not be loaded for this item." : "Detaily sdílení pro tuto položku nelze načíst.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Alespoň {count} znak je vyžadován pro automatické doplňování","Alespoň {count} znaky jsou vyžadovány pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Alespoň {count} znak je vyžadován pro automatické doplňování","Alespoň {count} znaky jsou vyžadovány pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování"],
"This list is maybe truncated - please refine your search term to see more results." : "Tento seznam je možná zkrácený - prosím upřesněte vyhledávací výraz pro více výsledků.",
"No users or groups found for {search}" : "Nebyli nalezeni žádní členové ani skupiny pro {search}",
"No users found for {search}" : "Nebyli nalezeni žádní uživatelé pro {search}",
@@ -199,7 +199,7 @@
"Hello {name}" : "Vítej, {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Toto jsou vaše výsledky hledání<script>alert(1)</script></strong>",
"new" : "nový",
- "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"],
+ "_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů","stáhnout %n souborů"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "Probíhá aktualizace, opuštění této stránky může v některých prostředích přerušit proces.",
"Update to {version}" : "Aktualizace na {version}",
"An error occurred." : "Došlo k chybě.",
@@ -207,10 +207,10 @@
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizace nebyla úspěšná. Pro více informací si <a href=\"{url}\">přečtěte komentáře ve fóru</a> pojednávající o tomto problému.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Aktualizace byla neúspěšná. Nahlaste prosím problém <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">komunitě Nextcloudu</a>",
"Continue to Nextcloud" : "Pokračovat do Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundu.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundy.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekund."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundu.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekundy.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekund.","Aktualizace byla úspěšná. Přesměrování do Nextcloud za %n sekund."],
"Searching other places" : "Prohledávání ostatních umístění",
"No search results in other folders for {tag}{filter}{endtag}" : "Žádné výsledky v dalších složkách pro {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} nález v dalším adresáři","{count} nálezy v dalších adresářích","{count} nálezů v dalších adresářích"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} nález v dalším adresáři","{count} nálezy v dalších adresářích","{count} nálezů v dalších adresářích","{count} nálezů v dalších adresářích"],
"Personal" : "Osobní",
"Users" : "Uživatelé",
"Apps" : "Aplikace",
@@ -342,5 +342,5 @@
"Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Váš PHP nepodporuje freetype. Následek budou požkozené profilové obrázky a nastavení rozhraní",
"Back to log in" : "Zpět na přihlášení",
"Depending on your configuration, this button could also work to trust the domain:" : "V závislosti na vaší konfiguraci by pro označení domény za důvěryhodnou mohlo fungovat i toto tlačítko:"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/core/l10n/es_GT.js b/core/l10n/es_GT.js
index 544d14d98d8..6248ad2fbb7 100644
--- a/core/l10n/es_GT.js
+++ b/core/l10n/es_GT.js
@@ -56,6 +56,7 @@ OC.L10N.register(
"Search contacts …" : "Buscar contactos ...",
"No contacts found" : "No se encontraron contactos",
"Show all contacts …" : "Mostrar todos los contactos ...",
+ "Could not load your contacts" : "No fue posible cargar tus contactos",
"Loading your contacts …" : "Cargando sus contactos ... ",
"Looking for {term} …" : "Buscando {term} ...",
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Se presentaron problemas con la verificación de integridad del código. Más información ...</a>",
@@ -112,7 +113,7 @@ OC.L10N.register(
"Your web server is not properly set up to resolve \"{url}\". Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
"This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.",
"No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
- "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
+ "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "PHP no puede leer /dev/urandom lo cual no es recomendable en lo absoluto por razones de seguridad. Puedes encontrar más información en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
"You are currently running PHP {version}. Upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{phpLink}\">actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP</a> tan pronto como tu distribución lo soporte. ",
"You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Actualmente estás corriendo PHP 5.6. La versión principal actual de Nextcloud es la última que será soportada en PHPH 5.6. Te recomendamos actualizar la versión de PHP a la 7.0+ para que puedas actualizar a Nextcloud 14.",
"The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
@@ -120,6 +121,7 @@ OC.L10N.register(
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lista de archivos inválidos...</a>/<a href=\"{rescanEndpoint}\">Volver a verificar...</a>)",
"The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">For better performance it is recommended</a> to use the following settings in the <code>php.ini</code>:" : "El OPcache de PHP no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">Para un mejor desempeño se recomienda</a> usar las sigueintes configuraciones en el archivo <code>php.ini</code>:",
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ",
+ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ",
"Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor",
"Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.",
"The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ",
@@ -173,6 +175,7 @@ OC.L10N.register(
"This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - por favor refina tus términos de búsqueda para poder ver más resultados. ",
"No users or groups found for {search}" : "No se encontraron usuarios o gurpos para {search}",
"No users found for {search}" : "No se encontraron usuarios para {search}",
+ "An error occurred (\"{message}\"). Please try again" : "Se presentó un error (\"{message}\"). Por favor vuelve a intentarlo",
"An error occurred. Please try again" : "Se presentó un error. Por favor vuelve a intentarlo",
"{sharee} (group)" : "{sharee} (grupo)",
"{sharee} (remote)" : "{sharee} (remoto)",
@@ -261,8 +264,12 @@ OC.L10N.register(
"See the documentation" : "Ver la documentación",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ",
"More apps" : "Más aplicaciones",
+ "More apps menu" : "Menú de más aplicaciones",
"Search" : "Buscar",
"Reset search" : "Reestablecer búsqueda",
+ "Contacts" : "Contactos",
+ "Contacts menu" : "Menú de Contactos",
+ "Settings menu" : "Menú de Configuraciones",
"Confirm your password" : "Confirma tu contraseña",
"Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!",
"Please contact your administrator." : "Por favor contacta al administrador.",
@@ -271,9 +278,14 @@ OC.L10N.register(
"Username or email" : "Usuario o correo electrónico",
"Log in" : "Ingresar",
"Wrong password." : "Contraseña inválida. ",
+ "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ",
"Forgot password?" : "¿Olvidaste tu contraseña?",
+ "Back to login" : "Regresar al inicio de sesión",
+ "Connect to your account" : "Conectate a tu cuenta",
+ "Please log in before granting %s access to your %s account." : "Por favor inicia sesión antes de otorgarle a %s acceso a tu cuenta %s.",
"App token" : "Ficha de la aplicación",
"Grant access" : "Conceder acceso",
+ "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación",
"Account access" : "Acceo de cuenta",
"You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.",
"Redirecting …" : "Redireccionando ... ",
@@ -286,6 +298,7 @@ OC.L10N.register(
"Error while validating your second factor" : "Se presentó un error al validar tu segundo factor",
"Access through untrusted domain" : "Accesa a través de un dominio no de confianza",
"Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.",
+ "Further information how to configure this can be found in the %sdocumentation%s." : "Para más información de cómo configurar esto puedes consultar la %sdocumentación%s.",
"App update required" : "Se requiere una actualización de la aplicación",
"%s will be updated to version %s" : "%s será actualizado a la versión %s",
"These apps will be updated:" : "Las siguientes apllicaciones se actualizarán:",
@@ -304,13 +317,42 @@ OC.L10N.register(
"This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.",
"Thank you for your patience." : "Gracias por tu paciencia.",
+ "%s (3rdparty)" : "%s (de 3ros)",
+ "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Tu servidor web no está correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar inoperable.",
+ "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
+ "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no tiene una conexión a Internet funcionando: Multiples puntos finales no pudieron ser alcanzados. Esto significa que algunas caracterísitcas como montar almacenamiento externo, notificaciones de actualizaciones o la instalación de aplicaciones de 3ros no funcionarán. Acceder archivos remotamente y el envio de correos de notificación puede que tampoco funcionen. Te sugerimos habilitar una conexion de Internet a este servidor si quieres tener todas estas funcionalidades. ",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No se ha configurado un cache de memoria. Para mejorar tu desempeño configura un memcache si está disponible. Para más infomración puedes consultar nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
+ "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP no puede leer /dev/urandom lo cual es altamente desalentado por razones de seguridad. Para más información consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
+ "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Actualmente estas usando PHP {version}. Te recomendamos actaulizar tu versión de PHP para aprovechar <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">las actualizaciones de seguridad y desempeño suministradas por el Grupo de PHP</a> tan pronto como tu distribución lo soporte. ",
+ "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no estás accediendo a Nextcloud desde un proxy de confianza, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. ",
+ "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como un caché distribuido, pero el módulo equivocado PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memchached\" y no \"memchache\". Por favor consulta el <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki de ambos módulos</a>. ",
+ "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "lgunos archivos no pasaron la verificación de integridad. Para más información de cómo resolver este tema consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listado de archivos inválidos...</a>/ <a href=\"{rescanEndpoint}\">Volver a escanear...</a>) ",
+ "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "El PHP OPcache no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para un mejor desempeño, recomendamos</a> usar las siguientes configuraciones en <code>php.in</code>i:",
+ "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La fución PHP \"set_time_limit\" no está disponible. Esto podría generar scripts que se interrumpan a media ejecución, rompiendo tu instalación. Te recomendamos ámpliamente habilitar esta función. ",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus archivos y directorio de datos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente configurar tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "El encabezado HTTP \"{header}\" no está configurado como \"{expected}\". Este es un riesgo potencial de seguridad o privacidad y te recomendamos ajustar esta configuración. ",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para mejorar la seguridad, te recomendamos habilitar HSTS como se describe en nuestros <a href=\"{docUrl}\" rel=\"noreferrer\">consejos de seguridad</a>. ",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Estás accediendo a este sitio via HTTP. Te recomendamos ámpliamente que configures tu servidor para que el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.",
+ "Shared with {recipients}" : "Compartido con {recipients}",
"Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.",
"Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.",
"Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.",
+ "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ",
+ "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los siguientes detalles técnicos en tu reporte. ",
+ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>. ",
+ "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:",
+ "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?",
"Stay logged in" : "Mantener la sesión abierta",
"Alternative Logins" : "Accesos Alternativos",
+ "You are about to grant \"%s\" access to your %s account." : "Estás a punto de otorgar a \"%s\" acceso a ty cuenta %s.",
"Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación",
+ "You are accessing the server from an untrusted domain." : "Estas accediendo al servidor desde un dominio no de confianza.",
+ "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ",
+ "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ",
"Add \"%s\" as trusted domain" : "Agregar \"%s\" como un dominio de confianza",
+ "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación</a>.",
+ "Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Tu PHP no cuenta con siporte de freetype. Esto producirá imagenes rotas en el perfil e interfaz de configuraciones. ",
"Back to log in" : "Regresar al inicio de sesión",
"Depending on your configuration, this button could also work to trust the domain:" : "Dependiendo de tu configuración, este botón podría funcionar también para confiar en el dominio:"
},
diff --git a/core/l10n/es_GT.json b/core/l10n/es_GT.json
index 920a24d3c46..6319e2e160a 100644
--- a/core/l10n/es_GT.json
+++ b/core/l10n/es_GT.json
@@ -54,6 +54,7 @@
"Search contacts …" : "Buscar contactos ...",
"No contacts found" : "No se encontraron contactos",
"Show all contacts …" : "Mostrar todos los contactos ...",
+ "Could not load your contacts" : "No fue posible cargar tus contactos",
"Loading your contacts …" : "Cargando sus contactos ... ",
"Looking for {term} …" : "Buscando {term} ...",
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Se presentaron problemas con la verificación de integridad del código. Más información ...</a>",
@@ -110,7 +111,7 @@
"Your web server is not properly set up to resolve \"{url}\". Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
"This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.",
"No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
- "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
+ "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "PHP no puede leer /dev/urandom lo cual no es recomendable en lo absoluto por razones de seguridad. Puedes encontrar más información en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
"You are currently running PHP {version}. Upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{phpLink}\">actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP</a> tan pronto como tu distribución lo soporte. ",
"You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Actualmente estás corriendo PHP 5.6. La versión principal actual de Nextcloud es la última que será soportada en PHPH 5.6. Te recomendamos actualizar la versión de PHP a la 7.0+ para que puedas actualizar a Nextcloud 14.",
"The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>.",
@@ -118,6 +119,7 @@
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lista de archivos inválidos...</a>/<a href=\"{rescanEndpoint}\">Volver a verificar...</a>)",
"The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">For better performance it is recommended</a> to use the following settings in the <code>php.ini</code>:" : "El OPcache de PHP no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"{docLink}\">Para un mejor desempeño se recomienda</a> usar las sigueintes configuraciones en el archivo <code>php.ini</code>:",
"The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ",
+ "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Tu PHP no cuenta con soporte FreeType, lo que resulta en fallas en la imagen de perfil y la interface de configuraciones. ",
"Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor",
"Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.",
"The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ",
@@ -171,6 +173,7 @@
"This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - por favor refina tus términos de búsqueda para poder ver más resultados. ",
"No users or groups found for {search}" : "No se encontraron usuarios o gurpos para {search}",
"No users found for {search}" : "No se encontraron usuarios para {search}",
+ "An error occurred (\"{message}\"). Please try again" : "Se presentó un error (\"{message}\"). Por favor vuelve a intentarlo",
"An error occurred. Please try again" : "Se presentó un error. Por favor vuelve a intentarlo",
"{sharee} (group)" : "{sharee} (grupo)",
"{sharee} (remote)" : "{sharee} (remoto)",
@@ -259,8 +262,12 @@
"See the documentation" : "Ver la documentación",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ",
"More apps" : "Más aplicaciones",
+ "More apps menu" : "Menú de más aplicaciones",
"Search" : "Buscar",
"Reset search" : "Reestablecer búsqueda",
+ "Contacts" : "Contactos",
+ "Contacts menu" : "Menú de Contactos",
+ "Settings menu" : "Menú de Configuraciones",
"Confirm your password" : "Confirma tu contraseña",
"Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!",
"Please contact your administrator." : "Por favor contacta al administrador.",
@@ -269,9 +276,14 @@
"Username or email" : "Usuario o correo electrónico",
"Log in" : "Ingresar",
"Wrong password." : "Contraseña inválida. ",
+ "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ",
"Forgot password?" : "¿Olvidaste tu contraseña?",
+ "Back to login" : "Regresar al inicio de sesión",
+ "Connect to your account" : "Conectate a tu cuenta",
+ "Please log in before granting %s access to your %s account." : "Por favor inicia sesión antes de otorgarle a %s acceso a tu cuenta %s.",
"App token" : "Ficha de la aplicación",
"Grant access" : "Conceder acceso",
+ "Alternative log in using app token" : "Inicio de sesión alternativo usando una ficha de aplicación",
"Account access" : "Acceo de cuenta",
"You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.",
"Redirecting …" : "Redireccionando ... ",
@@ -284,6 +296,7 @@
"Error while validating your second factor" : "Se presentó un error al validar tu segundo factor",
"Access through untrusted domain" : "Accesa a través de un dominio no de confianza",
"Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.",
+ "Further information how to configure this can be found in the %sdocumentation%s." : "Para más información de cómo configurar esto puedes consultar la %sdocumentación%s.",
"App update required" : "Se requiere una actualización de la aplicación",
"%s will be updated to version %s" : "%s será actualizado a la versión %s",
"These apps will be updated:" : "Las siguientes apllicaciones se actualizarán:",
@@ -302,13 +315,42 @@
"This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.",
"Thank you for your patience." : "Gracias por tu paciencia.",
+ "%s (3rdparty)" : "%s (de 3ros)",
+ "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Tu servidor web no está correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar inoperable.",
+ "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
+ "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no tiene una conexión a Internet funcionando: Multiples puntos finales no pudieron ser alcanzados. Esto significa que algunas caracterísitcas como montar almacenamiento externo, notificaciones de actualizaciones o la instalación de aplicaciones de 3ros no funcionarán. Acceder archivos remotamente y el envio de correos de notificación puede que tampoco funcionen. Te sugerimos habilitar una conexion de Internet a este servidor si quieres tener todas estas funcionalidades. ",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No se ha configurado un cache de memoria. Para mejorar tu desempeño configura un memcache si está disponible. Para más infomración puedes consultar nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
+ "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP no puede leer /dev/urandom lo cual es altamente desalentado por razones de seguridad. Para más información consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
+ "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Actualmente estas usando PHP {version}. Te recomendamos actaulizar tu versión de PHP para aprovechar <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">las actualizaciones de seguridad y desempeño suministradas por el Grupo de PHP</a> tan pronto como tu distribución lo soporte. ",
+ "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no estás accediendo a Nextcloud desde un proxy de confianza, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. ",
+ "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como un caché distribuido, pero el módulo equivocado PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memchached\" y no \"memchache\". Por favor consulta el <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki de ambos módulos</a>. ",
+ "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "lgunos archivos no pasaron la verificación de integridad. Para más información de cómo resolver este tema consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listado de archivos inválidos...</a>/ <a href=\"{rescanEndpoint}\">Volver a escanear...</a>) ",
+ "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "El PHP OPcache no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para un mejor desempeño, recomendamos</a> usar las siguientes configuraciones en <code>php.in</code>i:",
+ "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La fución PHP \"set_time_limit\" no está disponible. Esto podría generar scripts que se interrumpan a media ejecución, rompiendo tu instalación. Te recomendamos ámpliamente habilitar esta función. ",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus archivos y directorio de datos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente configurar tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "El encabezado HTTP \"{header}\" no está configurado como \"{expected}\". Este es un riesgo potencial de seguridad o privacidad y te recomendamos ajustar esta configuración. ",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para mejorar la seguridad, te recomendamos habilitar HSTS como se describe en nuestros <a href=\"{docUrl}\" rel=\"noreferrer\">consejos de seguridad</a>. ",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Estás accediendo a este sitio via HTTP. Te recomendamos ámpliamente que configures tu servidor para que el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.",
+ "Shared with {recipients}" : "Compartido con {recipients}",
"Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.",
"Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.",
"Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.",
+ "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ",
+ "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los siguientes detalles técnicos en tu reporte. ",
+ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>. ",
+ "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:",
+ "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?",
"Stay logged in" : "Mantener la sesión abierta",
"Alternative Logins" : "Accesos Alternativos",
+ "You are about to grant \"%s\" access to your %s account." : "Estás a punto de otorgar a \"%s\" acceso a ty cuenta %s.",
"Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación",
+ "You are accessing the server from an untrusted domain." : "Estas accediendo al servidor desde un dominio no de confianza.",
+ "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ",
+ "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ",
"Add \"%s\" as trusted domain" : "Agregar \"%s\" como un dominio de confianza",
+ "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación</a>.",
+ "Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Tu PHP no cuenta con siporte de freetype. Esto producirá imagenes rotas en el perfil e interfaz de configuraciones. ",
"Back to log in" : "Regresar al inicio de sesión",
"Depending on your configuration, this button could also work to trust the domain:" : "Dependiendo de tu configuración, este botón podría funcionar también para confiar en el dominio:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/core/l10n/fa.js b/core/l10n/fa.js
index 86f6d10eea9..3c5052b51b9 100644
--- a/core/l10n/fa.js
+++ b/core/l10n/fa.js
@@ -63,7 +63,7 @@ OC.L10N.register(
"Error fetching contact actions" : "خطا در دریافت فعالیتهای تماس",
"Settings" : "تنظیمات",
"Connection to server lost" : "اتصال به سرور از دست رفته است",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["%nمشکل بارگذاری صفحه، بارگیری مجدد در ثانیه"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["%nمشکل بارگذاری صفحه، بارگیری مجدد در ثانیه","%nمشکل بارگذاری صفحه، بارگیری مجدد در ثانیه"],
"Saving..." : "در حال ذخیره سازی...",
"Dismiss" : "پنهان کن",
"This action requires you to confirm your password" : "این اقدام نیاز به تایید رمز عبور شما دارد",
@@ -89,7 +89,7 @@ OC.L10N.register(
"OK" : "تایید",
"Error loading message template: {error}" : "خطا در بارگذاری قالب پیام : {error}",
"read-only" : "فقط-خواندنی",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} تضاد در فایل"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} تضاد در فایل","{count} تضاد در فایل"],
"One file conflict" : "یک فایل متضاد",
"New Files" : "فایل های جدید",
"Already existing files" : "فایل های موجود در حال حاضر ",
@@ -149,7 +149,7 @@ OC.L10N.register(
"Could not unshare" : "اشتراک گذاری بازگردانده نشد",
"Error while sharing" : "خطا درحال به اشتراک گذاشتن",
"Share details could not be loaded for this item." : "جزئیات اشتراک گذاری برای این مورد قابل بارگذاری نیست.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["برای تکمیل خودکار لازم است حداقل {count} کاراکتر وجود داشته باشد"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["برای تکمیل خودکار لازم است حداقل {count} کاراکتر وجود داشته باشد","برای تکمیل خودکار لازم است حداقل {count} کاراکتر وجود داشته باشد"],
"This list is maybe truncated - please refine your search term to see more results." : "این فهرست ممکن است کامل نباشد - لطفا نتایج جستجوی خود را ریفرش کنید تا نتایج بیشتری ببینید.",
"No users or groups found for {search}" : "هیچ کاربری یا گروهی یافت نشد {search}",
"No users found for {search}" : "هیچ کاربری با جستجوی {search} یافت نشد",
@@ -180,7 +180,7 @@ OC.L10N.register(
"Hello {name}" : "سلام {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>این نتایج جستجوی شماست <script>alert(1)</script> </strong>",
"new" : "جدید",
- "_download %n file_::_download %n files_" : ["دانلود %n فایل"],
+ "_download %n file_::_download %n files_" : ["دانلود %n فایل","دانلود %n فایل"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "به روز رسانی در حال انجام است، این صفحه ممکن است روند در برخی از محیط ها را قطع کند.",
"Update to {version}" : "بروزرسانی به {version}",
"An error occurred." : "یک خطا رخ‌داده است.",
@@ -188,10 +188,10 @@ OC.L10N.register(
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "به روزرسانی ناموفق بود. برای اطلاعات بیشتر <a href=\"{url}\">فروم ما را بررسی کنید</a>",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "به روزرسانی ناموفق بود. لطفا این مسئله را در <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">جامعه Nextcloud</a> گزارش دهید",
"Continue to Nextcloud" : "ادامه به Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["به روز رسانی موفقیت آمیز بود هدایت شما به Nextcloud در %nثانیه "],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["به روز رسانی موفقیت آمیز بود هدایت شما به Nextcloud در %nثانیه ","به روز رسانی موفقیت آمیز بود هدایت شما به Nextcloud در %nثانیه "],
"Searching other places" : "جستجو در مکان‌های دیگر",
"No search results in other folders for {tag}{filter}{endtag}" : "جستجو در پوشه های دیگر برای {tag}{filter}{endtag} یافت نشد",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} نتایج جستجو در پوشه های دیگر"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} نتایج جستجو در پوشه های دیگر","{count} نتایج جستجو در پوشه های دیگر"],
"Personal" : "شخصی",
"Users" : "کاربران",
"Apps" : " برنامه ها",
@@ -268,4 +268,4 @@ OC.L10N.register(
"Alternative Logins" : "ورود متناوب",
"Add \"%s\" as trusted domain" : "افزودن \"%s\" به عنوان دامنه مورد اعتماد"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/core/l10n/fa.json b/core/l10n/fa.json
index ffb5b86c403..6f240892cf7 100644
--- a/core/l10n/fa.json
+++ b/core/l10n/fa.json
@@ -61,7 +61,7 @@
"Error fetching contact actions" : "خطا در دریافت فعالیتهای تماس",
"Settings" : "تنظیمات",
"Connection to server lost" : "اتصال به سرور از دست رفته است",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["%nمشکل بارگذاری صفحه، بارگیری مجدد در ثانیه"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["%nمشکل بارگذاری صفحه، بارگیری مجدد در ثانیه","%nمشکل بارگذاری صفحه، بارگیری مجدد در ثانیه"],
"Saving..." : "در حال ذخیره سازی...",
"Dismiss" : "پنهان کن",
"This action requires you to confirm your password" : "این اقدام نیاز به تایید رمز عبور شما دارد",
@@ -87,7 +87,7 @@
"OK" : "تایید",
"Error loading message template: {error}" : "خطا در بارگذاری قالب پیام : {error}",
"read-only" : "فقط-خواندنی",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} تضاد در فایل"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} تضاد در فایل","{count} تضاد در فایل"],
"One file conflict" : "یک فایل متضاد",
"New Files" : "فایل های جدید",
"Already existing files" : "فایل های موجود در حال حاضر ",
@@ -147,7 +147,7 @@
"Could not unshare" : "اشتراک گذاری بازگردانده نشد",
"Error while sharing" : "خطا درحال به اشتراک گذاشتن",
"Share details could not be loaded for this item." : "جزئیات اشتراک گذاری برای این مورد قابل بارگذاری نیست.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["برای تکمیل خودکار لازم است حداقل {count} کاراکتر وجود داشته باشد"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["برای تکمیل خودکار لازم است حداقل {count} کاراکتر وجود داشته باشد","برای تکمیل خودکار لازم است حداقل {count} کاراکتر وجود داشته باشد"],
"This list is maybe truncated - please refine your search term to see more results." : "این فهرست ممکن است کامل نباشد - لطفا نتایج جستجوی خود را ریفرش کنید تا نتایج بیشتری ببینید.",
"No users or groups found for {search}" : "هیچ کاربری یا گروهی یافت نشد {search}",
"No users found for {search}" : "هیچ کاربری با جستجوی {search} یافت نشد",
@@ -178,7 +178,7 @@
"Hello {name}" : "سلام {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>این نتایج جستجوی شماست <script>alert(1)</script> </strong>",
"new" : "جدید",
- "_download %n file_::_download %n files_" : ["دانلود %n فایل"],
+ "_download %n file_::_download %n files_" : ["دانلود %n فایل","دانلود %n فایل"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "به روز رسانی در حال انجام است، این صفحه ممکن است روند در برخی از محیط ها را قطع کند.",
"Update to {version}" : "بروزرسانی به {version}",
"An error occurred." : "یک خطا رخ‌داده است.",
@@ -186,10 +186,10 @@
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "به روزرسانی ناموفق بود. برای اطلاعات بیشتر <a href=\"{url}\">فروم ما را بررسی کنید</a>",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "به روزرسانی ناموفق بود. لطفا این مسئله را در <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">جامعه Nextcloud</a> گزارش دهید",
"Continue to Nextcloud" : "ادامه به Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["به روز رسانی موفقیت آمیز بود هدایت شما به Nextcloud در %nثانیه "],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["به روز رسانی موفقیت آمیز بود هدایت شما به Nextcloud در %nثانیه ","به روز رسانی موفقیت آمیز بود هدایت شما به Nextcloud در %nثانیه "],
"Searching other places" : "جستجو در مکان‌های دیگر",
"No search results in other folders for {tag}{filter}{endtag}" : "جستجو در پوشه های دیگر برای {tag}{filter}{endtag} یافت نشد",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} نتایج جستجو در پوشه های دیگر"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} نتایج جستجو در پوشه های دیگر","{count} نتایج جستجو در پوشه های دیگر"],
"Personal" : "شخصی",
"Users" : "کاربران",
"Apps" : " برنامه ها",
@@ -265,5 +265,5 @@
"Stay logged in" : "در سیستم بمانید",
"Alternative Logins" : "ورود متناوب",
"Add \"%s\" as trusted domain" : "افزودن \"%s\" به عنوان دامنه مورد اعتماد"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/core/l10n/he.js b/core/l10n/he.js
index 2557095f652..9726477ca7e 100644
--- a/core/l10n/he.js
+++ b/core/l10n/he.js
@@ -64,7 +64,7 @@ OC.L10N.register(
"Error fetching contact actions" : "שגיאה בקבלת פעולות אנשי הקשר",
"Settings" : "הגדרות",
"Connection to server lost" : "החיבור לשרת אבד",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["תקלה בטעינת העמוד, יתבצע רענון בעוד שנייה","תקלה בטעינת העמוד, יתבצע רענון בעוד %n שניות"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["תקלה בטעינת העמוד, יתבצע רענון בעוד שנייה","תקלה בטעינת העמוד, יתבצע רענון בעוד %n שניות","תקלה בטעינת העמוד, יתבצע רענון בעוד %n שניות"],
"Saving..." : "שמירה…",
"Dismiss" : "שחרור",
"This action requires you to confirm your password" : "פעולה זו דורשת ממך לאמת את הססמה שלך",
@@ -91,7 +91,7 @@ OC.L10N.register(
"OK" : "אישור",
"Error loading message template: {error}" : "שגיאה בטעינת תבנית ההודעות: {error}",
"read-only" : "לקריאה בלבד",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} הנגשות קובץ","{count} התנגשויות קבצים"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} הנגשות קובץ","{count} התנגשויות קבצים","{count} התנגשויות קבצים"],
"One file conflict" : "התנגשות קובץ אחת",
"New Files" : "קבצים חדשים",
"Already existing files" : "קבצים קיימים כבר",
@@ -171,7 +171,7 @@ OC.L10N.register(
"Could not unshare" : "לא ניתן לבטל שיתוף",
"Error while sharing" : "שגיאה במהלך השיתוף",
"Share details could not be loaded for this item." : "לא ניתן היה לטעון מידע שיתוף לפריט זה",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["נדרש לפחות תו אחד להשלמה אוטומטית","נדרשים לפחות {count} תווים להשלמה אוטומטית"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["נדרש לפחות תו אחד להשלמה אוטומטית","נדרשים לפחות {count} תווים להשלמה אוטומטית","נדרשים לפחות {count} תווים להשלמה אוטומטית"],
"This list is maybe truncated - please refine your search term to see more results." : "יתכן שזו רשימה מקוצרת - נא למקד את ביטוי החיפוש שלך כדי להציג תוצאות נוספות.",
"No users or groups found for {search}" : "לא אותרו משתמשים או קבוצות עבור {search}",
"No users found for {search}" : "לא אותרו משתמשים עבור {search}",
@@ -203,7 +203,7 @@ OC.L10N.register(
"Hello {name}" : "שלום {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>אלו תוצאות החיפוש שלך<script>alert(1)</script></strong>",
"new" : "חדש",
- "_download %n file_::_download %n files_" : ["התקבל קובץ %n","התקבלו %n קבצים"],
+ "_download %n file_::_download %n files_" : ["התקבל קובץ %n","התקבלו %n קבצים","התקבלו %n קבצים"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "העדכון מתבצע, יציאה מהעמוד הזה עשויה להפריע לתהליך בסביבות מסוימות.",
"Update to {version}" : "עדכון ל־{version}",
"An error occurred." : "אירעה שגיאה.",
@@ -211,10 +211,10 @@ OC.L10N.register(
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "העדכון בוצע בהצלחה. למידע נוסף <a href=\"{url}\">ניתן לבדוק בהודעת הפורום שלנו</a> המכסה נושא זו.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "העדכון לא הצליח. נא לדווח על התקלה הזאת ל<a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">קהילת Nextcloud</a>.",
"Continue to Nextcloud" : "להמשיך ל־Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד שנייה.","העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד %n שניות."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד שנייה.","העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד %n שניות.","העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד %n שניות."],
"Searching other places" : "מחפש במקומות אחרים",
"No search results in other folders for {tag}{filter}{endtag}" : "אין תוצאות חיפוש בתיקיות אחרות עבור {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} תוצאת חיפוש בתיקייה אחרות","{count} תוצאות חיפוש בתיקיות אחרות"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} תוצאת חיפוש בתיקייה אחרות","{count} תוצאות חיפוש בתיקיות אחרות","{count} תוצאות חיפוש בתיקיות אחרות"],
"Personal" : "אישי",
"Users" : "משתמשים",
"Apps" : "יישומים",
@@ -348,4 +348,4 @@ OC.L10N.register(
"Back to log in" : "חזרה לכניסה",
"Depending on your configuration, this button could also work to trust the domain:" : "בהתאם לתצורה שלך, הכפתור הזה יכול לעבוד גם כדי לתת אמון בשם המתחם:"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/core/l10n/he.json b/core/l10n/he.json
index d699004afce..73aba517d28 100644
--- a/core/l10n/he.json
+++ b/core/l10n/he.json
@@ -62,7 +62,7 @@
"Error fetching contact actions" : "שגיאה בקבלת פעולות אנשי הקשר",
"Settings" : "הגדרות",
"Connection to server lost" : "החיבור לשרת אבד",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["תקלה בטעינת העמוד, יתבצע רענון בעוד שנייה","תקלה בטעינת העמוד, יתבצע רענון בעוד %n שניות"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["תקלה בטעינת העמוד, יתבצע רענון בעוד שנייה","תקלה בטעינת העמוד, יתבצע רענון בעוד %n שניות","תקלה בטעינת העמוד, יתבצע רענון בעוד %n שניות"],
"Saving..." : "שמירה…",
"Dismiss" : "שחרור",
"This action requires you to confirm your password" : "פעולה זו דורשת ממך לאמת את הססמה שלך",
@@ -89,7 +89,7 @@
"OK" : "אישור",
"Error loading message template: {error}" : "שגיאה בטעינת תבנית ההודעות: {error}",
"read-only" : "לקריאה בלבד",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} הנגשות קובץ","{count} התנגשויות קבצים"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} הנגשות קובץ","{count} התנגשויות קבצים","{count} התנגשויות קבצים"],
"One file conflict" : "התנגשות קובץ אחת",
"New Files" : "קבצים חדשים",
"Already existing files" : "קבצים קיימים כבר",
@@ -169,7 +169,7 @@
"Could not unshare" : "לא ניתן לבטל שיתוף",
"Error while sharing" : "שגיאה במהלך השיתוף",
"Share details could not be loaded for this item." : "לא ניתן היה לטעון מידע שיתוף לפריט זה",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["נדרש לפחות תו אחד להשלמה אוטומטית","נדרשים לפחות {count} תווים להשלמה אוטומטית"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["נדרש לפחות תו אחד להשלמה אוטומטית","נדרשים לפחות {count} תווים להשלמה אוטומטית","נדרשים לפחות {count} תווים להשלמה אוטומטית"],
"This list is maybe truncated - please refine your search term to see more results." : "יתכן שזו רשימה מקוצרת - נא למקד את ביטוי החיפוש שלך כדי להציג תוצאות נוספות.",
"No users or groups found for {search}" : "לא אותרו משתמשים או קבוצות עבור {search}",
"No users found for {search}" : "לא אותרו משתמשים עבור {search}",
@@ -201,7 +201,7 @@
"Hello {name}" : "שלום {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>אלו תוצאות החיפוש שלך<script>alert(1)</script></strong>",
"new" : "חדש",
- "_download %n file_::_download %n files_" : ["התקבל קובץ %n","התקבלו %n קבצים"],
+ "_download %n file_::_download %n files_" : ["התקבל קובץ %n","התקבלו %n קבצים","התקבלו %n קבצים"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "העדכון מתבצע, יציאה מהעמוד הזה עשויה להפריע לתהליך בסביבות מסוימות.",
"Update to {version}" : "עדכון ל־{version}",
"An error occurred." : "אירעה שגיאה.",
@@ -209,10 +209,10 @@
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "העדכון בוצע בהצלחה. למידע נוסף <a href=\"{url}\">ניתן לבדוק בהודעת הפורום שלנו</a> המכסה נושא זו.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "העדכון לא הצליח. נא לדווח על התקלה הזאת ל<a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">קהילת Nextcloud</a>.",
"Continue to Nextcloud" : "להמשיך ל־Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד שנייה.","העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד %n שניות."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד שנייה.","העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד %n שניות.","העדכון הצליח. תתבצע העברה ל־Nextcloud בעוד %n שניות."],
"Searching other places" : "מחפש במקומות אחרים",
"No search results in other folders for {tag}{filter}{endtag}" : "אין תוצאות חיפוש בתיקיות אחרות עבור {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} תוצאת חיפוש בתיקייה אחרות","{count} תוצאות חיפוש בתיקיות אחרות"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} תוצאת חיפוש בתיקייה אחרות","{count} תוצאות חיפוש בתיקיות אחרות","{count} תוצאות חיפוש בתיקיות אחרות"],
"Personal" : "אישי",
"Users" : "משתמשים",
"Apps" : "יישומים",
@@ -345,5 +345,5 @@
"Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "ל־PHP שלך אין תמיכה ב־freetype. מצב כזה יגרום לתמונות פרופיל משובשות לצד מנשק הגדרות משובש.",
"Back to log in" : "חזרה לכניסה",
"Depending on your configuration, this button could also work to trust the domain:" : "בהתאם לתצורה שלך, הכפתור הזה יכול לעבוד גם כדי לתת אמון בשם המתחם:"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js
index f56f1858730..dbf37dc28ba 100644
--- a/core/l10n/ka_GE.js
+++ b/core/l10n/ka_GE.js
@@ -64,7 +64,7 @@ OC.L10N.register(
"Error fetching contact actions" : "კონტაქტის ქმედებების მოხვეწისას წარმოიქმნა შეცდომა",
"Settings" : "პარამეტრები",
"Connection to server lost" : "სერვერთან კავშირი დაიკარგა",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში","გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"],
"Saving..." : "შენახვა...",
"Dismiss" : "დათხოვნა",
"This action requires you to confirm your password" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას",
@@ -91,7 +91,7 @@ OC.L10N.register(
"OK" : "კარგი",
"Error loading message template: {error}" : "შეცდომა წერილის შაბლონის ჩატვირთვისას: {error}",
"read-only" : "მხოლოდ-კითხვადი",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქტი"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქტი","{count} ფაილის კონფლიქტი"],
"One file conflict" : "კონფლიქტი ერთ ფაილთან",
"New Files" : "ახალი ფაილები",
"Already existing files" : "უკვე არსებული ფაილები",
@@ -171,7 +171,7 @@ OC.L10N.register(
"Could not unshare" : "გაზიარების შეწყვეტა ვერ მოხერხდა",
"Error while sharing" : "შეცდომა გაზიარების დროს",
"Share details could not be loaded for this item." : "ამ ობიექტისთვის გაზიარების დეტალები ვერ ჩაიტვირთა.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო","ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო"],
"This list is maybe truncated - please refine your search term to see more results." : "ეს სია შეიძლება იყოს წაკვეთილი - მეტი შედეგისთვის, გთხოვთ გაწმინდოთ თქვენი საძიებო სიტყვა.",
"No users or groups found for {search}" : "მომხმარებლები და ჯგუფები {search}-ისთვის არ იქნა ნაპოვნი",
"No users found for {search}" : "მომხმარებლები {search}-ისთვის არ იქნა ნაპოვნი",
@@ -202,7 +202,7 @@ OC.L10N.register(
"Hello {name}" : "გამარჯობა {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>ეს ძიების შედეგებია<script>alert(1)</script></strong>",
"new" : "ახალი",
- "_download %n file_::_download %n files_" : ["ჩამოტვირთეთ %n ფაილი"],
+ "_download %n file_::_download %n files_" : ["ჩამოტვირთეთ %n ფაილი","ჩამოტვირთეთ %n ფაილი"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "განახლება პროცესშია, გარკვეულ გარემოებებში ამ გვერდის დატოვებამ შეიძლება შეწყვიტოს პროცესი.",
"Update to {version}" : "განაახლეთ ვერსიაზე {version}",
"An error occurred." : "წარმოიშვა შეცდომა.",
@@ -210,10 +210,10 @@ OC.L10N.register(
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "განახლებისას წარმოიშვა შეცდომა. მეტი ინფორმაციისთვის იხილეთ <a href=\"{url}\">ჩვენი ფორუმის პოსტი</a>, სადაც საუბარია ამ პრობლემაზე.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "განახლებისას წარმოიშვა შეცდომა. გთხოვთ განაცხადოთ ამ პრობლემის შესახებ <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud საზოგადოებაში</a>.",
"Continue to Nextcloud" : "გაგრძლება Nextcloud-ისკენ",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში.","განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში."],
"Searching other places" : "ვეძებთ დანარჩენ ადგილებში",
"No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag}-სთვის არაა",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} ძიების შედეგები სხვა დირექტორიებში"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} ძიების შედეგები სხვა დირექტორიებში","{count} ძიების შედეგები სხვა დირექტორიებში"],
"Personal" : "პირადი",
"Users" : "მომხმარებელი",
"Apps" : "აპლიკაციები",
@@ -346,4 +346,4 @@ OC.L10N.register(
"Back to log in" : "უკან ავტორიზაციისკენ",
"Depending on your configuration, this button could also work to trust the domain:" : "თქვენი კონფიგურაციიდან გამომდინარე, ეს ღილაკი დომენის ნდობისთვის შეიძლება ასევე მუშაობდეს."
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json
index 2c93e76177b..eeba7a18cd8 100644
--- a/core/l10n/ka_GE.json
+++ b/core/l10n/ka_GE.json
@@ -62,7 +62,7 @@
"Error fetching contact actions" : "კონტაქტის ქმედებების მოხვეწისას წარმოიქმნა შეცდომა",
"Settings" : "პარამეტრები",
"Connection to server lost" : "სერვერთან კავშირი დაიკარგა",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში","გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"],
"Saving..." : "შენახვა...",
"Dismiss" : "დათხოვნა",
"This action requires you to confirm your password" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას",
@@ -89,7 +89,7 @@
"OK" : "კარგი",
"Error loading message template: {error}" : "შეცდომა წერილის შაბლონის ჩატვირთვისას: {error}",
"read-only" : "მხოლოდ-კითხვადი",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქტი"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქტი","{count} ფაილის კონფლიქტი"],
"One file conflict" : "კონფლიქტი ერთ ფაილთან",
"New Files" : "ახალი ფაილები",
"Already existing files" : "უკვე არსებული ფაილები",
@@ -169,7 +169,7 @@
"Could not unshare" : "გაზიარების შეწყვეტა ვერ მოხერხდა",
"Error while sharing" : "შეცდომა გაზიარების დროს",
"Share details could not be loaded for this item." : "ამ ობიექტისთვის გაზიარების დეტალები ვერ ჩაიტვირთა.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო","ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო"],
"This list is maybe truncated - please refine your search term to see more results." : "ეს სია შეიძლება იყოს წაკვეთილი - მეტი შედეგისთვის, გთხოვთ გაწმინდოთ თქვენი საძიებო სიტყვა.",
"No users or groups found for {search}" : "მომხმარებლები და ჯგუფები {search}-ისთვის არ იქნა ნაპოვნი",
"No users found for {search}" : "მომხმარებლები {search}-ისთვის არ იქნა ნაპოვნი",
@@ -200,7 +200,7 @@
"Hello {name}" : "გამარჯობა {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>ეს ძიების შედეგებია<script>alert(1)</script></strong>",
"new" : "ახალი",
- "_download %n file_::_download %n files_" : ["ჩამოტვირთეთ %n ფაილი"],
+ "_download %n file_::_download %n files_" : ["ჩამოტვირთეთ %n ფაილი","ჩამოტვირთეთ %n ფაილი"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "განახლება პროცესშია, გარკვეულ გარემოებებში ამ გვერდის დატოვებამ შეიძლება შეწყვიტოს პროცესი.",
"Update to {version}" : "განაახლეთ ვერსიაზე {version}",
"An error occurred." : "წარმოიშვა შეცდომა.",
@@ -208,10 +208,10 @@
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "განახლებისას წარმოიშვა შეცდომა. მეტი ინფორმაციისთვის იხილეთ <a href=\"{url}\">ჩვენი ფორუმის პოსტი</a>, სადაც საუბარია ამ პრობლემაზე.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "განახლებისას წარმოიშვა შეცდომა. გთხოვთ განაცხადოთ ამ პრობლემის შესახებ <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud საზოგადოებაში</a>.",
"Continue to Nextcloud" : "გაგრძლება Nextcloud-ისკენ",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში.","განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში."],
"Searching other places" : "ვეძებთ დანარჩენ ადგილებში",
"No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag}-სთვის არაა",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} ძიების შედეგები სხვა დირექტორიებში"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} ძიების შედეგები სხვა დირექტორიებში","{count} ძიების შედეგები სხვა დირექტორიებში"],
"Personal" : "პირადი",
"Users" : "მომხმარებელი",
"Apps" : "აპლიკაციები",
@@ -343,5 +343,5 @@
"Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "თქვენს PHP-ს არ აქვს freetype-ის მხარდაჭერა. ეს გამოწვევს დარღვეულ პროფილის სურათებს და მომხმარებლის ინტერფეისს.",
"Back to log in" : "უკან ავტორიზაციისკენ",
"Depending on your configuration, this button could also work to trust the domain:" : "თქვენი კონფიგურაციიდან გამომდინარე, ეს ღილაკი დომენის ნდობისთვის შეიძლება ასევე მუშაობდეს."
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js
index 213f6cb674b..9a8b86bdf5e 100644
--- a/core/l10n/lt_LT.js
+++ b/core/l10n/lt_LT.js
@@ -64,7 +64,7 @@ OC.L10N.register(
"Error fetching contact actions" : "Klaida bandant gauti veiksmus darbui su pažįstamų asmenų informacija",
"Settings" : "Nustatymai",
"Connection to server lost" : "Ryšys su serveriu nutrūko",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundės","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundės","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių"],
"Saving..." : "Įrašoma...",
"Dismiss" : "Atmesti",
"This action requires you to confirm your password" : "Šis veiksmas reikalauja, kad įvestumėte savo slaptažodį",
@@ -91,7 +91,7 @@ OC.L10N.register(
"OK" : "Gerai",
"Error loading message template: {error}" : "Klaida įkeliant žinutės ruošinį: {error}",
"read-only" : "tik skaitymui",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} failas konfliktuoja","{count} failai konfliktuoja","{count} nesuderinami rinkmenų pakeitimai"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} failas konfliktuoja","{count} failai konfliktuoja","{count} nesuderinami rinkmenų pakeitimai","{count} nesuderinami rinkmenų pakeitimai"],
"One file conflict" : "Nesuderinama rinkmena",
"New Files" : "Įkeliamos rinkmenos",
"Already existing files" : "Egzistuojančios rinkmenos saugykloje",
@@ -155,7 +155,7 @@ OC.L10N.register(
"Could not unshare" : "Negalima nustoti dalintis",
"Error while sharing" : "Klaida, dalijimosi metu",
"Share details could not be loaded for this item." : "Dalinimosi detalės negali būti atskleistos šiai bylai",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius"],
"This list is maybe truncated - please refine your search term to see more results." : "Sąrašas galimai sutrumpintas - prašome patikslinti paiešką, norint matyti daugiau rezultatų.",
"No users or groups found for {search}" : "Nerasta vartotojų ar grupių pagal paieškos kriterijų: {search}",
"No users found for {search}" : "Nerasta vartotojų pagal paieškos kriterijų: {search}",
@@ -186,7 +186,7 @@ OC.L10N.register(
"Hello {name}" : "Sveiki, {name},",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Paieškos rezultatai:<script>alert(1)</script></strong>",
"new" : "Naujas",
- "_download %n file_::_download %n files_" : ["parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas"],
+ "_download %n file_::_download %n files_" : ["parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "Vykdomas atnaujinimas, jei šis puslapis bus neuždarytas, yra tikimybė, kad sistemos atnaujinimas nepavyks.",
"Update to {version}" : "Atnaujinti į versiją {version}",
"An error occurred." : "Įvyko klaida.",
@@ -194,10 +194,10 @@ OC.L10N.register(
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Atnaujinimas nebuvo sėkmingas. Detalesnę problemos sprendimo informaciją rasite <a href=\"{url}\">forumo puslapyje</a>.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Atnaujinimas buvo nesėkmingas. Prašome pranešti apie problemą <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">NextCloud bendruomenei</a>.",
"Continue to Nextcloud" : "Eiti į NextCloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių."],
"Searching other places" : "Ieškoma kitose vietose",
"No search results in other folders for {tag}{filter}{endtag}" : "Nėra paieškos rezultatų kituose aplankuose naudojat paieškos kriterijus: {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose"],
"Personal" : "Asmeniniai",
"Users" : "Naudotojai",
"Apps" : "Programėlės",
@@ -305,4 +305,4 @@ OC.L10N.register(
"Back to log in" : "Grįžti prie prisijungimo",
"Depending on your configuration, this button could also work to trust the domain:" : "Priklausomai nuo konfigūracijos, šiuo mygtuku taip pat galima patvirtinti domeną kaip patikimą."
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json
index 363c3639e68..3ade3948217 100644
--- a/core/l10n/lt_LT.json
+++ b/core/l10n/lt_LT.json
@@ -62,7 +62,7 @@
"Error fetching contact actions" : "Klaida bandant gauti veiksmus darbui su pažįstamų asmenų informacija",
"Settings" : "Nustatymai",
"Connection to server lost" : "Ryšys su serveriu nutrūko",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundės","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundės","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių","Problemos, įkeliant puslapį. Įkeliama iš naujo po %n sekundžių"],
"Saving..." : "Įrašoma...",
"Dismiss" : "Atmesti",
"This action requires you to confirm your password" : "Šis veiksmas reikalauja, kad įvestumėte savo slaptažodį",
@@ -89,7 +89,7 @@
"OK" : "Gerai",
"Error loading message template: {error}" : "Klaida įkeliant žinutės ruošinį: {error}",
"read-only" : "tik skaitymui",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} failas konfliktuoja","{count} failai konfliktuoja","{count} nesuderinami rinkmenų pakeitimai"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} failas konfliktuoja","{count} failai konfliktuoja","{count} nesuderinami rinkmenų pakeitimai","{count} nesuderinami rinkmenų pakeitimai"],
"One file conflict" : "Nesuderinama rinkmena",
"New Files" : "Įkeliamos rinkmenos",
"Already existing files" : "Egzistuojančios rinkmenos saugykloje",
@@ -153,7 +153,7 @@
"Could not unshare" : "Negalima nustoti dalintis",
"Error while sharing" : "Klaida, dalijimosi metu",
"Share details could not be loaded for this item." : "Dalinimosi detalės negali būti atskleistos šiai bylai",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius","Norint pasinaudoti automatinio užpildymo paslauga, reikia suvesti bent {count} simbolius"],
"This list is maybe truncated - please refine your search term to see more results." : "Sąrašas galimai sutrumpintas - prašome patikslinti paiešką, norint matyti daugiau rezultatų.",
"No users or groups found for {search}" : "Nerasta vartotojų ar grupių pagal paieškos kriterijų: {search}",
"No users found for {search}" : "Nerasta vartotojų pagal paieškos kriterijų: {search}",
@@ -184,7 +184,7 @@
"Hello {name}" : "Sveiki, {name},",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Paieškos rezultatai:<script>alert(1)</script></strong>",
"new" : "Naujas",
- "_download %n file_::_download %n files_" : ["parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas"],
+ "_download %n file_::_download %n files_" : ["parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas","parsisiųsti %n rinkmenas"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "Vykdomas atnaujinimas, jei šis puslapis bus neuždarytas, yra tikimybė, kad sistemos atnaujinimas nepavyks.",
"Update to {version}" : "Atnaujinti į versiją {version}",
"An error occurred." : "Įvyko klaida.",
@@ -192,10 +192,10 @@
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Atnaujinimas nebuvo sėkmingas. Detalesnę problemos sprendimo informaciją rasite <a href=\"{url}\">forumo puslapyje</a>.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Atnaujinimas buvo nesėkmingas. Prašome pranešti apie problemą <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">NextCloud bendruomenei</a>.",
"Continue to Nextcloud" : "Eiti į NextCloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių.","Sėkmingai atnaujinta. NextCloud bus atidarytas po %n sekundžių."],
"Searching other places" : "Ieškoma kitose vietose",
"No search results in other folders for {tag}{filter}{endtag}" : "Nėra paieškos rezultatų kituose aplankuose naudojat paieškos kriterijus: {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose","{count} paieškos rezultatai kituose aplankuose"],
"Personal" : "Asmeniniai",
"Users" : "Naudotojai",
"Apps" : "Programėlės",
@@ -302,5 +302,5 @@
"For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Detalesnės informacijos ieškokite <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentacijoje</a>",
"Back to log in" : "Grįžti prie prisijungimo",
"Depending on your configuration, this button could also work to trust the domain:" : "Priklausomai nuo konfigūracijos, šiuo mygtuku taip pat galima patvirtinti domeną kaip patikimą."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index 162feea168a..d2011d795d5 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -266,6 +266,7 @@ OC.L10N.register(
"More apps" : "Meer apps",
"Search" : "Zoeken",
"Reset search" : "Zoekopdracht wissen",
+ "Settings menu" : "Instellingenmenu",
"Confirm your password" : "Bevestig je wachtwoord",
"Server side authentication failed!" : "Authenticatie bij de server mislukt!",
"Please contact your administrator." : "Neem contact op met je systeembeheerder.",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index fdba87b43fb..0f3c2fe7453 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -264,6 +264,7 @@
"More apps" : "Meer apps",
"Search" : "Zoeken",
"Reset search" : "Zoekopdracht wissen",
+ "Settings menu" : "Instellingenmenu",
"Confirm your password" : "Bevestig je wachtwoord",
"Server side authentication failed!" : "Authenticatie bij de server mislukt!",
"Please contact your administrator." : "Neem contact op met je systeembeheerder.",
diff --git a/core/l10n/ru.js b/core/l10n/ru.js
index 80786d87d2c..ddc278832ea 100644
--- a/core/l10n/ru.js
+++ b/core/l10n/ru.js
@@ -153,14 +153,14 @@ OC.L10N.register(
"Allow upload and editing" : "Разрешить загрузку и редактирование",
"Read only" : "Только чтение",
"File drop (upload only)" : "Хранилище (только для приема файлов)",
- "Shared with you and the group {group} by {owner}" : "{owner} поделился с вами и группой {group} ",
- "Shared with you by {owner}" : "С вами поделился {owner} ",
+ "Shared with you and the group {group} by {owner}" : "{owner} предоставил(а) доступ вам и группе {group}",
+ "Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ",
"Choose a password for the mail share" : "Укажите пароль для ссылки по почте",
- "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} поделился через ссылку",
+ "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} предоставил доступ созданием ссылки",
"group" : "группа",
"remote" : "удаленный",
"email" : "email",
- "shared by {sharer}" : "поделился {sharer}",
+ "shared by {sharer}" : "{sharer} предоставил(а) доступ",
"Unshare" : "Закрыть доступ",
"Can reshare" : "Можно делиться",
"Can edit" : "Можно редактировать",
diff --git a/core/l10n/ru.json b/core/l10n/ru.json
index f335d97924e..b826df57cf6 100644
--- a/core/l10n/ru.json
+++ b/core/l10n/ru.json
@@ -151,14 +151,14 @@
"Allow upload and editing" : "Разрешить загрузку и редактирование",
"Read only" : "Только чтение",
"File drop (upload only)" : "Хранилище (только для приема файлов)",
- "Shared with you and the group {group} by {owner}" : "{owner} поделился с вами и группой {group} ",
- "Shared with you by {owner}" : "С вами поделился {owner} ",
+ "Shared with you and the group {group} by {owner}" : "{owner} предоставил(а) доступ вам и группе {group}",
+ "Shared with you by {owner}" : "{owner} предоставил(а) Вам доступ",
"Choose a password for the mail share" : "Укажите пароль для ссылки по почте",
- "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} поделился через ссылку",
+ "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} предоставил доступ созданием ссылки",
"group" : "группа",
"remote" : "удаленный",
"email" : "email",
- "shared by {sharer}" : "поделился {sharer}",
+ "shared by {sharer}" : "{sharer} предоставил(а) доступ",
"Unshare" : "Закрыть доступ",
"Can reshare" : "Можно делиться",
"Can edit" : "Можно редактировать",
diff --git a/core/l10n/sk.js b/core/l10n/sk.js
index c0df39679b4..2c050f79628 100644
--- a/core/l10n/sk.js
+++ b/core/l10n/sk.js
@@ -64,7 +64,7 @@ OC.L10N.register(
"Error fetching contact actions" : "Chyba počas získavania akcií kontaktu",
"Settings" : "Nastavenia",
"Connection to server lost" : "Stratené spojenie so serverom",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Nepodarilo sa načítať stránku, opätovný pokus o %n sekundu","Nepodarilo sa načítať stránku, opätovný pokus o %n sekundy","Nepodarilo sa načítať stránku, opätovný pokus o %n sekúnd"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Nepodarilo sa načítať stránku, opätovný pokus o %n sekundu","Nepodarilo sa načítať stránku, opätovný pokus o %n sekundy","Nepodarilo sa načítať stránku, opätovný pokus o %n sekúnd","Nepodarilo sa načítať stránku, opätovný pokus o %n sekúnd"],
"Saving..." : "Ukladám...",
"Dismiss" : "Odmietnuť",
"This action requires you to confirm your password" : "Táto akcia vyžaduje potvrdenie vášho hesla",
@@ -91,7 +91,7 @@ OC.L10N.register(
"OK" : "Ok",
"Error loading message template: {error}" : "Chyba pri nahrávaní šablóny správy: {error}",
"read-only" : "iba na čítanie",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} konflikt súboru","{count} konflikty súboru","{count} konfliktov súboru"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} konflikt súboru","{count} konflikty súboru","{count} konfliktov súboru","{count} konfliktov súboru"],
"One file conflict" : "Jeden konflikt súboru",
"New Files" : "Nové súbory",
"Already existing files" : "Už existujúce súbory",
@@ -171,7 +171,7 @@ OC.L10N.register(
"Could not unshare" : "Nepodarilo sa zrušiť sprístupnenie",
"Error while sharing" : "Chyba počas sprístupňovania",
"Share details could not be loaded for this item." : "Nebolo možné načítať údaje o sprístupnení tejto položky.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Najmenej {count} znak je potrebný pre autodopĺňanie","Najmenej {count} znaky sú potrebné pre autodopĺňanie","Najmenej {count} znakov je potrebných pre autodopĺňanie"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Najmenej {count} znak je potrebný pre autodopĺňanie","Najmenej {count} znaky sú potrebné pre autodopĺňanie","Najmenej {count} znakov je potrebných pre autodopĺňanie","Najmenej {count} znakov je potrebných pre autodopĺňanie"],
"This list is maybe truncated - please refine your search term to see more results." : "Tento zoznam môže byť skrátený - upresnite hľadaný výraz, aby ste získali viac výsledkov.",
"No users or groups found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ ani skupina",
"No users found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ",
@@ -203,7 +203,7 @@ OC.L10N.register(
"Hello {name}" : "Vitaj {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Toto sú výsledky vášho vyhľadávania <script>alert(1)</script></strong>",
"new" : "nový",
- "_download %n file_::_download %n files_" : ["stiahnuť %n súbor","stiahnuť %n súbory","stiahnuť %n súborov"],
+ "_download %n file_::_download %n files_" : ["stiahnuť %n súbor","stiahnuť %n súbory","stiahnuť %n súborov","stiahnuť %n súborov"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "Aktualizácie prebieha. V niektorých prostrediach môže opustenie tejto stránky spôsobiť prerušenie aktualizácie.",
"Update to {version}" : "Aktualizuj na {version}",
"An error occurred." : "Vyskytla sa chyba.",
@@ -211,10 +211,10 @@ OC.L10N.register(
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizácia neprebehla úspešne. Pre viac informácií <a href=\"{url}\">navštívte príspevok na našom fóre</a>, ktorý pokrýva tento problém.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Aktualizácia bola neúspešná. Oznámte prosím tento problém <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">komunite Nextcloud</a>.",
"Continue to Nextcloud" : "Pokračovať na Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundu.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundy.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekúnd."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundu.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundy.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekúnd.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekúnd."],
"Searching other places" : "Prehľadanie ostatných umiestnení",
"No search results in other folders for {tag}{filter}{endtag}" : "Žiadne výsledky vyhľadávania v ostatných priečinkoch pre {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} výsledok vyhľadávania v ostatných priečinkoch","{count} výsledky vyhľadávania v ostatných priečinkoch","{count} výsledkov vyhľadávania v ostatných priečinkoch"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} výsledok vyhľadávania v ostatných priečinkoch","{count} výsledky vyhľadávania v ostatných priečinkoch","{count} výsledkov vyhľadávania v ostatných priečinkoch","{count} výsledkov vyhľadávania v ostatných priečinkoch"],
"Personal" : "Osobné",
"Users" : "Používatelia",
"Apps" : "Aplikácie",
@@ -352,4 +352,4 @@ OC.L10N.register(
"Back to log in" : "Späť na prihlásenie",
"Depending on your configuration, this button could also work to trust the domain:" : "V závislosti od vašej konfigurácie by toto tlačidlo mohlo fungovať tak, že dôverujete doméne:"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/core/l10n/sk.json b/core/l10n/sk.json
index 19499de9380..a48cfc4575f 100644
--- a/core/l10n/sk.json
+++ b/core/l10n/sk.json
@@ -62,7 +62,7 @@
"Error fetching contact actions" : "Chyba počas získavania akcií kontaktu",
"Settings" : "Nastavenia",
"Connection to server lost" : "Stratené spojenie so serverom",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Nepodarilo sa načítať stránku, opätovný pokus o %n sekundu","Nepodarilo sa načítať stránku, opätovný pokus o %n sekundy","Nepodarilo sa načítať stránku, opätovný pokus o %n sekúnd"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Nepodarilo sa načítať stránku, opätovný pokus o %n sekundu","Nepodarilo sa načítať stránku, opätovný pokus o %n sekundy","Nepodarilo sa načítať stránku, opätovný pokus o %n sekúnd","Nepodarilo sa načítať stránku, opätovný pokus o %n sekúnd"],
"Saving..." : "Ukladám...",
"Dismiss" : "Odmietnuť",
"This action requires you to confirm your password" : "Táto akcia vyžaduje potvrdenie vášho hesla",
@@ -89,7 +89,7 @@
"OK" : "Ok",
"Error loading message template: {error}" : "Chyba pri nahrávaní šablóny správy: {error}",
"read-only" : "iba na čítanie",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} konflikt súboru","{count} konflikty súboru","{count} konfliktov súboru"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} konflikt súboru","{count} konflikty súboru","{count} konfliktov súboru","{count} konfliktov súboru"],
"One file conflict" : "Jeden konflikt súboru",
"New Files" : "Nové súbory",
"Already existing files" : "Už existujúce súbory",
@@ -169,7 +169,7 @@
"Could not unshare" : "Nepodarilo sa zrušiť sprístupnenie",
"Error while sharing" : "Chyba počas sprístupňovania",
"Share details could not be loaded for this item." : "Nebolo možné načítať údaje o sprístupnení tejto položky.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Najmenej {count} znak je potrebný pre autodopĺňanie","Najmenej {count} znaky sú potrebné pre autodopĺňanie","Najmenej {count} znakov je potrebných pre autodopĺňanie"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Najmenej {count} znak je potrebný pre autodopĺňanie","Najmenej {count} znaky sú potrebné pre autodopĺňanie","Najmenej {count} znakov je potrebných pre autodopĺňanie","Najmenej {count} znakov je potrebných pre autodopĺňanie"],
"This list is maybe truncated - please refine your search term to see more results." : "Tento zoznam môže byť skrátený - upresnite hľadaný výraz, aby ste získali viac výsledkov.",
"No users or groups found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ ani skupina",
"No users found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ",
@@ -201,7 +201,7 @@
"Hello {name}" : "Vitaj {name}",
"<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Toto sú výsledky vášho vyhľadávania <script>alert(1)</script></strong>",
"new" : "nový",
- "_download %n file_::_download %n files_" : ["stiahnuť %n súbor","stiahnuť %n súbory","stiahnuť %n súborov"],
+ "_download %n file_::_download %n files_" : ["stiahnuť %n súbor","stiahnuť %n súbory","stiahnuť %n súborov","stiahnuť %n súborov"],
"The update is in progress, leaving this page might interrupt the process in some environments." : "Aktualizácie prebieha. V niektorých prostrediach môže opustenie tejto stránky spôsobiť prerušenie aktualizácie.",
"Update to {version}" : "Aktualizuj na {version}",
"An error occurred." : "Vyskytla sa chyba.",
@@ -209,10 +209,10 @@
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Aktualizácia neprebehla úspešne. Pre viac informácií <a href=\"{url}\">navštívte príspevok na našom fóre</a>, ktorý pokrýva tento problém.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Aktualizácia bola neúspešná. Oznámte prosím tento problém <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">komunite Nextcloud</a>.",
"Continue to Nextcloud" : "Pokračovať na Nextcloud",
- "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundu.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundy.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekúnd."],
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundu.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekundy.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekúnd.","Aktualizácia bola úspešná. Presmerúva sa na Nextcloud za %n sekúnd."],
"Searching other places" : "Prehľadanie ostatných umiestnení",
"No search results in other folders for {tag}{filter}{endtag}" : "Žiadne výsledky vyhľadávania v ostatných priečinkoch pre {tag}{filter}{endtag}",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} výsledok vyhľadávania v ostatných priečinkoch","{count} výsledky vyhľadávania v ostatných priečinkoch","{count} výsledkov vyhľadávania v ostatných priečinkoch"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} výsledok vyhľadávania v ostatných priečinkoch","{count} výsledky vyhľadávania v ostatných priečinkoch","{count} výsledkov vyhľadávania v ostatných priečinkoch","{count} výsledkov vyhľadávania v ostatných priečinkoch"],
"Personal" : "Osobné",
"Users" : "Používatelia",
"Apps" : "Aplikácie",
@@ -349,5 +349,5 @@
"Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Vaše PHP nemá podporu FreeType, čo bude mať za následok poškodenie profilových obrázkov a rozhrania nastavení.",
"Back to log in" : "Späť na prihlásenie",
"Depending on your configuration, this button could also work to trust the domain:" : "V závislosti od vašej konfigurácie by toto tlačidlo mohlo fungovať tak, že dôverujete doméne:"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/core/l10n/uk.js b/core/l10n/uk.js
index 22bedcc5768..f52b9c36e2e 100644
--- a/core/l10n/uk.js
+++ b/core/l10n/uk.js
@@ -63,7 +63,7 @@ OC.L10N.register(
"Error fetching contact actions" : "Неможливо отримати дії з контактами",
"Settings" : "Налаштування",
"Connection to server lost" : "З'єднання з сервером втрачено",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек."],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек."],
"Saving..." : "Збереження...",
"Dismiss" : "Припинити",
"This action requires you to confirm your password" : "Ця дія потребує підтвердження вашого пароля",
@@ -90,7 +90,7 @@ OC.L10N.register(
"OK" : "OK",
"Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}",
"read-only" : "Тільки для читання",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів","{count} файлових конфліктів"],
"One file conflict" : "Один файловий конфлікт",
"New Files" : "Нових Файлів",
"Already existing files" : "Файли що вже існують",
@@ -178,13 +178,13 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ",
"Hello {name}" : "Привіт {name}",
"new" : "новий",
- "_download %n file_::_download %n files_" : ["завантаження %n файлу","завантаження %n файлів","завантаження %n файлів"],
+ "_download %n file_::_download %n files_" : ["завантаження %n файлу","завантаження %n файлів","завантаження %n файлів","завантаження %n файлів"],
"Update to {version}" : "Оновлення до {version}",
"An error occurred." : "Виникла помилка.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Оновлення не вдалося. За інформацією <a href=\"{url}\">зверніться до повідомлення на форумі</a>, що описує цю проблему.",
"Searching other places" : "Йде пошук в інших місцях",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} результат пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} результат пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках"],
"Personal" : "Особисте",
"Users" : "Користувачі",
"Apps" : "Додатки",
@@ -271,4 +271,4 @@ OC.L10N.register(
"For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Для допомоги, дивіться <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>.",
"Back to log in" : "Повернутися до сторінки авторизації"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/core/l10n/uk.json b/core/l10n/uk.json
index ee535456ab3..7c2aa74ef76 100644
--- a/core/l10n/uk.json
+++ b/core/l10n/uk.json
@@ -61,7 +61,7 @@
"Error fetching contact actions" : "Неможливо отримати дії з контактами",
"Settings" : "Налаштування",
"Connection to server lost" : "З'єднання з сервером втрачено",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек."],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за %n сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек.","Проблема під час завантаження сторінки, повторне завантаження за 5 сек."],
"Saving..." : "Збереження...",
"Dismiss" : "Припинити",
"This action requires you to confirm your password" : "Ця дія потребує підтвердження вашого пароля",
@@ -88,7 +88,7 @@
"OK" : "OK",
"Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}",
"read-only" : "Тільки для читання",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів","{count} файлових конфліктів"],
"One file conflict" : "Один файловий конфлікт",
"New Files" : "Нових Файлів",
"Already existing files" : "Файли що вже існують",
@@ -176,13 +176,13 @@
"Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ",
"Hello {name}" : "Привіт {name}",
"new" : "новий",
- "_download %n file_::_download %n files_" : ["завантаження %n файлу","завантаження %n файлів","завантаження %n файлів"],
+ "_download %n file_::_download %n files_" : ["завантаження %n файлу","завантаження %n файлів","завантаження %n файлів","завантаження %n файлів"],
"Update to {version}" : "Оновлення до {version}",
"An error occurred." : "Виникла помилка.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Оновлення не вдалося. За інформацією <a href=\"{url}\">зверніться до повідомлення на форумі</a>, що описує цю проблему.",
"Searching other places" : "Йде пошук в інших місцях",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} результат пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках"],
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} результат пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках","{count} результатів пошуку в інших теках"],
"Personal" : "Особисте",
"Users" : "Користувачі",
"Apps" : "Додатки",
@@ -268,5 +268,5 @@
"Add \"%s\" as trusted domain" : "Додати \"%s\" як довірений домен",
"For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Для допомоги, дивіться <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>.",
"Back to log in" : "Повернутися до сторінки авторизації"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/core/vendor/DOMPurify/.bower.json b/core/vendor/DOMPurify/.bower.json
index cb58c97b3bb..2eb81967225 100644
--- a/core/vendor/DOMPurify/.bower.json
+++ b/core/vendor/DOMPurify/.bower.json
@@ -1,6 +1,6 @@
{
"name": "DOMPurify",
- "version": "1.0.0",
+ "version": "1.0.4",
"homepage": "https://github.com/cure53/DOMPurify",
"author": "Cure53 <info@cure53.de>",
"description": "A DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG",
@@ -29,14 +29,13 @@
"test",
"website"
],
- "_release": "1.0.0",
+ "_release": "1.0.4",
"_resolution": {
"type": "version",
- "tag": "1.0.0",
- "commit": "4d0115a125b295e8b8e9fe4353222da53e543ba0"
+ "tag": "1.0.4",
+ "commit": "e7a1c316269bc0f6dd2698c3a7571bc4b561d892"
},
"_source": "https://github.com/cure53/DOMPurify.git",
"_target": "^1.0.0",
- "_originalSource": "DOMPurify",
- "_direct": true
+ "_originalSource": "DOMPurify"
} \ No newline at end of file
diff --git a/core/vendor/DOMPurify/dist/purify.min.js b/core/vendor/DOMPurify/dist/purify.min.js
index 4e7b95467b1..13ec1701f14 100644
--- a/core/vendor/DOMPurify/dist/purify.min.js
+++ b/core/vendor/DOMPurify/dist/purify.min.js
@@ -1,2 +1,2 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.DOMPurify=t()}(this,function(){"use strict";function e(e,t){for(var n=t.length;n--;)"string"==typeof t[n]&&(t[n]=t[n].toLowerCase()),e[t[n]]=!0;return e}function t(e){var t={},n=void 0;for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(){return Function("return this")()}function r(){var h=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o(),g=function(e){return r(e)};if(g.version="1.0.0",g.removed=[],!h||!h.document||9!==h.document.nodeType)return g.isSupported=!1,g;var y=h.document,v=!1,b=!1,T=h.document,A=h.DocumentFragment,x=h.HTMLTemplateElement,S=h.Node,k=h.NodeFilter,E=h.NamedNodeMap,w=void 0===E?h.NamedNodeMap||h.MozNamedAttrMap:E,O=h.Text,M=h.Comment,N=h.DOMParser,L=h.XMLHttpRequest,D=void 0===L?h.XMLHttpRequest:L,_=h.encodeURI,R=void 0===_?h.encodeURI:_;if("function"==typeof x){var C=T.createElement("template");C.content&&C.content.ownerDocument&&(T=C.content.ownerDocument)}var F=T,z=F.implementation,H=F.createNodeIterator,I=F.getElementsByTagName,j=F.createDocumentFragment,U=y.importNode,q={};g.isSupported=z&&void 0!==z.createHTMLDocument&&9!==T.documentMode;var W=null,B=e({},[].concat(n(i),n(a),n(l),n(s),n(c))),G=null,P=e({},[].concat(n(d),n(u),n(m),n(f))),V=null,X=null,Y=!0,K=!0,$=!1,J=!1,Q=!1,Z=/\{\{[\s\S]*|[\s\S]*\}\}/gm,ee=/<%[\s\S]*|[\s\S]*%>/gm,te=!1,ne=!1,oe=!1,re=!1,ie=!1,ae=!1,le=!0,se=!0,ce={},de=e({},["audio","head","math","script","style","template","svg","video"]),ue=e({},["audio","video","img","source","image"]),me=e({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),fe=null,pe=T.createElement("form"),he=function(o){"object"!==(void 0===o?"undefined":p(o))&&(o={}),W="ALLOWED_TAGS"in o?e({},o.ALLOWED_TAGS):B,G="ALLOWED_ATTR"in o?e({},o.ALLOWED_ATTR):P,V="FORBID_TAGS"in o?e({},o.FORBID_TAGS):{},X="FORBID_ATTR"in o?e({},o.FORBID_ATTR):{},ce="USE_PROFILES"in o&&o.USE_PROFILES,Y=!1!==o.ALLOW_ARIA_ATTR,K=!1!==o.ALLOW_DATA_ATTR,$=o.ALLOW_UNKNOWN_PROTOCOLS||!1,J=o.SAFE_FOR_JQUERY||!1,Q=o.SAFE_FOR_TEMPLATES||!1,te=o.WHOLE_DOCUMENT||!1,re=o.RETURN_DOM||!1,ie=o.RETURN_DOM_FRAGMENT||!1,ae=o.RETURN_DOM_IMPORT||!1,oe=o.FORCE_BODY||!1,le=!1!==o.SANITIZE_DOM,se=!1!==o.KEEP_CONTENT,Q&&(K=!1),ie&&(re=!0),ce&&(W=e({},[].concat(n(c))),G=[],!0===ce.html&&(e(W,i),e(G,d)),!0===ce.svg&&(e(W,a),e(G,u),e(G,f)),!0===ce.svgFilters&&(e(W,l),e(G,u),e(G,f)),!0===ce.mathMl&&(e(W,s),e(G,m),e(G,f))),o.ADD_TAGS&&(W===B&&(W=t(W)),e(W,o.ADD_TAGS)),o.ADD_ATTR&&(G===P&&(G=t(G)),e(G,o.ADD_ATTR)),o.ADD_URI_SAFE_ATTR&&e(me,o.ADD_URI_SAFE_ATTR),se&&(W["#text"]=!0),Object&&"freeze"in Object&&Object.freeze(o),fe=o},ge=function(e){g.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}},ye=function(e,t){g.removed.push({attribute:t.getAttributeNode(e),from:t}),t.removeAttribute(e)},ve=function(e){var t=void 0,n=void 0;if(oe&&(e="<remove></remove>"+e),b){try{e=R(e)}catch(e){}var o=new D;o.responseType="document",o.open("GET","data:text/html;charset=utf-8,"+e,!1),o.send(null),t=o.response}if(v)try{t=(new N).parseFromString(e,"text/html")}catch(e){}return t&&t.documentElement||((n=(t=z.createHTMLDocument("")).body).parentNode.removeChild(n.parentNode.firstElementChild),n.outerHTML=e),I.call(t,te?"html":"body")[0]};g.isSupported&&function(){var e=ve('<svg><g onload="this.parentNode.remove()"></g></svg>');e.querySelector("svg")||(b=!0);try{(e=ve('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">')).querySelector("svg img")&&(v=!0)}catch(e){}}();var be=function(e){return H.call(e.ownerDocument||e,e,k.SHOW_ELEMENT|k.SHOW_COMMENT|k.SHOW_TEXT,function(){return k.FILTER_ACCEPT},!1)},Te=function(e){return!(e instanceof O||e instanceof M)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof w&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute)},Ae=function(e){return"object"===(void 0===S?"undefined":p(S))?e instanceof S:e&&"object"===(void 0===e?"undefined":p(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},xe=function(e,t,n){q[e]&&q[e].forEach(function(e){e.call(g,t,n,fe)})},Se=function(e){var t=void 0;if(xe("beforeSanitizeElements",e,null),Te(e))return ge(e),!0;var n=e.nodeName.toLowerCase();if(xe("uponSanitizeElement",e,{tagName:n,allowedTags:W}),!W[n]||V[n]){if(se&&!de[n]&&"function"==typeof e.insertAdjacentHTML)try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(e){}return ge(e),!0}return!J||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(g.removed.push({element:e.cloneNode()}),e.innerHTML=e.textContent.replace(/</g,"&lt;")),Q&&3===e.nodeType&&(t=(t=(t=e.textContent).replace(Z," ")).replace(ee," "),e.textContent!==t&&(g.removed.push({element:e.cloneNode()}),e.textContent=t)),xe("afterSanitizeElements",e,null),!1},ke=/^data-[\-\w.\u00B7-\uFFFF]/,Ee=/^aria-[\-\w]+$/,we=/^(?:(?:(?:f|ht)tps?|mailto|tel):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Oe=/^(?:\w+script|data):/i,Me=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Ne=function(e){var t=void 0,n=void 0,o=void 0,r=void 0,i=void 0,a=void 0,l=void 0;if(xe("beforeSanitizeAttributes",e,null),a=e.attributes){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:G};for(l=a.length;l--;){if(t=a[l],n=t.name,o=t.value.trim(),r=n.toLowerCase(),s.attrName=r,s.attrValue=o,s.keepAttr=!0,xe("uponSanitizeAttribute",e,s),o=s.attrValue,"name"===r&&"IMG"===e.nodeName&&a.id)i=a.id,a=Array.prototype.slice.apply(a),ye("id",e),ye(n,e),a.indexOf(i)>l&&e.setAttribute("id",i.value);else{if("INPUT"===e.nodeName&&"type"===r&&"file"===o&&(G[r]||!X[r]))continue;"id"===n&&e.setAttribute(n,""),ye(n,e)}if(s.keepAttr&&(!le||"id"!==r&&"name"!==r||!(o in h||o in T||o in pe))){if(Q&&(o=(o=o.replace(Z," ")).replace(ee," ")),K&&ke.test(r));else if(Y&&Ee.test(r));else{if(!G[r]||X[r])continue;if(me[r]);else if(we.test(o.replace(Me,"")));else if("src"!==r&&"xlink:href"!==r||0!==o.indexOf("data:")||!ue[e.nodeName.toLowerCase()]){if($&&!Oe.test(o.replace(Me,"")));else if(o)continue}else;}try{e.setAttribute(n,o),g.removed.pop()}catch(e){}}}xe("afterSanitizeAttributes",e,null)}},Le=function e(t){var n=void 0,o=be(t);for(xe("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)xe("uponSanitizeShadowNode",n,null),Se(n)||(n.content instanceof A&&e(n.content),Ne(n));xe("afterSanitizeShadowDOM",t,null)};return g.sanitize=function(e,t){var n=void 0,o=void 0,r=void 0,i=void 0,a=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Ae(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");e=e.toString()}if(!g.isSupported){if("object"===p(h.toStaticHTML)||"function"==typeof h.toStaticHTML){if("string"==typeof e)return h.toStaticHTML(e);if(Ae(e))return h.toStaticHTML(e.outerHTML)}return e}if(ne||he(t),g.removed=[],e instanceof S)1===(o=(n=ve("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===o.nodeName?n=o:n.appendChild(o);else{if(!re&&!te&&-1===e.indexOf("<"))return e;if(!(n=ve(e)))return re?null:""}oe&&ge(n.firstChild);for(var l=be(n);r=l.nextNode();)3===r.nodeType&&r===i||Se(r)||(r.content instanceof A&&Le(r.content),Ne(r),i=r);if(re){if(ie)for(a=j.call(n.ownerDocument);n.firstChild;)a.appendChild(n.firstChild);else a=n;return ae&&(a=U.call(y,a,!0)),a}return te?n.outerHTML:n.innerHTML},g.setConfig=function(e){he(e),ne=!0},g.clearConfig=function(){fe=null,ne=!1},g.addHook=function(e,t){"function"==typeof t&&(q[e]=q[e]||[],q[e].push(t))},g.removeHook=function(e){q[e]&&q[e].pop()},g.removeHooks=function(e){q[e]&&(q[e]=[])},g.removeAllHooks=function(){q={}},g}var i=["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],a=["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"],l=["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence"],s=["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],c=["#text"],d=["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","span","srclang","start","src","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"],u=["accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"],m=["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"],f=["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"],p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};return r()});
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.DOMPurify=t()}(this,function(){"use strict";function e(e,t){for(var n=t.length;n--;)"string"==typeof t[n]&&(t[n]=t[n].toLowerCase()),e[t[n]]=!0;return e}function t(e){var t={},n=void 0;for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(){var x=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A(),S=function(e){return o(e)};if(S.version="1.0.4",S.removed=[],!x||!x.document||9!==x.document.nodeType)return S.isSupported=!1,S;var k=x.document,w=!1,E=!1,L=x.document,O=x.DocumentFragment,M=x.HTMLTemplateElement,N=x.Node,D=x.NodeFilter,_=x.NamedNodeMap,R=void 0===_?x.NamedNodeMap||x.MozNamedAttrMap:_,C=x.Text,F=x.Comment,z=x.DOMParser,H=x.XMLHttpRequest,I=void 0===H?x.XMLHttpRequest:H,j=x.encodeURI,U=void 0===j?x.encodeURI:j;if("function"==typeof M){var P=L.createElement("template");P.content&&P.content.ownerDocument&&(L=P.content.ownerDocument)}var W=L,q=W.implementation,G=W.createNodeIterator,B=W.getElementsByTagName,X=W.createDocumentFragment,V=k.importNode,Y={};S.isSupported=q&&void 0!==q.createHTMLDocument&&9!==L.documentMode;var K=p,$=f,J=h,Q=g,Z=v,ee=b,te=y,ne=null,oe=e({},[].concat(n(r),n(i),n(a),n(l),n(s))),re=null,ie=e({},[].concat(n(c),n(d),n(u),n(m))),ae=null,le=null,se=!0,ce=!0,de=!1,ue=!1,me=!1,pe=!1,fe=!1,he=!1,ge=!1,ye=!1,ve=!1,be=!0,Te=!0,Ae={},xe=e({},["audio","head","math","script","style","template","svg","video"]),Se=e({},["audio","video","img","source","image"]),ke=e({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),we=null,Ee=L.createElement("form"),Le=function(o){"object"!==(void 0===o?"undefined":T(o))&&(o={}),ne="ALLOWED_TAGS"in o?e({},o.ALLOWED_TAGS):oe,re="ALLOWED_ATTR"in o?e({},o.ALLOWED_ATTR):ie,ae="FORBID_TAGS"in o?e({},o.FORBID_TAGS):{},le="FORBID_ATTR"in o?e({},o.FORBID_ATTR):{},Ae="USE_PROFILES"in o&&o.USE_PROFILES,se=!1!==o.ALLOW_ARIA_ATTR,ce=!1!==o.ALLOW_DATA_ATTR,de=o.ALLOW_UNKNOWN_PROTOCOLS||!1,ue=o.SAFE_FOR_JQUERY||!1,me=o.SAFE_FOR_TEMPLATES||!1,pe=o.WHOLE_DOCUMENT||!1,ge=o.RETURN_DOM||!1,ye=o.RETURN_DOM_FRAGMENT||!1,ve=o.RETURN_DOM_IMPORT||!1,he=o.FORCE_BODY||!1,be=!1!==o.SANITIZE_DOM,Te=!1!==o.KEEP_CONTENT,te=o.ALLOWED_URI_REGEXP||te,me&&(ce=!1),ye&&(ge=!0),Ae&&(ne=e({},[].concat(n(s))),re=[],!0===Ae.html&&(e(ne,r),e(re,c)),!0===Ae.svg&&(e(ne,i),e(re,d),e(re,m)),!0===Ae.svgFilters&&(e(ne,a),e(re,d),e(re,m)),!0===Ae.mathMl&&(e(ne,l),e(re,u),e(re,m))),o.ADD_TAGS&&(ne===oe&&(ne=t(ne)),e(ne,o.ADD_TAGS)),o.ADD_ATTR&&(re===ie&&(re=t(re)),e(re,o.ADD_ATTR)),o.ADD_URI_SAFE_ATTR&&e(ke,o.ADD_URI_SAFE_ATTR),Te&&(ne["#text"]=!0),Object&&"freeze"in Object&&Object.freeze(o),we=o},Oe=function(e){S.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}},Me=function(e,t){try{S.removed.push({attribute:t.getAttributeNode(e),from:t})}catch(e){S.removed.push({attribute:null,from:t})}t.removeAttribute(e)},Ne=function(e){var t=void 0,n=void 0;if(he&&(e="<remove></remove>"+e),E){try{e=U(e)}catch(e){}var o=new I;o.responseType="document",o.open("GET","data:text/html;charset=utf-8,"+e,!1),o.send(null),t=o.response}if(w)try{t=(new z).parseFromString(e,"text/html")}catch(e){}return t&&t.documentElement||((n=(t=q.createHTMLDocument("")).body).parentNode.removeChild(n.parentNode.firstElementChild),n.outerHTML=e),B.call(t,pe?"html":"body")[0]};S.isSupported&&function(){var e=Ne('<svg><g onload="this.parentNode.remove()"></g></svg>');e.querySelector("svg")||(E=!0);try{(e=Ne('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">')).querySelector("svg img")&&(w=!0)}catch(e){}}();var De=function(e){return G.call(e.ownerDocument||e,e,D.SHOW_ELEMENT|D.SHOW_COMMENT|D.SHOW_TEXT,function(){return D.FILTER_ACCEPT},!1)},_e=function(e){return!(e instanceof C||e instanceof F)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof R&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute)},Re=function(e){return"object"===(void 0===N?"undefined":T(N))?e instanceof N:e&&"object"===(void 0===e?"undefined":T(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},Ce=function(e,t,n){Y[e]&&Y[e].forEach(function(e){e.call(S,t,n,we)})},Fe=function(e){var t=void 0;if(Ce("beforeSanitizeElements",e,null),_e(e))return Oe(e),!0;var n=e.nodeName.toLowerCase();if(Ce("uponSanitizeElement",e,{tagName:n,allowedTags:ne}),!ne[n]||ae[n]){if(Te&&!xe[n]&&"function"==typeof e.insertAdjacentHTML)try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(e){}return Oe(e),!0}return!ue||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(S.removed.push({element:e.cloneNode()}),e.innerHTML=e.textContent.replace(/</g,"&lt;")),me&&3===e.nodeType&&(t=(t=(t=e.textContent).replace(K," ")).replace($," "),e.textContent!==t&&(S.removed.push({element:e.cloneNode()}),e.textContent=t)),Ce("afterSanitizeElements",e,null),!1},ze=function(e){var t=void 0,n=void 0,o=void 0,r=void 0,i=void 0,a=void 0,l=void 0;if(Ce("beforeSanitizeAttributes",e,null),a=e.attributes){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:re};for(l=a.length;l--;){if(t=a[l],n=t.name,o=t.value.trim(),r=n.toLowerCase(),s.attrName=r,s.attrValue=o,s.keepAttr=!0,Ce("uponSanitizeAttribute",e,s),o=s.attrValue,"name"===r&&"IMG"===e.nodeName&&a.id)i=a.id,a=Array.prototype.slice.apply(a),Me("id",e),Me(n,e),a.indexOf(i)>l&&e.setAttribute("id",i.value);else{if("INPUT"===e.nodeName&&"type"===r&&"file"===o&&(re[r]||!le[r]))continue;"id"===n&&e.setAttribute(n,""),Me(n,e)}if(s.keepAttr&&(!be||"id"!==r&&"name"!==r||!(o in L||o in Ee))){if(me&&(o=(o=o.replace(K," ")).replace($," ")),ce&&J.test(r));else if(se&&Q.test(r));else{if(!re[r]||le[r])continue;if(ke[r]);else if(te.test(o.replace(ee,"")));else if("src"!==r&&"xlink:href"!==r||0!==o.indexOf("data:")||!Se[e.nodeName.toLowerCase()]){if(de&&!Z.test(o.replace(ee,"")));else if(o)continue}else;}try{e.setAttribute(n,o),S.removed.pop()}catch(e){}}}Ce("afterSanitizeAttributes",e,null)}},He=function e(t){var n=void 0,o=De(t);for(Ce("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)Ce("uponSanitizeShadowNode",n,null),Fe(n)||(n.content instanceof O&&e(n.content),ze(n));Ce("afterSanitizeShadowDOM",t,null)};return S.sanitize=function(e,t){var n=void 0,o=void 0,r=void 0,i=void 0,a=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Re(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");if("string"!=typeof(e=e.toString()))throw new TypeError("dirty is not a string, aborting")}if(!S.isSupported){if("object"===T(x.toStaticHTML)||"function"==typeof x.toStaticHTML){if("string"==typeof e)return x.toStaticHTML(e);if(Re(e))return x.toStaticHTML(e.outerHTML)}return e}if(fe||Le(t),S.removed=[],e instanceof N)1===(o=(n=Ne("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===o.nodeName?n=o:n.appendChild(o);else{if(!ge&&!pe&&-1===e.indexOf("<"))return e;if(!(n=Ne(e)))return ge?null:""}he&&Oe(n.firstChild);for(var l=De(n);r=l.nextNode();)3===r.nodeType&&r===i||Fe(r)||(r.content instanceof O&&He(r.content),ze(r),i=r);if(ge){if(ye)for(a=X.call(n.ownerDocument);n.firstChild;)a.appendChild(n.firstChild);else a=n;return ve&&(a=V.call(k,a,!0)),a}return pe?n.outerHTML:n.innerHTML},S.setConfig=function(e){Le(e),fe=!0},S.clearConfig=function(){we=null,fe=!1},S.addHook=function(e,t){"function"==typeof t&&(Y[e]=Y[e]||[],Y[e].push(t))},S.removeHook=function(e){Y[e]&&Y[e].pop()},S.removeHooks=function(e){Y[e]&&(Y[e]=[])},S.removeAllHooks=function(){Y={}},S}var r=["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],i=["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"],a=["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"],l=["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],s=["#text"],c=["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","crossorigin","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","integrity","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"],d=["accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"],u=["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"],m=["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"],p=/\{\{[\s\S]*|[\s\S]*\}\}/gm,f=/<%[\s\S]*|[\s\S]*%>/gm,h=/^data-[\-\w.\u00B7-\uFFFF]/,g=/^aria-[\-\w]+$/,y=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,v=/^(?:\w+script|data):/i,b=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A=function(){return"undefined"==typeof window?null:window};return o()});
//# sourceMappingURL=purify.min.js.map
diff --git a/core/vendor/core.js b/core/vendor/core.js
index 228b0b4da1f..86249fbf3eb 100644
--- a/core/vendor/core.js
+++ b/core/vendor/core.js
@@ -5955,7 +5955,7 @@ dav.Client.prototype = {
http://www.jacklmoore.com/autosize
*/
!function(e,t){if("function"==typeof define&&define.amd)define(["exports","module"],t);else if("undefined"!=typeof exports&&"undefined"!=typeof module)t(exports,module);else{var n={exports:{}};t(n.exports,n),e.autosize=n.exports}}(this,function(e,t){"use strict";function n(e){function t(){var t=window.getComputedStyle(e,null);"vertical"===t.resize?e.style.resize="none":"both"===t.resize&&(e.style.resize="horizontal"),s="content-box"===t.boxSizing?-(parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)):parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth),isNaN(s)&&(s=0),l()}function n(t){var n=e.style.width;e.style.width="0px",e.offsetWidth,e.style.width=n,e.style.overflowY=t}function o(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push({node:e.parentNode,scrollTop:e.parentNode.scrollTop}),e=e.parentNode;return t}function r(){var t=e.style.height,n=o(e),r=document.documentElement&&document.documentElement.scrollTop;e.style.height="";var i=e.scrollHeight+s;return 0===e.scrollHeight?void(e.style.height=t):(e.style.height=i+"px",u=e.clientWidth,n.forEach(function(e){e.node.scrollTop=e.scrollTop}),void(r&&(document.documentElement.scrollTop=r)))}function l(){r();var t=Math.round(parseFloat(e.style.height)),o=window.getComputedStyle(e,null),i="content-box"===o.boxSizing?Math.round(parseFloat(o.height)):e.offsetHeight;if(i!==t?"hidden"===o.overflowY&&(n("scroll"),r(),i="content-box"===o.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight):"hidden"!==o.overflowY&&(n("hidden"),r(),i="content-box"===o.boxSizing?Math.round(parseFloat(window.getComputedStyle(e,null).height)):e.offsetHeight),a!==i){a=i;var l=d("autosize:resized");try{e.dispatchEvent(l)}catch(e){}}}if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!i.has(e)){var s=null,u=e.clientWidth,a=null,c=function(){e.clientWidth!==u&&l()},p=function(t){window.removeEventListener("resize",c,!1),e.removeEventListener("input",l,!1),e.removeEventListener("keyup",l,!1),e.removeEventListener("autosize:destroy",p,!1),e.removeEventListener("autosize:update",l,!1),Object.keys(t).forEach(function(n){e.style[n]=t[n]}),i.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",p,!1),"onpropertychange"in e&&"oninput"in e&&e.addEventListener("keyup",l,!1),window.addEventListener("resize",c,!1),e.addEventListener("input",l,!1),e.addEventListener("autosize:update",l,!1),e.style.overflowX="hidden",e.style.wordWrap="break-word",i.set(e,{destroy:p,update:l}),t()}}function o(e){var t=i.get(e);t&&t.destroy()}function r(e){var t=i.get(e);t&&t.update()}var i="function"==typeof Map?new Map:function(){var e=[],t=[];return{has:function(t){return e.indexOf(t)>-1},get:function(n){return t[e.indexOf(n)]},set:function(n,o){e.indexOf(n)===-1&&(e.push(n),t.push(o))},delete:function(n){var o=e.indexOf(n);o>-1&&(e.splice(o,1),t.splice(o,1))}}}(),d=function(e){return new Event(e,{bubbles:!0})};try{new Event("test")}catch(e){d=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!1),t}}var l=null;"undefined"==typeof window||"function"!=typeof window.getComputedStyle?(l=function(e){return e},l.destroy=function(e){return e},l.update=function(e){return e}):(l=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return n(e,t)}),e},l.destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],o),e},l.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],r),e}),t.exports=l});
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.DOMPurify=t()}(this,function(){"use strict";function e(e,t){for(var n=t.length;n--;)"string"==typeof t[n]&&(t[n]=t[n].toLowerCase()),e[t[n]]=!0;return e}function t(e){var t={},n=void 0;for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(){return Function("return this")()}function r(){var h=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o(),g=function(e){return r(e)};if(g.version="1.0.0",g.removed=[],!h||!h.document||9!==h.document.nodeType)return g.isSupported=!1,g;var y=h.document,v=!1,b=!1,T=h.document,A=h.DocumentFragment,x=h.HTMLTemplateElement,S=h.Node,k=h.NodeFilter,E=h.NamedNodeMap,w=void 0===E?h.NamedNodeMap||h.MozNamedAttrMap:E,O=h.Text,M=h.Comment,N=h.DOMParser,L=h.XMLHttpRequest,D=void 0===L?h.XMLHttpRequest:L,_=h.encodeURI,R=void 0===_?h.encodeURI:_;if("function"==typeof x){var C=T.createElement("template");C.content&&C.content.ownerDocument&&(T=C.content.ownerDocument)}var F=T,z=F.implementation,H=F.createNodeIterator,I=F.getElementsByTagName,j=F.createDocumentFragment,U=y.importNode,q={};g.isSupported=z&&void 0!==z.createHTMLDocument&&9!==T.documentMode;var W=null,B=e({},[].concat(n(i),n(a),n(l),n(s),n(c))),G=null,P=e({},[].concat(n(d),n(u),n(m),n(f))),V=null,X=null,Y=!0,K=!0,$=!1,J=!1,Q=!1,Z=/\{\{[\s\S]*|[\s\S]*\}\}/gm,ee=/<%[\s\S]*|[\s\S]*%>/gm,te=!1,ne=!1,oe=!1,re=!1,ie=!1,ae=!1,le=!0,se=!0,ce={},de=e({},["audio","head","math","script","style","template","svg","video"]),ue=e({},["audio","video","img","source","image"]),me=e({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),fe=null,pe=T.createElement("form"),he=function(o){"object"!==(void 0===o?"undefined":p(o))&&(o={}),W="ALLOWED_TAGS"in o?e({},o.ALLOWED_TAGS):B,G="ALLOWED_ATTR"in o?e({},o.ALLOWED_ATTR):P,V="FORBID_TAGS"in o?e({},o.FORBID_TAGS):{},X="FORBID_ATTR"in o?e({},o.FORBID_ATTR):{},ce="USE_PROFILES"in o&&o.USE_PROFILES,Y=!1!==o.ALLOW_ARIA_ATTR,K=!1!==o.ALLOW_DATA_ATTR,$=o.ALLOW_UNKNOWN_PROTOCOLS||!1,J=o.SAFE_FOR_JQUERY||!1,Q=o.SAFE_FOR_TEMPLATES||!1,te=o.WHOLE_DOCUMENT||!1,re=o.RETURN_DOM||!1,ie=o.RETURN_DOM_FRAGMENT||!1,ae=o.RETURN_DOM_IMPORT||!1,oe=o.FORCE_BODY||!1,le=!1!==o.SANITIZE_DOM,se=!1!==o.KEEP_CONTENT,Q&&(K=!1),ie&&(re=!0),ce&&(W=e({},[].concat(n(c))),G=[],!0===ce.html&&(e(W,i),e(G,d)),!0===ce.svg&&(e(W,a),e(G,u),e(G,f)),!0===ce.svgFilters&&(e(W,l),e(G,u),e(G,f)),!0===ce.mathMl&&(e(W,s),e(G,m),e(G,f))),o.ADD_TAGS&&(W===B&&(W=t(W)),e(W,o.ADD_TAGS)),o.ADD_ATTR&&(G===P&&(G=t(G)),e(G,o.ADD_ATTR)),o.ADD_URI_SAFE_ATTR&&e(me,o.ADD_URI_SAFE_ATTR),se&&(W["#text"]=!0),Object&&"freeze"in Object&&Object.freeze(o),fe=o},ge=function(e){g.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}},ye=function(e,t){g.removed.push({attribute:t.getAttributeNode(e),from:t}),t.removeAttribute(e)},ve=function(e){var t=void 0,n=void 0;if(oe&&(e="<remove></remove>"+e),b){try{e=R(e)}catch(e){}var o=new D;o.responseType="document",o.open("GET","data:text/html;charset=utf-8,"+e,!1),o.send(null),t=o.response}if(v)try{t=(new N).parseFromString(e,"text/html")}catch(e){}return t&&t.documentElement||((n=(t=z.createHTMLDocument("")).body).parentNode.removeChild(n.parentNode.firstElementChild),n.outerHTML=e),I.call(t,te?"html":"body")[0]};g.isSupported&&function(){var e=ve('<svg><g onload="this.parentNode.remove()"></g></svg>');e.querySelector("svg")||(b=!0);try{(e=ve('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">')).querySelector("svg img")&&(v=!0)}catch(e){}}();var be=function(e){return H.call(e.ownerDocument||e,e,k.SHOW_ELEMENT|k.SHOW_COMMENT|k.SHOW_TEXT,function(){return k.FILTER_ACCEPT},!1)},Te=function(e){return!(e instanceof O||e instanceof M)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof w&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute)},Ae=function(e){return"object"===(void 0===S?"undefined":p(S))?e instanceof S:e&&"object"===(void 0===e?"undefined":p(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},xe=function(e,t,n){q[e]&&q[e].forEach(function(e){e.call(g,t,n,fe)})},Se=function(e){var t=void 0;if(xe("beforeSanitizeElements",e,null),Te(e))return ge(e),!0;var n=e.nodeName.toLowerCase();if(xe("uponSanitizeElement",e,{tagName:n,allowedTags:W}),!W[n]||V[n]){if(se&&!de[n]&&"function"==typeof e.insertAdjacentHTML)try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(e){}return ge(e),!0}return!J||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(g.removed.push({element:e.cloneNode()}),e.innerHTML=e.textContent.replace(/</g,"&lt;")),Q&&3===e.nodeType&&(t=(t=(t=e.textContent).replace(Z," ")).replace(ee," "),e.textContent!==t&&(g.removed.push({element:e.cloneNode()}),e.textContent=t)),xe("afterSanitizeElements",e,null),!1},ke=/^data-[\-\w.\u00B7-\uFFFF]/,Ee=/^aria-[\-\w]+$/,we=/^(?:(?:(?:f|ht)tps?|mailto|tel):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,Oe=/^(?:\w+script|data):/i,Me=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Ne=function(e){var t=void 0,n=void 0,o=void 0,r=void 0,i=void 0,a=void 0,l=void 0;if(xe("beforeSanitizeAttributes",e,null),a=e.attributes){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:G};for(l=a.length;l--;){if(t=a[l],n=t.name,o=t.value.trim(),r=n.toLowerCase(),s.attrName=r,s.attrValue=o,s.keepAttr=!0,xe("uponSanitizeAttribute",e,s),o=s.attrValue,"name"===r&&"IMG"===e.nodeName&&a.id)i=a.id,a=Array.prototype.slice.apply(a),ye("id",e),ye(n,e),a.indexOf(i)>l&&e.setAttribute("id",i.value);else{if("INPUT"===e.nodeName&&"type"===r&&"file"===o&&(G[r]||!X[r]))continue;"id"===n&&e.setAttribute(n,""),ye(n,e)}if(s.keepAttr&&(!le||"id"!==r&&"name"!==r||!(o in h||o in T||o in pe))){if(Q&&(o=(o=o.replace(Z," ")).replace(ee," ")),K&&ke.test(r));else if(Y&&Ee.test(r));else{if(!G[r]||X[r])continue;if(me[r]);else if(we.test(o.replace(Me,"")));else if("src"!==r&&"xlink:href"!==r||0!==o.indexOf("data:")||!ue[e.nodeName.toLowerCase()]){if($&&!Oe.test(o.replace(Me,"")));else if(o)continue}else;}try{e.setAttribute(n,o),g.removed.pop()}catch(e){}}}xe("afterSanitizeAttributes",e,null)}},Le=function e(t){var n=void 0,o=be(t);for(xe("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)xe("uponSanitizeShadowNode",n,null),Se(n)||(n.content instanceof A&&e(n.content),Ne(n));xe("afterSanitizeShadowDOM",t,null)};return g.sanitize=function(e,t){var n=void 0,o=void 0,r=void 0,i=void 0,a=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Ae(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");e=e.toString()}if(!g.isSupported){if("object"===p(h.toStaticHTML)||"function"==typeof h.toStaticHTML){if("string"==typeof e)return h.toStaticHTML(e);if(Ae(e))return h.toStaticHTML(e.outerHTML)}return e}if(ne||he(t),g.removed=[],e instanceof S)1===(o=(n=ve("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===o.nodeName?n=o:n.appendChild(o);else{if(!re&&!te&&-1===e.indexOf("<"))return e;if(!(n=ve(e)))return re?null:""}oe&&ge(n.firstChild);for(var l=be(n);r=l.nextNode();)3===r.nodeType&&r===i||Se(r)||(r.content instanceof A&&Le(r.content),Ne(r),i=r);if(re){if(ie)for(a=j.call(n.ownerDocument);n.firstChild;)a.appendChild(n.firstChild);else a=n;return ae&&(a=U.call(y,a,!0)),a}return te?n.outerHTML:n.innerHTML},g.setConfig=function(e){he(e),ne=!0},g.clearConfig=function(){fe=null,ne=!1},g.addHook=function(e,t){"function"==typeof t&&(q[e]=q[e]||[],q[e].push(t))},g.removeHook=function(e){q[e]&&q[e].pop()},g.removeHooks=function(e){q[e]&&(q[e]=[])},g.removeAllHooks=function(){q={}},g}var i=["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],a=["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"],l=["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence"],s=["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],c=["#text"],d=["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","span","srclang","start","src","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"],u=["accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"],m=["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"],f=["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"],p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};return r()});
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.DOMPurify=t()}(this,function(){"use strict";function e(e,t){for(var n=t.length;n--;)"string"==typeof t[n]&&(t[n]=t[n].toLowerCase()),e[t[n]]=!0;return e}function t(e){var t={},n=void 0;for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(){var x=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A(),S=function(e){return o(e)};if(S.version="1.0.4",S.removed=[],!x||!x.document||9!==x.document.nodeType)return S.isSupported=!1,S;var k=x.document,w=!1,E=!1,L=x.document,O=x.DocumentFragment,M=x.HTMLTemplateElement,N=x.Node,D=x.NodeFilter,_=x.NamedNodeMap,R=void 0===_?x.NamedNodeMap||x.MozNamedAttrMap:_,C=x.Text,F=x.Comment,z=x.DOMParser,H=x.XMLHttpRequest,I=void 0===H?x.XMLHttpRequest:H,j=x.encodeURI,U=void 0===j?x.encodeURI:j;if("function"==typeof M){var P=L.createElement("template");P.content&&P.content.ownerDocument&&(L=P.content.ownerDocument)}var W=L,q=W.implementation,G=W.createNodeIterator,B=W.getElementsByTagName,X=W.createDocumentFragment,V=k.importNode,Y={};S.isSupported=q&&void 0!==q.createHTMLDocument&&9!==L.documentMode;var K=p,$=f,J=h,Q=g,Z=v,ee=b,te=y,ne=null,oe=e({},[].concat(n(r),n(i),n(a),n(l),n(s))),re=null,ie=e({},[].concat(n(c),n(d),n(u),n(m))),ae=null,le=null,se=!0,ce=!0,de=!1,ue=!1,me=!1,pe=!1,fe=!1,he=!1,ge=!1,ye=!1,ve=!1,be=!0,Te=!0,Ae={},xe=e({},["audio","head","math","script","style","template","svg","video"]),Se=e({},["audio","video","img","source","image"]),ke=e({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),we=null,Ee=L.createElement("form"),Le=function(o){"object"!==(void 0===o?"undefined":T(o))&&(o={}),ne="ALLOWED_TAGS"in o?e({},o.ALLOWED_TAGS):oe,re="ALLOWED_ATTR"in o?e({},o.ALLOWED_ATTR):ie,ae="FORBID_TAGS"in o?e({},o.FORBID_TAGS):{},le="FORBID_ATTR"in o?e({},o.FORBID_ATTR):{},Ae="USE_PROFILES"in o&&o.USE_PROFILES,se=!1!==o.ALLOW_ARIA_ATTR,ce=!1!==o.ALLOW_DATA_ATTR,de=o.ALLOW_UNKNOWN_PROTOCOLS||!1,ue=o.SAFE_FOR_JQUERY||!1,me=o.SAFE_FOR_TEMPLATES||!1,pe=o.WHOLE_DOCUMENT||!1,ge=o.RETURN_DOM||!1,ye=o.RETURN_DOM_FRAGMENT||!1,ve=o.RETURN_DOM_IMPORT||!1,he=o.FORCE_BODY||!1,be=!1!==o.SANITIZE_DOM,Te=!1!==o.KEEP_CONTENT,te=o.ALLOWED_URI_REGEXP||te,me&&(ce=!1),ye&&(ge=!0),Ae&&(ne=e({},[].concat(n(s))),re=[],!0===Ae.html&&(e(ne,r),e(re,c)),!0===Ae.svg&&(e(ne,i),e(re,d),e(re,m)),!0===Ae.svgFilters&&(e(ne,a),e(re,d),e(re,m)),!0===Ae.mathMl&&(e(ne,l),e(re,u),e(re,m))),o.ADD_TAGS&&(ne===oe&&(ne=t(ne)),e(ne,o.ADD_TAGS)),o.ADD_ATTR&&(re===ie&&(re=t(re)),e(re,o.ADD_ATTR)),o.ADD_URI_SAFE_ATTR&&e(ke,o.ADD_URI_SAFE_ATTR),Te&&(ne["#text"]=!0),Object&&"freeze"in Object&&Object.freeze(o),we=o},Oe=function(e){S.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}},Me=function(e,t){try{S.removed.push({attribute:t.getAttributeNode(e),from:t})}catch(e){S.removed.push({attribute:null,from:t})}t.removeAttribute(e)},Ne=function(e){var t=void 0,n=void 0;if(he&&(e="<remove></remove>"+e),E){try{e=U(e)}catch(e){}var o=new I;o.responseType="document",o.open("GET","data:text/html;charset=utf-8,"+e,!1),o.send(null),t=o.response}if(w)try{t=(new z).parseFromString(e,"text/html")}catch(e){}return t&&t.documentElement||((n=(t=q.createHTMLDocument("")).body).parentNode.removeChild(n.parentNode.firstElementChild),n.outerHTML=e),B.call(t,pe?"html":"body")[0]};S.isSupported&&function(){var e=Ne('<svg><g onload="this.parentNode.remove()"></g></svg>');e.querySelector("svg")||(E=!0);try{(e=Ne('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">')).querySelector("svg img")&&(w=!0)}catch(e){}}();var De=function(e){return G.call(e.ownerDocument||e,e,D.SHOW_ELEMENT|D.SHOW_COMMENT|D.SHOW_TEXT,function(){return D.FILTER_ACCEPT},!1)},_e=function(e){return!(e instanceof C||e instanceof F)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof R&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute)},Re=function(e){return"object"===(void 0===N?"undefined":T(N))?e instanceof N:e&&"object"===(void 0===e?"undefined":T(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},Ce=function(e,t,n){Y[e]&&Y[e].forEach(function(e){e.call(S,t,n,we)})},Fe=function(e){var t=void 0;if(Ce("beforeSanitizeElements",e,null),_e(e))return Oe(e),!0;var n=e.nodeName.toLowerCase();if(Ce("uponSanitizeElement",e,{tagName:n,allowedTags:ne}),!ne[n]||ae[n]){if(Te&&!xe[n]&&"function"==typeof e.insertAdjacentHTML)try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(e){}return Oe(e),!0}return!ue||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(S.removed.push({element:e.cloneNode()}),e.innerHTML=e.textContent.replace(/</g,"&lt;")),me&&3===e.nodeType&&(t=(t=(t=e.textContent).replace(K," ")).replace($," "),e.textContent!==t&&(S.removed.push({element:e.cloneNode()}),e.textContent=t)),Ce("afterSanitizeElements",e,null),!1},ze=function(e){var t=void 0,n=void 0,o=void 0,r=void 0,i=void 0,a=void 0,l=void 0;if(Ce("beforeSanitizeAttributes",e,null),a=e.attributes){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:re};for(l=a.length;l--;){if(t=a[l],n=t.name,o=t.value.trim(),r=n.toLowerCase(),s.attrName=r,s.attrValue=o,s.keepAttr=!0,Ce("uponSanitizeAttribute",e,s),o=s.attrValue,"name"===r&&"IMG"===e.nodeName&&a.id)i=a.id,a=Array.prototype.slice.apply(a),Me("id",e),Me(n,e),a.indexOf(i)>l&&e.setAttribute("id",i.value);else{if("INPUT"===e.nodeName&&"type"===r&&"file"===o&&(re[r]||!le[r]))continue;"id"===n&&e.setAttribute(n,""),Me(n,e)}if(s.keepAttr&&(!be||"id"!==r&&"name"!==r||!(o in L||o in Ee))){if(me&&(o=(o=o.replace(K," ")).replace($," ")),ce&&J.test(r));else if(se&&Q.test(r));else{if(!re[r]||le[r])continue;if(ke[r]);else if(te.test(o.replace(ee,"")));else if("src"!==r&&"xlink:href"!==r||0!==o.indexOf("data:")||!Se[e.nodeName.toLowerCase()]){if(de&&!Z.test(o.replace(ee,"")));else if(o)continue}else;}try{e.setAttribute(n,o),S.removed.pop()}catch(e){}}}Ce("afterSanitizeAttributes",e,null)}},He=function e(t){var n=void 0,o=De(t);for(Ce("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)Ce("uponSanitizeShadowNode",n,null),Fe(n)||(n.content instanceof O&&e(n.content),ze(n));Ce("afterSanitizeShadowDOM",t,null)};return S.sanitize=function(e,t){var n=void 0,o=void 0,r=void 0,i=void 0,a=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Re(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");if("string"!=typeof(e=e.toString()))throw new TypeError("dirty is not a string, aborting")}if(!S.isSupported){if("object"===T(x.toStaticHTML)||"function"==typeof x.toStaticHTML){if("string"==typeof e)return x.toStaticHTML(e);if(Re(e))return x.toStaticHTML(e.outerHTML)}return e}if(fe||Le(t),S.removed=[],e instanceof N)1===(o=(n=Ne("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===o.nodeName?n=o:n.appendChild(o);else{if(!ge&&!pe&&-1===e.indexOf("<"))return e;if(!(n=Ne(e)))return ge?null:""}he&&Oe(n.firstChild);for(var l=De(n);r=l.nextNode();)3===r.nodeType&&r===i||Fe(r)||(r.content instanceof O&&He(r.content),ze(r),i=r);if(ge){if(ye)for(a=X.call(n.ownerDocument);n.firstChild;)a.appendChild(n.firstChild);else a=n;return ve&&(a=V.call(k,a,!0)),a}return pe?n.outerHTML:n.innerHTML},S.setConfig=function(e){Le(e),fe=!0},S.clearConfig=function(){we=null,fe=!1},S.addHook=function(e,t){"function"==typeof t&&(Y[e]=Y[e]||[],Y[e].push(t))},S.removeHook=function(e){Y[e]&&Y[e].pop()},S.removeHooks=function(e){Y[e]&&(Y[e]=[])},S.removeAllHooks=function(){Y={}},S}var r=["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],i=["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"],a=["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"],l=["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],s=["#text"],c=["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","crossorigin","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","integrity","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"],d=["accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"],u=["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"],m=["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"],p=/\{\{[\s\S]*|[\s\S]*\}\}/gm,f=/<%[\s\S]*|[\s\S]*%>/gm,h=/^data-[\-\w.\u00B7-\uFFFF]/,g=/^aria-[\-\w]+$/,y=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,v=/^(?:\w+script|data):/i,b=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,T="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A=function(){return"undefined"==typeof window?null:window};return o()});
/*! Snap.js v2.0.0-rc1 */
diff --git a/lib/base.php b/lib/base.php
index 5cfaccf59ab..57a620db0ec 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -891,6 +891,8 @@ class OC {
self::$loader->setMemoryCache($memcacheFactory->createLocal('Autoloader'));
} catch (\Exception $ex) {
}
+
+ self::$composerAutoloader->setApcuPrefix($instanceId . '-mainComposer');
}
}
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index bf223204e2b..ebf5197d4dd 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -23,6 +23,7 @@ return array(
'OCP\\AppFramework\\Db\\Entity' => $baseDir . '/lib/public/AppFramework/Db/Entity.php',
'OCP\\AppFramework\\Db\\Mapper' => $baseDir . '/lib/public/AppFramework/Db/Mapper.php',
'OCP\\AppFramework\\Db\\MultipleObjectsReturnedException' => $baseDir . '/lib/public/AppFramework/Db/MultipleObjectsReturnedException.php',
+ 'OCP\\AppFramework\\Db\\QBMapper' => $baseDir . '/lib/public/AppFramework/Db/QBMapper.php',
'OCP\\AppFramework\\Http' => $baseDir . '/lib/public/AppFramework/Http.php',
'OCP\\AppFramework\\Http\\ContentSecurityPolicy' => $baseDir . '/lib/public/AppFramework/Http/ContentSecurityPolicy.php',
'OCP\\AppFramework\\Http\\DataDisplayResponse' => $baseDir . '/lib/public/AppFramework/Http/DataDisplayResponse.php',
@@ -413,6 +414,7 @@ return array(
'OC\\Authentication\\Token\\DefaultTokenCleanupJob' => $baseDir . '/lib/private/Authentication/Token/DefaultTokenCleanupJob.php',
'OC\\Authentication\\Token\\DefaultTokenMapper' => $baseDir . '/lib/private/Authentication/Token/DefaultTokenMapper.php',
'OC\\Authentication\\Token\\DefaultTokenProvider' => $baseDir . '/lib/private/Authentication/Token/DefaultTokenProvider.php',
+ 'OC\\Authentication\\Token\\ExpiredTokenException' => $baseDir . '/lib/private/Authentication/Exceptions/ExpiredTokenException.php',
'OC\\Authentication\\Token\\IProvider' => $baseDir . '/lib/private/Authentication/Token/IProvider.php',
'OC\\Authentication\\Token\\IToken' => $baseDir . '/lib/private/Authentication/Token/IToken.php',
'OC\\Authentication\\TwoFactorAuth\\Manager' => $baseDir . '/lib/private/Authentication/TwoFactorAuth/Manager.php',
@@ -562,6 +564,7 @@ return array(
'OC\\Core\\Migrations\\Version13000Date20170926101637' => $baseDir . '/core/Migrations/Version13000Date20170926101637.php',
'OC\\Core\\Migrations\\Version14000Date20180129121024' => $baseDir . '/core/Migrations/Version14000Date20180129121024.php',
'OC\\Core\\Migrations\\Version14000Date20180404140050' => $baseDir . '/core/Migrations/Version14000Date20180404140050.php',
+ 'OC\\Core\\Migrations\\Version14000Date20180516101403' => $baseDir . '/core/Migrations/Version14000Date20180516101403.php',
'OC\\DB\\Adapter' => $baseDir . '/lib/private/DB/Adapter.php',
'OC\\DB\\AdapterMySQL' => $baseDir . '/lib/private/DB/AdapterMySQL.php',
'OC\\DB\\AdapterOCI8' => $baseDir . '/lib/private/DB/AdapterOCI8.php',
@@ -790,6 +793,7 @@ return array(
'OC\\PreviewManager' => $baseDir . '/lib/private/PreviewManager.php',
'OC\\PreviewNotAvailableException' => $baseDir . '/lib/private/PreviewNotAvailableException.php',
'OC\\Preview\\BMP' => $baseDir . '/lib/private/Preview/BMP.php',
+ 'OC\\Preview\\BackgroundCleanupJob' => $baseDir . '/lib/private/Preview/BackgroundCleanupJob.php',
'OC\\Preview\\Bitmap' => $baseDir . '/lib/private/Preview/Bitmap.php',
'OC\\Preview\\Font' => $baseDir . '/lib/private/Preview/Font.php',
'OC\\Preview\\GIF' => $baseDir . '/lib/private/Preview/GIF.php',
@@ -837,6 +841,7 @@ return array(
'OC\\Repair\\NC11\\FixMountStorages' => $baseDir . '/lib/private/Repair/NC11/FixMountStorages.php',
'OC\\Repair\\NC13\\AddLogRotateJob' => $baseDir . '/lib/private/Repair/NC13/AddLogRotateJob.php',
'OC\\Repair\\NC13\\RepairInvalidPaths' => $baseDir . '/lib/private/Repair/NC13/RepairInvalidPaths.php',
+ 'OC\\Repair\\NC14\\AddPreviewBackgroundCleanupJob' => $baseDir . '/lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php',
'OC\\Repair\\OldGroupMembershipShares' => $baseDir . '/lib/private/Repair/OldGroupMembershipShares.php',
'OC\\Repair\\Owncloud\\DropAccountTermsTable' => $baseDir . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php',
'OC\\Repair\\Owncloud\\SaveAccountsTableData' => $baseDir . '/lib/private/Repair/Owncloud/SaveAccountsTableData.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index cb723ef70ee..9a1dfebf52b 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -53,6 +53,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OCP\\AppFramework\\Db\\Entity' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Db/Entity.php',
'OCP\\AppFramework\\Db\\Mapper' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Db/Mapper.php',
'OCP\\AppFramework\\Db\\MultipleObjectsReturnedException' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Db/MultipleObjectsReturnedException.php',
+ 'OCP\\AppFramework\\Db\\QBMapper' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Db/QBMapper.php',
'OCP\\AppFramework\\Http' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http.php',
'OCP\\AppFramework\\Http\\ContentSecurityPolicy' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/ContentSecurityPolicy.php',
'OCP\\AppFramework\\Http\\DataDisplayResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/DataDisplayResponse.php',
@@ -443,6 +444,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OC\\Authentication\\Token\\DefaultTokenCleanupJob' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/DefaultTokenCleanupJob.php',
'OC\\Authentication\\Token\\DefaultTokenMapper' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/DefaultTokenMapper.php',
'OC\\Authentication\\Token\\DefaultTokenProvider' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/DefaultTokenProvider.php',
+ 'OC\\Authentication\\Token\\ExpiredTokenException' => __DIR__ . '/../../..' . '/lib/private/Authentication/Exceptions/ExpiredTokenException.php',
'OC\\Authentication\\Token\\IProvider' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/IProvider.php',
'OC\\Authentication\\Token\\IToken' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/IToken.php',
'OC\\Authentication\\TwoFactorAuth\\Manager' => __DIR__ . '/../../..' . '/lib/private/Authentication/TwoFactorAuth/Manager.php',
@@ -592,6 +594,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OC\\Core\\Migrations\\Version13000Date20170926101637' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170926101637.php',
'OC\\Core\\Migrations\\Version14000Date20180129121024' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180129121024.php',
'OC\\Core\\Migrations\\Version14000Date20180404140050' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180404140050.php',
+ 'OC\\Core\\Migrations\\Version14000Date20180516101403' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180516101403.php',
'OC\\DB\\Adapter' => __DIR__ . '/../../..' . '/lib/private/DB/Adapter.php',
'OC\\DB\\AdapterMySQL' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterMySQL.php',
'OC\\DB\\AdapterOCI8' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterOCI8.php',
@@ -820,6 +823,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OC\\PreviewManager' => __DIR__ . '/../../..' . '/lib/private/PreviewManager.php',
'OC\\PreviewNotAvailableException' => __DIR__ . '/../../..' . '/lib/private/PreviewNotAvailableException.php',
'OC\\Preview\\BMP' => __DIR__ . '/../../..' . '/lib/private/Preview/BMP.php',
+ 'OC\\Preview\\BackgroundCleanupJob' => __DIR__ . '/../../..' . '/lib/private/Preview/BackgroundCleanupJob.php',
'OC\\Preview\\Bitmap' => __DIR__ . '/../../..' . '/lib/private/Preview/Bitmap.php',
'OC\\Preview\\Font' => __DIR__ . '/../../..' . '/lib/private/Preview/Font.php',
'OC\\Preview\\GIF' => __DIR__ . '/../../..' . '/lib/private/Preview/GIF.php',
@@ -867,6 +871,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OC\\Repair\\NC11\\FixMountStorages' => __DIR__ . '/../../..' . '/lib/private/Repair/NC11/FixMountStorages.php',
'OC\\Repair\\NC13\\AddLogRotateJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC13/AddLogRotateJob.php',
'OC\\Repair\\NC13\\RepairInvalidPaths' => __DIR__ . '/../../..' . '/lib/private/Repair/NC13/RepairInvalidPaths.php',
+ 'OC\\Repair\\NC14\\AddPreviewBackgroundCleanupJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php',
'OC\\Repair\\OldGroupMembershipShares' => __DIR__ . '/../../..' . '/lib/private/Repair/OldGroupMembershipShares.php',
'OC\\Repair\\Owncloud\\DropAccountTermsTable' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php',
'OC\\Repair\\Owncloud\\SaveAccountsTableData' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/SaveAccountsTableData.php',
diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js
index e47de1f81a5..4989ac90342 100644
--- a/lib/l10n/ca.js
+++ b/lib/l10n/ca.js
@@ -42,7 +42,7 @@ OC.L10N.register(
"_in %n minute_::_in %n minutes_" : ["d'aquí %n minut","d'aquí %n minuts"],
"_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
"in a few seconds" : "en uns segons",
- "seconds ago" : "segons enrere",
+ "seconds ago" : "fa uns segons",
"File name is a reserved word" : "El nom de fitxer és una paraula reservada",
"File name contains at least one invalid character" : "El nom del fitxer conté al menys un caràcter invàlid",
"File name is too long" : "el nom del fitxer es massa gran",
@@ -50,7 +50,7 @@ OC.L10N.register(
"Empty filename is not allowed" : "Mo estan permesos noms buits",
"Help" : "Ajuda",
"Apps" : "Aplicacions",
- "Settings" : "Preferències",
+ "Settings" : "Configuració",
"Log out" : "Surt",
"Users" : "Usuaris",
"Unknown user" : "Usuari desconegut",
@@ -64,9 +64,10 @@ OC.L10N.register(
"Sharing" : "Compartir",
"Security" : "Seguretat",
"Encryption" : "Xifrat",
- "Additional settings" : "Configuració adicional",
+ "Additional settings" : "Configuració addicional",
"Tips & tricks" : "Consells i trucs",
"Personal info" : "Informació personal",
+ "Sync clients" : "Aplicacions per sincronitzar",
"Unlimited" : "Il·limitat",
"__language_name__" : "Català",
"Verifying" : "Verificant",
diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json
index 69efeef3988..0c2e047778b 100644
--- a/lib/l10n/ca.json
+++ b/lib/l10n/ca.json
@@ -40,7 +40,7 @@
"_in %n minute_::_in %n minutes_" : ["d'aquí %n minut","d'aquí %n minuts"],
"_%n minute ago_::_%n minutes ago_" : ["fa %n minut","fa %n minuts"],
"in a few seconds" : "en uns segons",
- "seconds ago" : "segons enrere",
+ "seconds ago" : "fa uns segons",
"File name is a reserved word" : "El nom de fitxer és una paraula reservada",
"File name contains at least one invalid character" : "El nom del fitxer conté al menys un caràcter invàlid",
"File name is too long" : "el nom del fitxer es massa gran",
@@ -48,7 +48,7 @@
"Empty filename is not allowed" : "Mo estan permesos noms buits",
"Help" : "Ajuda",
"Apps" : "Aplicacions",
- "Settings" : "Preferències",
+ "Settings" : "Configuració",
"Log out" : "Surt",
"Users" : "Usuaris",
"Unknown user" : "Usuari desconegut",
@@ -62,9 +62,10 @@
"Sharing" : "Compartir",
"Security" : "Seguretat",
"Encryption" : "Xifrat",
- "Additional settings" : "Configuració adicional",
+ "Additional settings" : "Configuració addicional",
"Tips & tricks" : "Consells i trucs",
"Personal info" : "Informació personal",
+ "Sync clients" : "Aplicacions per sincronitzar",
"Unlimited" : "Il·limitat",
"__language_name__" : "Català",
"Verifying" : "Verificant",
diff --git a/lib/l10n/cs.js b/lib/l10n/cs.js
index 575b12e59c8..00881a98396 100644
--- a/lib/l10n/cs.js
+++ b/lib/l10n/cs.js
@@ -33,20 +33,20 @@ OC.L10N.register(
"today" : "dnes",
"tomorrow" : "zítra",
"yesterday" : "včera",
- "_in %n day_::_in %n days_" : ["během %n dne","během %n dnů","během %n dnů"],
- "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
+ "_in %n day_::_in %n days_" : ["během %n dne","během %n dnů","během %n dnů","během %n dnů"],
+ "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny","před %n dny"],
"next month" : "následující měsíc",
"last month" : "minulý měsíc",
- "_in %n month_::_in %n months_" : ["během %n měsíce","během %n měsíců","během %n měsíců"],
- "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
+ "_in %n month_::_in %n months_" : ["během %n měsíce","během %n měsíců","během %n měsíců","během %n měsíců"],
+ "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci","před %n měsíci"],
"next year" : "následující rok",
"last year" : "minulý rok",
- "_in %n year_::_in %n years_" : ["během %n roku","během %n roků","během %n roků"],
- "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety"],
- "_in %n hour_::_in %n hours_" : ["během %n hodiny","během %n hodin","během %n hodin"],
- "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
- "_in %n minute_::_in %n minutes_" : ["během %n minuty","během %n minut","během %n minut"],
- "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
+ "_in %n year_::_in %n years_" : ["během %n roku","během %n roků","během %n roků","během %n roků"],
+ "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety","před %n lety"],
+ "_in %n hour_::_in %n hours_" : ["během %n hodiny","během %n hodin","během %n hodin","během %n hodin"],
+ "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami","před %n hodinami"],
+ "_in %n minute_::_in %n minutes_" : ["během %n minuty","během %n minut","během %n minut","během %n minut"],
+ "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami","před %n minutami"],
"in a few seconds" : "během několika sekund",
"seconds ago" : "před pár sekundami",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povolte ho v nastavení aplikací, nebo kontaktujte vašeho administrátora.",
@@ -233,4 +233,4 @@ OC.L10N.register(
"Storage is temporarily not available" : "Úložiště je dočasně nedostupné",
"Storage connection timeout. %s" : "Vypršení připojení k úložišti. %s"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/lib/l10n/cs.json b/lib/l10n/cs.json
index c5a613123f9..483cf2057dd 100644
--- a/lib/l10n/cs.json
+++ b/lib/l10n/cs.json
@@ -31,20 +31,20 @@
"today" : "dnes",
"tomorrow" : "zítra",
"yesterday" : "včera",
- "_in %n day_::_in %n days_" : ["během %n dne","během %n dnů","během %n dnů"],
- "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny"],
+ "_in %n day_::_in %n days_" : ["během %n dne","během %n dnů","během %n dnů","během %n dnů"],
+ "_%n day ago_::_%n days ago_" : ["včera","před %n dny","před %n dny","před %n dny"],
"next month" : "následující měsíc",
"last month" : "minulý měsíc",
- "_in %n month_::_in %n months_" : ["během %n měsíce","během %n měsíců","během %n měsíců"],
- "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci"],
+ "_in %n month_::_in %n months_" : ["během %n měsíce","během %n měsíců","během %n měsíců","během %n měsíců"],
+ "_%n month ago_::_%n months ago_" : ["před %n měsícem","před %n měsíci","před %n měsíci","před %n měsíci"],
"next year" : "následující rok",
"last year" : "minulý rok",
- "_in %n year_::_in %n years_" : ["během %n roku","během %n roků","během %n roků"],
- "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety"],
- "_in %n hour_::_in %n hours_" : ["během %n hodiny","během %n hodin","během %n hodin"],
- "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
- "_in %n minute_::_in %n minutes_" : ["během %n minuty","během %n minut","během %n minut"],
- "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
+ "_in %n year_::_in %n years_" : ["během %n roku","během %n roků","během %n roků","během %n roků"],
+ "_%n year ago_::_%n years ago_" : ["před rokem","před %n lety","před %n lety","před %n lety"],
+ "_in %n hour_::_in %n hours_" : ["během %n hodiny","během %n hodin","během %n hodin","během %n hodin"],
+ "_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami","před %n hodinami"],
+ "_in %n minute_::_in %n minutes_" : ["během %n minuty","během %n minut","během %n minut","během %n minut"],
+ "_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami","před %n minutami"],
"in a few seconds" : "během několika sekund",
"seconds ago" : "před pár sekundami",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povolte ho v nastavení aplikací, nebo kontaktujte vašeho administrátora.",
@@ -230,5 +230,5 @@
"Storage connection error. %s" : "Chyba připojení úložiště. %s",
"Storage is temporarily not available" : "Úložiště je dočasně nedostupné",
"Storage connection timeout. %s" : "Vypršení připojení k úložišti. %s"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
index cbf3493d563..fbe0ef70cc8 100644
--- a/lib/l10n/es.js
+++ b/lib/l10n/es.js
@@ -71,6 +71,7 @@ OC.L10N.register(
"Change" : "Cambiar",
"Delete" : "Eliminar",
"Share" : "Compartir",
+ "Overview" : "Vista general",
"Basic settings" : "Ajustes básicos",
"Sharing" : "Compartir",
"Security" : "Seguridad",
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
index 76dda7f2c7d..389afaf7e25 100644
--- a/lib/l10n/es.json
+++ b/lib/l10n/es.json
@@ -69,6 +69,7 @@
"Change" : "Cambiar",
"Delete" : "Eliminar",
"Share" : "Compartir",
+ "Overview" : "Vista general",
"Basic settings" : "Ajustes básicos",
"Sharing" : "Compartir",
"Security" : "Seguridad",
diff --git a/lib/l10n/es_GT.js b/lib/l10n/es_GT.js
index da138c865bb..34a97bd2ec6 100644
--- a/lib/l10n/es_GT.js
+++ b/lib/l10n/es_GT.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s",
"Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ",
"Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ",
+ "Logged in user must be an admin" : "El usuario firmado debe ser un administrador",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
"Avatar image is not square" : "La imagen del avatar no es un cuadrado",
@@ -61,11 +62,16 @@ OC.L10N.register(
"Help" : "Ayuda",
"Apps" : "Aplicaciones",
"Settings" : "Configuraciones",
- "Log out" : "Salir",
+ "Log out" : "Cerrar sesión",
"Users" : "Usuarios",
"Unknown user" : "Ususario desconocido",
"APCu" : "APCu",
"Redis" : "Redis",
+ "Create" : "Crear",
+ "Change" : "Cambiar",
+ "Delete" : "Borrar",
+ "Share" : "Compartir",
+ "Overview" : "Generalidades",
"Basic settings" : "Configuraciones básicas",
"Sharing" : "Compartiendo",
"Security" : "Seguridad",
@@ -75,7 +81,7 @@ OC.L10N.register(
"Personal info" : "Información personal",
"Sync clients" : "Sincronizar clientes",
"Unlimited" : "Ilimitado",
- "__language_name__" : "Español (Guatemala)",
+ "__language_name__" : "Español (México)",
"Verifying" : "Verficando",
"Verifying …" : "Verficando ...",
"Verify" : "Verificar",
@@ -227,6 +233,20 @@ OC.L10N.register(
"Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s",
"Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s",
"Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible",
- "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s"
+ "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s",
+ "Personal" : "Personal",
+ "Admin" : "Admin",
+ "DB Error: \"%s\"" : "DB Error: \"%s\"",
+ "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre:%s, contraseña:%s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos de %s, porque los permisos excenden los permisos otorgados a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Se presentó una falla al establecer los permisos de %s, porque no se encontró el elemento",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "No se puede limpíar la fecha de expiración. Se requiere que los elementos compartidos tengan una fecha de expiración.",
+ "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s",
+ "Files can't be shared with delete permissions" : "No se pueden compartir archivos con privilegios para borrar",
+ "Files can't be shared with create permissions" : "No se pueden compartir archivos con privilegios para crear",
+ "Cannot set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración más alla de %s días en el futuro",
+ "No app name specified" : "No se especificó el nombre de la aplicación",
+ "App '%s' could not be installed!" : "¡No se pudo instalar la aplciación '%s'!"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_GT.json b/lib/l10n/es_GT.json
index 943bd570d0f..9abc115a1b2 100644
--- a/lib/l10n/es_GT.json
+++ b/lib/l10n/es_GT.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s",
"Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ",
"Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ",
+ "Logged in user must be an admin" : "El usuario firmado debe ser un administrador",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
"Avatar image is not square" : "La imagen del avatar no es un cuadrado",
@@ -59,11 +60,16 @@
"Help" : "Ayuda",
"Apps" : "Aplicaciones",
"Settings" : "Configuraciones",
- "Log out" : "Salir",
+ "Log out" : "Cerrar sesión",
"Users" : "Usuarios",
"Unknown user" : "Ususario desconocido",
"APCu" : "APCu",
"Redis" : "Redis",
+ "Create" : "Crear",
+ "Change" : "Cambiar",
+ "Delete" : "Borrar",
+ "Share" : "Compartir",
+ "Overview" : "Generalidades",
"Basic settings" : "Configuraciones básicas",
"Sharing" : "Compartiendo",
"Security" : "Seguridad",
@@ -73,7 +79,7 @@
"Personal info" : "Información personal",
"Sync clients" : "Sincronizar clientes",
"Unlimited" : "Ilimitado",
- "__language_name__" : "Español (Guatemala)",
+ "__language_name__" : "Español (México)",
"Verifying" : "Verficando",
"Verifying …" : "Verficando ...",
"Verify" : "Verificar",
@@ -225,6 +231,20 @@
"Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s",
"Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s",
"Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible",
- "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s"
+ "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s",
+ "Personal" : "Personal",
+ "Admin" : "Admin",
+ "DB Error: \"%s\"" : "DB Error: \"%s\"",
+ "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre:%s, contraseña:%s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos de %s, porque los permisos excenden los permisos otorgados a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Se presentó una falla al establecer los permisos de %s, porque no se encontró el elemento",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "No se puede limpíar la fecha de expiración. Se requiere que los elementos compartidos tengan una fecha de expiración.",
+ "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s",
+ "Files can't be shared with delete permissions" : "No se pueden compartir archivos con privilegios para borrar",
+ "Files can't be shared with create permissions" : "No se pueden compartir archivos con privilegios para crear",
+ "Cannot set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración más alla de %s días en el futuro",
+ "No app name specified" : "No se especificó el nombre de la aplicación",
+ "App '%s' could not be installed!" : "¡No se pudo instalar la aplciación '%s'!"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/fa.js b/lib/l10n/fa.js
index d8c4fc2cbbe..285a7770814 100644
--- a/lib/l10n/fa.js
+++ b/lib/l10n/fa.js
@@ -14,13 +14,13 @@ OC.L10N.register(
"Invalid image" : "عکس نامعتبر",
"today" : "امروز",
"yesterday" : "دیروز",
- "_%n day ago_::_%n days ago_" : ["%n روز پیش"],
+ "_%n day ago_::_%n days ago_" : ["%n روز پیش","%n روز پیش"],
"last month" : "ماه قبل",
- "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
+ "_%n month ago_::_%n months ago_" : ["%n ماه قبل","%n ماه قبل"],
"last year" : "سال قبل",
- "_%n year ago_::_%n years ago_" : ["%n سال پیش"],
- "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
- "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
+ "_%n year ago_::_%n years ago_" : ["%n سال پیش","%n سال پیش"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل","%n ساعت قبل"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل","%n دقیقه قبل"],
"seconds ago" : "ثانیه‌ها پیش",
"File name is a reserved word" : "این نام فایل جزو کلمات رزرو می‌باشد",
"File name contains at least one invalid character" : "نام فایل دارای حداقل یک کاراکتر نامعتبر است",
@@ -55,4 +55,4 @@ OC.L10N.register(
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است",
"Please upgrade your database version" : "لطفا نسخه‌ی پایگاه‌داده‌ی خود را بروز کنید"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/lib/l10n/fa.json b/lib/l10n/fa.json
index 946e4f2fd42..3e2852de303 100644
--- a/lib/l10n/fa.json
+++ b/lib/l10n/fa.json
@@ -12,13 +12,13 @@
"Invalid image" : "عکس نامعتبر",
"today" : "امروز",
"yesterday" : "دیروز",
- "_%n day ago_::_%n days ago_" : ["%n روز پیش"],
+ "_%n day ago_::_%n days ago_" : ["%n روز پیش","%n روز پیش"],
"last month" : "ماه قبل",
- "_%n month ago_::_%n months ago_" : ["%n ماه قبل"],
+ "_%n month ago_::_%n months ago_" : ["%n ماه قبل","%n ماه قبل"],
"last year" : "سال قبل",
- "_%n year ago_::_%n years ago_" : ["%n سال پیش"],
- "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل"],
- "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل"],
+ "_%n year ago_::_%n years ago_" : ["%n سال پیش","%n سال پیش"],
+ "_%n hour ago_::_%n hours ago_" : ["%n ساعت قبل","%n ساعت قبل"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n دقیقه قبل","%n دقیقه قبل"],
"seconds ago" : "ثانیه‌ها پیش",
"File name is a reserved word" : "این نام فایل جزو کلمات رزرو می‌باشد",
"File name contains at least one invalid character" : "نام فایل دارای حداقل یک کاراکتر نامعتبر است",
@@ -52,5 +52,5 @@
"PHP module %s not installed." : "ماژول PHP %s نصب نشده است.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است",
"Please upgrade your database version" : "لطفا نسخه‌ی پایگاه‌داده‌ی خود را بروز کنید"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index 099779265ee..d0240f880d7 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -71,6 +71,7 @@ OC.L10N.register(
"Change" : "Modifier",
"Delete" : "Supprimer",
"Share" : "Partager",
+ "Overview" : "Vue d'ensemble",
"Basic settings" : "Paramètres de base",
"Sharing" : "Partage",
"Security" : "Sécurité",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 77896b495b6..19e8c1e3863 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -69,6 +69,7 @@
"Change" : "Modifier",
"Delete" : "Supprimer",
"Share" : "Partager",
+ "Overview" : "Vue d'ensemble",
"Basic settings" : "Paramètres de base",
"Sharing" : "Partage",
"Security" : "Sécurité",
diff --git a/lib/l10n/he.js b/lib/l10n/he.js
index dc5b4a5ce38..940d61fe29b 100644
--- a/lib/l10n/he.js
+++ b/lib/l10n/he.js
@@ -19,10 +19,10 @@ OC.L10N.register(
"Invalid image" : "תמונה לא חוקית",
"today" : "היום",
"yesterday" : "אתמול",
- "_%n day ago_::_%n days ago_" : ["לפני %n יום","לפני %n ימים"],
+ "_%n day ago_::_%n days ago_" : ["לפני %n יום","לפני %n ימים","לפני %n ימים"],
"last month" : "חודש שעבר",
"last year" : "שנה שעברה",
- "_%n year ago_::_%n years ago_" : ["לפני %n שנה","לפני %n שנים"],
+ "_%n year ago_::_%n years ago_" : ["לפני %n שנה","לפני %n שנים","לפני %n שנים"],
"seconds ago" : "שניות",
"File name is a reserved word" : "שם קובץ הנו מילה שמורה",
"File name contains at least one invalid character" : "שם קובץ כולל לפחות תו אחד לא חוקי",
@@ -168,4 +168,4 @@ OC.L10N.register(
"Storage connection error. %s" : "שגיאת חיבור אחסון. %s",
"Storage connection timeout. %s" : "פסק זמן חיבור אחסון. %s"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/lib/l10n/he.json b/lib/l10n/he.json
index 38218b4ecc7..2dcd0166beb 100644
--- a/lib/l10n/he.json
+++ b/lib/l10n/he.json
@@ -17,10 +17,10 @@
"Invalid image" : "תמונה לא חוקית",
"today" : "היום",
"yesterday" : "אתמול",
- "_%n day ago_::_%n days ago_" : ["לפני %n יום","לפני %n ימים"],
+ "_%n day ago_::_%n days ago_" : ["לפני %n יום","לפני %n ימים","לפני %n ימים"],
"last month" : "חודש שעבר",
"last year" : "שנה שעברה",
- "_%n year ago_::_%n years ago_" : ["לפני %n שנה","לפני %n שנים"],
+ "_%n year ago_::_%n years ago_" : ["לפני %n שנה","לפני %n שנים","לפני %n שנים"],
"seconds ago" : "שניות",
"File name is a reserved word" : "שם קובץ הנו מילה שמורה",
"File name contains at least one invalid character" : "שם קובץ כולל לפחות תו אחד לא חוקי",
@@ -165,5 +165,5 @@
"Storage incomplete configuration. %s" : "תצורה לא מושלמת של האחסון. %s",
"Storage connection error. %s" : "שגיאת חיבור אחסון. %s",
"Storage connection timeout. %s" : "פסק זמן חיבור אחסון. %s"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js
index 09a95e318c1..90ca5fbb729 100644
--- a/lib/l10n/ja.js
+++ b/lib/l10n/ja.js
@@ -13,6 +13,9 @@ OC.L10N.register(
"%1$s, %2$s, %3$s and %4$s" : "%1$s と %2$s、%3$s、%4$s",
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s と %2$s、%3$s、%4$s、%5$s",
"Education Edition" : "Education Edition",
+ "Enterprise bundle" : "エンタープライズ バンドル",
+ "Groupware bundle" : "グループウェア バンドル",
+ "Social sharing bundle" : "SNS バンドル",
"PHP %s or higher is required." : "PHP %s 以上が必要です。",
"PHP with a version lower than %s is required." : "%s 以前のバージョンのPHPが必要です。",
"%sbit or higher PHP required." : "%sbit 以上の新しいバージョンのPHPが必要です。",
@@ -24,18 +27,28 @@ OC.L10N.register(
"Following platforms are supported: %s" : "次のプラットフォームをサポートしています: %s",
"Server version %s or higher is required." : "サーバーの %s よりも高いバージョンが必要です。",
"Server version %s or lower is required." : "サーバーの %s よりも低いバージョンが必要です。",
+ "Logged in user must be an admin" : "ログインユーザーは管理者である必要があります",
"Unknown filetype" : "不明なファイルタイプ",
"Invalid image" : "無効な画像",
"Avatar image is not square" : "アバター画像が正方形ではありません",
"today" : "今日",
- "yesterday" : "1日前",
+ "tomorrow" : "明日",
+ "yesterday" : "昨日",
+ "_in %n day_::_in %n days_" : ["%n 日"],
"_%n day ago_::_%n days ago_" : ["%n 日前"],
- "last month" : "1ヶ月前",
- "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
- "last year" : "1年前",
+ "next month" : "来月",
+ "last month" : "先月",
+ "_in %n month_::_in %n months_" : ["%n ヶ月"],
+ "_%n month ago_::_%n months ago_" : ["%n ヶ月前"],
+ "next year" : "来年",
+ "last year" : "去年",
+ "_in %n year_::_in %n years_" : ["%n 年"],
"_%n year ago_::_%n years ago_" : ["%n 年前"],
+ "_in %n hour_::_in %n hours_" : ["%n 時間"],
"_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
+ "_in %n minute_::_in %n minutes_" : ["%n 分"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
+ "in a few seconds" : "数秒",
"seconds ago" : "数秒前",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %sのモジュールは存在しません。アプリ設定で有効にするか、管理者に問い合わせてください。",
"File name is a reserved word" : "ファイル名が予約された単語です",
@@ -54,6 +67,11 @@ OC.L10N.register(
"Unknown user" : "不明なユーザー",
"APCu" : "APCu",
"Redis" : "Redis",
+ "Create" : "作成",
+ "Change" : "変更",
+ "Delete" : "削除",
+ "Share" : "共有",
+ "Overview" : "概要",
"Basic settings" : "基本設定",
"Sharing" : "共有",
"Security" : "セキュリティ",
@@ -88,7 +106,7 @@ OC.L10N.register(
"You are not allowed to share %s" : "%s を共有することを許可されていません。",
"Sharing %s failed, because you can not share with yourself" : "%s を共有できませんでした。自分自身に共有することはできません。",
"Sharing %s failed, because the user %s does not exist" : "%s を共有できませんでした。ユーザー %s が存在しません。",
- "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s を共有できませんでした。ユーザー %s はどのグループにも属していません。%s は、??のメンバーです。",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s を共有できませんでした。ユーザー %s はどのグループにも属していません。%s は、次のグループのメンバーです",
"Sharing %s failed, because this item is already shared with %s" : "%s を共有できませんでした。このアイテムはすでに %s に共有されています。",
"Sharing %s failed, because this item is already shared with user %s" : "%s を共有できませんでした。このアイテムは、ユーザー %s によりすでに共有されています。",
"Sharing %s failed, because the group %s does not exist" : "%s を共有できませんでした。グループ %s は存在しません。",
@@ -215,6 +233,20 @@ OC.L10N.register(
"Storage incomplete configuration. %s" : "設定が未完了のストレージです。 %s",
"Storage connection error. %s" : "ストレージへの接続エラー。 %s",
"Storage is temporarily not available" : "ストレージは一時的に利用できません",
- "Storage connection timeout. %s" : "ストレージへの接続がタイムアウト。 %s"
+ "Storage connection timeout. %s" : "ストレージへの接続がタイムアウト。 %s",
+ "Personal" : "パーソナル",
+ "Admin" : "管理者",
+ "DB Error: \"%s\"" : "DBエラー: \"%s\"",
+ "Offending command was: \"%s\"" : "問題のあるコマンド: \"%s\"",
+ "Offending command was: \"%s\", name: %s, password: %s" : "問題のあるコマンド: \"%s\", name: %s, password: %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%sのアクセス権を設定できません。%sの権限不足です ",
+ "Setting permissions for %s failed, because the item was not found" : "%sのアクセス権を設定できません。指定されたアイテムがありません ",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "有効期限は削除できません。共有には有効期限が必要です。",
+ "Cannot increase permissions of %s" : "%sの権限を付与できません ",
+ "Files can't be shared with delete permissions" : "削除権限付きでファイル共有はできません",
+ "Files can't be shared with create permissions" : "作成権限付きでファイル共有はできません",
+ "Cannot set expiration date more than %s days in the future" : "%s 日以上先の有効期限は設定できません ",
+ "No app name specified" : "アプリ名が指定されていません",
+ "App '%s' could not be installed!" : "アプリ名 %s はインストールできませんでした"
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json
index e6067d7ca21..fe3c28368fc 100644
--- a/lib/l10n/ja.json
+++ b/lib/l10n/ja.json
@@ -11,6 +11,9 @@
"%1$s, %2$s, %3$s and %4$s" : "%1$s と %2$s、%3$s、%4$s",
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s と %2$s、%3$s、%4$s、%5$s",
"Education Edition" : "Education Edition",
+ "Enterprise bundle" : "エンタープライズ バンドル",
+ "Groupware bundle" : "グループウェア バンドル",
+ "Social sharing bundle" : "SNS バンドル",
"PHP %s or higher is required." : "PHP %s 以上が必要です。",
"PHP with a version lower than %s is required." : "%s 以前のバージョンのPHPが必要です。",
"%sbit or higher PHP required." : "%sbit 以上の新しいバージョンのPHPが必要です。",
@@ -22,18 +25,28 @@
"Following platforms are supported: %s" : "次のプラットフォームをサポートしています: %s",
"Server version %s or higher is required." : "サーバーの %s よりも高いバージョンが必要です。",
"Server version %s or lower is required." : "サーバーの %s よりも低いバージョンが必要です。",
+ "Logged in user must be an admin" : "ログインユーザーは管理者である必要があります",
"Unknown filetype" : "不明なファイルタイプ",
"Invalid image" : "無効な画像",
"Avatar image is not square" : "アバター画像が正方形ではありません",
"today" : "今日",
- "yesterday" : "1日前",
+ "tomorrow" : "明日",
+ "yesterday" : "昨日",
+ "_in %n day_::_in %n days_" : ["%n 日"],
"_%n day ago_::_%n days ago_" : ["%n 日前"],
- "last month" : "1ヶ月前",
- "_%n month ago_::_%n months ago_" : ["%nヶ月前"],
- "last year" : "1年前",
+ "next month" : "来月",
+ "last month" : "先月",
+ "_in %n month_::_in %n months_" : ["%n ヶ月"],
+ "_%n month ago_::_%n months ago_" : ["%n ヶ月前"],
+ "next year" : "来年",
+ "last year" : "去年",
+ "_in %n year_::_in %n years_" : ["%n 年"],
"_%n year ago_::_%n years ago_" : ["%n 年前"],
+ "_in %n hour_::_in %n hours_" : ["%n 時間"],
"_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
+ "_in %n minute_::_in %n minutes_" : ["%n 分"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
+ "in a few seconds" : "数秒",
"seconds ago" : "数秒前",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %sのモジュールは存在しません。アプリ設定で有効にするか、管理者に問い合わせてください。",
"File name is a reserved word" : "ファイル名が予約された単語です",
@@ -52,6 +65,11 @@
"Unknown user" : "不明なユーザー",
"APCu" : "APCu",
"Redis" : "Redis",
+ "Create" : "作成",
+ "Change" : "変更",
+ "Delete" : "削除",
+ "Share" : "共有",
+ "Overview" : "概要",
"Basic settings" : "基本設定",
"Sharing" : "共有",
"Security" : "セキュリティ",
@@ -86,7 +104,7 @@
"You are not allowed to share %s" : "%s を共有することを許可されていません。",
"Sharing %s failed, because you can not share with yourself" : "%s を共有できませんでした。自分自身に共有することはできません。",
"Sharing %s failed, because the user %s does not exist" : "%s を共有できませんでした。ユーザー %s が存在しません。",
- "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s を共有できませんでした。ユーザー %s はどのグループにも属していません。%s は、??のメンバーです。",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s を共有できませんでした。ユーザー %s はどのグループにも属していません。%s は、次のグループのメンバーです",
"Sharing %s failed, because this item is already shared with %s" : "%s を共有できませんでした。このアイテムはすでに %s に共有されています。",
"Sharing %s failed, because this item is already shared with user %s" : "%s を共有できませんでした。このアイテムは、ユーザー %s によりすでに共有されています。",
"Sharing %s failed, because the group %s does not exist" : "%s を共有できませんでした。グループ %s は存在しません。",
@@ -213,6 +231,20 @@
"Storage incomplete configuration. %s" : "設定が未完了のストレージです。 %s",
"Storage connection error. %s" : "ストレージへの接続エラー。 %s",
"Storage is temporarily not available" : "ストレージは一時的に利用できません",
- "Storage connection timeout. %s" : "ストレージへの接続がタイムアウト。 %s"
+ "Storage connection timeout. %s" : "ストレージへの接続がタイムアウト。 %s",
+ "Personal" : "パーソナル",
+ "Admin" : "管理者",
+ "DB Error: \"%s\"" : "DBエラー: \"%s\"",
+ "Offending command was: \"%s\"" : "問題のあるコマンド: \"%s\"",
+ "Offending command was: \"%s\", name: %s, password: %s" : "問題のあるコマンド: \"%s\", name: %s, password: %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%sのアクセス権を設定できません。%sの権限不足です ",
+ "Setting permissions for %s failed, because the item was not found" : "%sのアクセス権を設定できません。指定されたアイテムがありません ",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "有効期限は削除できません。共有には有効期限が必要です。",
+ "Cannot increase permissions of %s" : "%sの権限を付与できません ",
+ "Files can't be shared with delete permissions" : "削除権限付きでファイル共有はできません",
+ "Files can't be shared with create permissions" : "作成権限付きでファイル共有はできません",
+ "Cannot set expiration date more than %s days in the future" : "%s 日以上先の有効期限は設定できません ",
+ "No app name specified" : "アプリ名が指定されていません",
+ "App '%s' could not be installed!" : "アプリ名 %s はインストールできませんでした"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/l10n/ka_GE.js b/lib/l10n/ka_GE.js
index 4bf2a9506b0..831a65fcad3 100644
--- a/lib/l10n/ka_GE.js
+++ b/lib/l10n/ka_GE.js
@@ -34,20 +34,20 @@ OC.L10N.register(
"today" : "დღეს",
"tomorrow" : "ხვალ",
"yesterday" : "გუშინ",
- "_in %n day_::_in %n days_" : ["%n დღეში"],
- "_%n day ago_::_%n days ago_" : ["%n დღის წინ"],
+ "_in %n day_::_in %n days_" : ["%n დღეში","%n დღეში"],
+ "_%n day ago_::_%n days ago_" : ["%n დღის წინ","%n დღის წინ"],
"next month" : "შემდეგი თვე",
"last month" : "გასულ თვეში",
- "_in %n month_::_in %n months_" : ["%n თვეში"],
- "_%n month ago_::_%n months ago_" : ["%n თვის წინ"],
+ "_in %n month_::_in %n months_" : ["%n თვეში","%n თვეში"],
+ "_%n month ago_::_%n months ago_" : ["%n თვის წინ","%n თვის წინ"],
"next year" : "შემდეგი წელი",
"last year" : "გასულ წელს",
- "_in %n year_::_in %n years_" : ["%n წელიწადში"],
- "_%n year ago_::_%n years ago_" : ["%n წლის წინ"],
- "_in %n hour_::_in %n hours_" : ["%n საათში"],
- "_%n hour ago_::_%n hours ago_" : ["%n საათის წინ"],
- "_in %n minute_::_in %n minutes_" : ["%n წუთში"],
- "_%n minute ago_::_%n minutes ago_" : ["%n წუთის წინ"],
+ "_in %n year_::_in %n years_" : ["%n წელიწადში","%n წელიწადში"],
+ "_%n year ago_::_%n years ago_" : ["%n წლის წინ","%n წლის წინ"],
+ "_in %n hour_::_in %n hours_" : ["%n საათში","%n საათში"],
+ "_%n hour ago_::_%n hours ago_" : ["%n საათის წინ","%n საათის წინ"],
+ "_in %n minute_::_in %n minutes_" : ["%n წუთში","%n წუთში"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n წუთის წინ","%n წუთის წინ"],
"in a few seconds" : "რამდენიმე წამში",
"seconds ago" : "წამის წინ",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "მოდული ID-ით: %s არ არსებობს. გთხოვთ აამოქმედოთ ის აპლიკაციების პარამეტრებში ან დაუკავშირდეთ ადმინისტრატორს.",
@@ -248,4 +248,4 @@ OC.L10N.register(
"No app name specified" : "აპლიკაციის სახელი არაა მოცემული",
"App '%s' could not be installed!" : "აპლიკაცია '%s' ვერ ყენდება!"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/lib/l10n/ka_GE.json b/lib/l10n/ka_GE.json
index 81ba596f141..63a8f63d50d 100644
--- a/lib/l10n/ka_GE.json
+++ b/lib/l10n/ka_GE.json
@@ -32,20 +32,20 @@
"today" : "დღეს",
"tomorrow" : "ხვალ",
"yesterday" : "გუშინ",
- "_in %n day_::_in %n days_" : ["%n დღეში"],
- "_%n day ago_::_%n days ago_" : ["%n დღის წინ"],
+ "_in %n day_::_in %n days_" : ["%n დღეში","%n დღეში"],
+ "_%n day ago_::_%n days ago_" : ["%n დღის წინ","%n დღის წინ"],
"next month" : "შემდეგი თვე",
"last month" : "გასულ თვეში",
- "_in %n month_::_in %n months_" : ["%n თვეში"],
- "_%n month ago_::_%n months ago_" : ["%n თვის წინ"],
+ "_in %n month_::_in %n months_" : ["%n თვეში","%n თვეში"],
+ "_%n month ago_::_%n months ago_" : ["%n თვის წინ","%n თვის წინ"],
"next year" : "შემდეგი წელი",
"last year" : "გასულ წელს",
- "_in %n year_::_in %n years_" : ["%n წელიწადში"],
- "_%n year ago_::_%n years ago_" : ["%n წლის წინ"],
- "_in %n hour_::_in %n hours_" : ["%n საათში"],
- "_%n hour ago_::_%n hours ago_" : ["%n საათის წინ"],
- "_in %n minute_::_in %n minutes_" : ["%n წუთში"],
- "_%n minute ago_::_%n minutes ago_" : ["%n წუთის წინ"],
+ "_in %n year_::_in %n years_" : ["%n წელიწადში","%n წელიწადში"],
+ "_%n year ago_::_%n years ago_" : ["%n წლის წინ","%n წლის წინ"],
+ "_in %n hour_::_in %n hours_" : ["%n საათში","%n საათში"],
+ "_%n hour ago_::_%n hours ago_" : ["%n საათის წინ","%n საათის წინ"],
+ "_in %n minute_::_in %n minutes_" : ["%n წუთში","%n წუთში"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n წუთის წინ","%n წუთის წინ"],
"in a few seconds" : "რამდენიმე წამში",
"seconds ago" : "წამის წინ",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "მოდული ID-ით: %s არ არსებობს. გთხოვთ აამოქმედოთ ის აპლიკაციების პარამეტრებში ან დაუკავშირდეთ ადმინისტრატორს.",
@@ -245,5 +245,5 @@
"Cannot set expiration date more than %s days in the future" : "ვადის ამოწურვის თარიღი %s დღეზე მეტი მომავალში ვერ იქნება",
"No app name specified" : "აპლიკაციის სახელი არაა მოცემული",
"App '%s' could not be installed!" : "აპლიკაცია '%s' ვერ ყენდება!"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/lib/l10n/kn.js b/lib/l10n/kn.js
index e8332f6cfde..4e5d8f1358a 100644
--- a/lib/l10n/kn.js
+++ b/lib/l10n/kn.js
@@ -10,4 +10,4 @@ OC.L10N.register(
"A valid password must be provided" : "ಸರಿಯಾದ ಬಳಕೆದಾರ ಗುಪ್ತಪದ ಒದಗಿಸಬೇಕಾಗಿದೆ",
"Authentication error" : "ದೃಢೀಕರಣ ದೋಷ"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/lib/l10n/kn.json b/lib/l10n/kn.json
index bf547fdd363..c095baba5a9 100644
--- a/lib/l10n/kn.json
+++ b/lib/l10n/kn.json
@@ -7,5 +7,5 @@
"A valid username must be provided" : "ಮಾನ್ಯ ಬಳಕೆದಾರ ಹೆಸರು ಒದಗಿಸಬೇಕಾಗುತ್ತದೆ",
"A valid password must be provided" : "ಸರಿಯಾದ ಬಳಕೆದಾರ ಗುಪ್ತಪದ ಒದಗಿಸಬೇಕಾಗಿದೆ",
"Authentication error" : "ದೃಢೀಕರಣ ದೋಷ"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/lib/l10n/lt_LT.js b/lib/l10n/lt_LT.js
index 0faa87ebcd0..353e1b50d32 100644
--- a/lib/l10n/lt_LT.js
+++ b/lib/l10n/lt_LT.js
@@ -27,13 +27,13 @@ OC.L10N.register(
"today" : "šiandien",
"tomorrow" : "rytoj",
"yesterday" : "vakar",
- "_%n day ago_::_%n days ago_" : ["prieš %n dieną","prieš %n dienas","prieš %n dienų"],
+ "_%n day ago_::_%n days ago_" : ["prieš %n dieną","prieš %n dienas","prieš %n dienų","prieš %n dienų"],
"last month" : "praeitą mėnesį",
- "_%n month ago_::_%n months ago_" : ["prieš %n mėnesį","prieš %n mėnesius","prieš %n mėnesių"],
+ "_%n month ago_::_%n months ago_" : ["prieš %n mėnesį","prieš %n mėnesius","prieš %n mėnesių","prieš %n mėnesių"],
"last year" : "praeitais metais",
- "_%n year ago_::_%n years ago_" : ["prieš %n metus","prieš %n metus","prieš %n metų"],
- "_%n hour ago_::_%n hours ago_" : ["prieš %n valandą","prieš %n valandas","prieš %n valandų"],
- "_%n minute ago_::_%n minutes ago_" : ["prieš %n minutę","prieš % minutes","prieš %n minučių"],
+ "_%n year ago_::_%n years ago_" : ["prieš %n metus","prieš %n metus","prieš %n metų","prieš %n metų"],
+ "_%n hour ago_::_%n hours ago_" : ["prieš %n valandą","prieš %n valandas","prieš %n valandų","prieš %n valandų"],
+ "_%n minute ago_::_%n minutes ago_" : ["prieš %n minutę","prieš % minutes","prieš %n minučių","prieš %n minučių"],
"seconds ago" : "prieš keletą sekundžių",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modulio, kurio id: %s, nėra. Prašome jį įjungti savo programėlių nustatymuose arba susisiekti su savo administratoriumi.",
"File name is a reserved word" : "Failo pavadinimas negalimas, žodis rezervuotas",
@@ -209,4 +209,4 @@ OC.L10N.register(
"No app name specified" : "Nenurodytas programėlės pavadinimas",
"App '%s' could not be installed!" : "Nepavyko įdiegti \"%s\" programėlės!"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/lib/l10n/lt_LT.json b/lib/l10n/lt_LT.json
index 85e5fbef41f..6932fe3d849 100644
--- a/lib/l10n/lt_LT.json
+++ b/lib/l10n/lt_LT.json
@@ -25,13 +25,13 @@
"today" : "šiandien",
"tomorrow" : "rytoj",
"yesterday" : "vakar",
- "_%n day ago_::_%n days ago_" : ["prieš %n dieną","prieš %n dienas","prieš %n dienų"],
+ "_%n day ago_::_%n days ago_" : ["prieš %n dieną","prieš %n dienas","prieš %n dienų","prieš %n dienų"],
"last month" : "praeitą mėnesį",
- "_%n month ago_::_%n months ago_" : ["prieš %n mėnesį","prieš %n mėnesius","prieš %n mėnesių"],
+ "_%n month ago_::_%n months ago_" : ["prieš %n mėnesį","prieš %n mėnesius","prieš %n mėnesių","prieš %n mėnesių"],
"last year" : "praeitais metais",
- "_%n year ago_::_%n years ago_" : ["prieš %n metus","prieš %n metus","prieš %n metų"],
- "_%n hour ago_::_%n hours ago_" : ["prieš %n valandą","prieš %n valandas","prieš %n valandų"],
- "_%n minute ago_::_%n minutes ago_" : ["prieš %n minutę","prieš % minutes","prieš %n minučių"],
+ "_%n year ago_::_%n years ago_" : ["prieš %n metus","prieš %n metus","prieš %n metų","prieš %n metų"],
+ "_%n hour ago_::_%n hours ago_" : ["prieš %n valandą","prieš %n valandas","prieš %n valandų","prieš %n valandų"],
+ "_%n minute ago_::_%n minutes ago_" : ["prieš %n minutę","prieš % minutes","prieš %n minučių","prieš %n minučių"],
"seconds ago" : "prieš keletą sekundžių",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modulio, kurio id: %s, nėra. Prašome jį įjungti savo programėlių nustatymuose arba susisiekti su savo administratoriumi.",
"File name is a reserved word" : "Failo pavadinimas negalimas, žodis rezervuotas",
@@ -206,5 +206,5 @@
"Files can't be shared with create permissions" : "Failai negali būti bendrinami su sukūrimo leidimais",
"No app name specified" : "Nenurodytas programėlės pavadinimas",
"App '%s' could not be installed!" : "Nepavyko įdiegti \"%s\" programėlės!"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js
index 447da2bbe24..7d2438c869d 100644
--- a/lib/l10n/ru.js
+++ b/lib/l10n/ru.js
@@ -71,6 +71,7 @@ OC.L10N.register(
"Change" : "Изменить",
"Delete" : "Удалить",
"Share" : "Поделиться",
+ "Overview" : "Обзор",
"Basic settings" : "Основные настройки",
"Sharing" : "Общий доступ",
"Security" : "Безопасность",
@@ -118,8 +119,8 @@ OC.L10N.register(
"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Невозможно установить дату истечения. Общие ресурсы не могут устареть позже %s с момента их публикации.",
"Cannot set expiration date. Expiration date is in the past" : "Невозможно установить дату окончания. Дата окончания в прошлом.",
"Sharing backend %s must implement the interface OCP\\Share_Backend" : "Бэкенд общего доступа %s должен реализовывать интерфейс OCP\\Share_Backend",
- "Sharing backend %s not found" : "Бэкенд общего доступа %s не найден",
- "Sharing backend for %s not found" : "Бэкенд общего доступа для %s не найден",
+ "Sharing backend %s not found" : "Механизм предоставления общего доступа %s не найден",
+ "Sharing backend for %s not found" : "Не найден механизм предоставления общего доступа для %s ",
"Sharing failed, because the user %s is the original sharer" : "Не удалось поделиться, потому что пользователь %s владелец этого элемента",
"Sharing %s failed, because the permissions exceed permissions granted to %s" : "Не удалось поделиться %s, права превышают предоставленные права доступа %s",
"Sharing %s failed, because resharing is not allowed" : "Не удалось поделиться %s, повторное открытие доступа запрещено",
@@ -130,10 +131,10 @@ OC.L10N.register(
"Files can’t be shared with create permissions" : "Файлы не могут иметь общий доступ с правами на создание",
"Expiration date is in the past" : "Дата окончания срока действия уже прошла",
"Can’t set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней",
- "%s shared »%s« with you" : "%s поделился »%s« с вами",
- "%s shared »%s« with you." : "%s поделился »%s« с вами.",
- "Click the button below to open it." : "Для открытия нажмите на кнопку ниже.",
- "Open »%s«" : "Открыть »%s«",
+ "%s shared »%s« with you" : "%s предоставил(а) Вам доступ к «%s»",
+ "%s shared »%s« with you." : "%s предоставил(а) Вам доступ к «%s».",
+ "Click the button below to open it." : "Нажмите расположенную ниже кнопку для перехода к полученному общему ресурсу.",
+ "Open »%s«" : "Открыть «%s»",
"%s via %s" : "%s через %s",
"The requested share does not exist anymore" : "Запрошенный общий ресурс более не существует.",
"Could not find category \"%s\"" : "Категория «%s» не найдена",
@@ -207,10 +208,10 @@ OC.L10N.register(
"Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Разрешения обычно можно исправить, предоставив веб-серверу право на запись в корневой каталог. Смотрите %s.",
"Setting locale to %s failed" : "Установка локали %s не удалась",
"Please install one of these locales on your system and restart your webserver." : "Установите один из этих языковых пакетов на вашу систему и перезапустите веб-сервер.",
- "Please ask your server administrator to install the module." : "Пожалуйста, попростите администратора сервера установить модуль.",
+ "Please ask your server administrator to install the module." : "Попросите администратора сервера установить этот модуль.",
"PHP module %s not installed." : "Не установлен PHP-модуль %s.",
"PHP setting \"%s\" is not set to \"%s\"." : "Параметру PHP «%s» не присвоено значение «%s».",
- "Adjusting this setting in php.ini will make Nextcloud run again" : "Настройка этого параметра в php.ini поможет Nextcloud работать снова",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "Настройка этого параметра в файле php.ini восстановит работоспособность Nextcloud",
"mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload установлен в «%s», при этом требуется «0»",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Чтобы исправить эту проблему установите параметр <code>mbstring.func_overload</code> в значение <code>0</code> в php.ini",
"libxml2 2.7.0 is at least required. Currently %s is installed." : "Требуется как минимум libxml2 версии 2.7.0. На данный момент установлена %s.",
@@ -224,7 +225,7 @@ OC.L10N.register(
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Измените права доступа на 0770, чтобы другие пользователи не могли получить список файлов этого каталога.",
"Your data directory is readable by other users" : "Каталог данных доступен для чтения другим пользователям",
"Your data directory must be an absolute path" : "Каталог данных должен быть указан в виде абсолютного пути",
- "Check the value of \"datadirectory\" in your configuration" : "Проверьте значение «datadirectory» в настройках.",
+ "Check the value of \"datadirectory\" in your configuration" : "Проверьте в значение параметра «datadirectory» в файле конфигурации.",
"Your data directory is invalid" : "Каталог данных не верен",
"Ensure there is a file called \".ocdata\" in the root of the data directory." : "Убедитесь, что в корне каталога данных присутствует файл «.ocdata».",
"Could not obtain lock type %d on \"%s\"." : "Не удалось получить блокировку типа %d для «%s»",
@@ -239,7 +240,7 @@ OC.L10N.register(
"Offending command was: \"%s\"" : "Нарушившая команда была: \"%s\"",
"Offending command was: \"%s\", name: %s, password: %s" : "Нарушившая команда была: \"%s\", имя: %s, пароль: %s",
"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Не удалось настроить права доступа для %s, указанные права доступа превышают предоставленные для %s",
- "Setting permissions for %s failed, because the item was not found" : "Не удалось настроить права доступа для %s, элемент не найден.",
+ "Setting permissions for %s failed, because the item was not found" : "Не удалось настроить права доступа для «%s», объект не найден.",
"Cannot clear expiration date. Shares are required to have an expiration date." : "Невозможно очистить дату истечения срока действия. Общие ресурсы должны иметь срок действия.",
"Cannot increase permissions of %s" : "Невозможно повысить права доступа %s",
"Files can't be shared with delete permissions" : "Права на удаление файлов не позволяют открывать общий доступ к ним",
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
index fe7d126ef10..fde4afaca48 100644
--- a/lib/l10n/ru.json
+++ b/lib/l10n/ru.json
@@ -69,6 +69,7 @@
"Change" : "Изменить",
"Delete" : "Удалить",
"Share" : "Поделиться",
+ "Overview" : "Обзор",
"Basic settings" : "Основные настройки",
"Sharing" : "Общий доступ",
"Security" : "Безопасность",
@@ -116,8 +117,8 @@
"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Невозможно установить дату истечения. Общие ресурсы не могут устареть позже %s с момента их публикации.",
"Cannot set expiration date. Expiration date is in the past" : "Невозможно установить дату окончания. Дата окончания в прошлом.",
"Sharing backend %s must implement the interface OCP\\Share_Backend" : "Бэкенд общего доступа %s должен реализовывать интерфейс OCP\\Share_Backend",
- "Sharing backend %s not found" : "Бэкенд общего доступа %s не найден",
- "Sharing backend for %s not found" : "Бэкенд общего доступа для %s не найден",
+ "Sharing backend %s not found" : "Механизм предоставления общего доступа %s не найден",
+ "Sharing backend for %s not found" : "Не найден механизм предоставления общего доступа для %s ",
"Sharing failed, because the user %s is the original sharer" : "Не удалось поделиться, потому что пользователь %s владелец этого элемента",
"Sharing %s failed, because the permissions exceed permissions granted to %s" : "Не удалось поделиться %s, права превышают предоставленные права доступа %s",
"Sharing %s failed, because resharing is not allowed" : "Не удалось поделиться %s, повторное открытие доступа запрещено",
@@ -128,10 +129,10 @@
"Files can’t be shared with create permissions" : "Файлы не могут иметь общий доступ с правами на создание",
"Expiration date is in the past" : "Дата окончания срока действия уже прошла",
"Can’t set expiration date more than %s days in the future" : "Невозможно установить дату окончания срока действия более %s дней",
- "%s shared »%s« with you" : "%s поделился »%s« с вами",
- "%s shared »%s« with you." : "%s поделился »%s« с вами.",
- "Click the button below to open it." : "Для открытия нажмите на кнопку ниже.",
- "Open »%s«" : "Открыть »%s«",
+ "%s shared »%s« with you" : "%s предоставил(а) Вам доступ к «%s»",
+ "%s shared »%s« with you." : "%s предоставил(а) Вам доступ к «%s».",
+ "Click the button below to open it." : "Нажмите расположенную ниже кнопку для перехода к полученному общему ресурсу.",
+ "Open »%s«" : "Открыть «%s»",
"%s via %s" : "%s через %s",
"The requested share does not exist anymore" : "Запрошенный общий ресурс более не существует.",
"Could not find category \"%s\"" : "Категория «%s» не найдена",
@@ -205,10 +206,10 @@
"Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Разрешения обычно можно исправить, предоставив веб-серверу право на запись в корневой каталог. Смотрите %s.",
"Setting locale to %s failed" : "Установка локали %s не удалась",
"Please install one of these locales on your system and restart your webserver." : "Установите один из этих языковых пакетов на вашу систему и перезапустите веб-сервер.",
- "Please ask your server administrator to install the module." : "Пожалуйста, попростите администратора сервера установить модуль.",
+ "Please ask your server administrator to install the module." : "Попросите администратора сервера установить этот модуль.",
"PHP module %s not installed." : "Не установлен PHP-модуль %s.",
"PHP setting \"%s\" is not set to \"%s\"." : "Параметру PHP «%s» не присвоено значение «%s».",
- "Adjusting this setting in php.ini will make Nextcloud run again" : "Настройка этого параметра в php.ini поможет Nextcloud работать снова",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "Настройка этого параметра в файле php.ini восстановит работоспособность Nextcloud",
"mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload установлен в «%s», при этом требуется «0»",
"To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Чтобы исправить эту проблему установите параметр <code>mbstring.func_overload</code> в значение <code>0</code> в php.ini",
"libxml2 2.7.0 is at least required. Currently %s is installed." : "Требуется как минимум libxml2 версии 2.7.0. На данный момент установлена %s.",
@@ -222,7 +223,7 @@
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Измените права доступа на 0770, чтобы другие пользователи не могли получить список файлов этого каталога.",
"Your data directory is readable by other users" : "Каталог данных доступен для чтения другим пользователям",
"Your data directory must be an absolute path" : "Каталог данных должен быть указан в виде абсолютного пути",
- "Check the value of \"datadirectory\" in your configuration" : "Проверьте значение «datadirectory» в настройках.",
+ "Check the value of \"datadirectory\" in your configuration" : "Проверьте в значение параметра «datadirectory» в файле конфигурации.",
"Your data directory is invalid" : "Каталог данных не верен",
"Ensure there is a file called \".ocdata\" in the root of the data directory." : "Убедитесь, что в корне каталога данных присутствует файл «.ocdata».",
"Could not obtain lock type %d on \"%s\"." : "Не удалось получить блокировку типа %d для «%s»",
@@ -237,7 +238,7 @@
"Offending command was: \"%s\"" : "Нарушившая команда была: \"%s\"",
"Offending command was: \"%s\", name: %s, password: %s" : "Нарушившая команда была: \"%s\", имя: %s, пароль: %s",
"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Не удалось настроить права доступа для %s, указанные права доступа превышают предоставленные для %s",
- "Setting permissions for %s failed, because the item was not found" : "Не удалось настроить права доступа для %s, элемент не найден.",
+ "Setting permissions for %s failed, because the item was not found" : "Не удалось настроить права доступа для «%s», объект не найден.",
"Cannot clear expiration date. Shares are required to have an expiration date." : "Невозможно очистить дату истечения срока действия. Общие ресурсы должны иметь срок действия.",
"Cannot increase permissions of %s" : "Невозможно повысить права доступа %s",
"Files can't be shared with delete permissions" : "Права на удаление файлов не позволяют открывать общий доступ к ним",
diff --git a/lib/l10n/sk.js b/lib/l10n/sk.js
index 5b5f93ce175..0651380a19b 100644
--- a/lib/l10n/sk.js
+++ b/lib/l10n/sk.js
@@ -33,20 +33,20 @@ OC.L10N.register(
"today" : "dnes",
"tomorrow" : "zajtra",
"yesterday" : "včera",
- "_in %n day_::_in %n days_" : ["o %n deň","o %n dni","o %n dní"],
- "_%n day ago_::_%n days ago_" : ["včera","pred %n dňami","pred %n dňami"],
+ "_in %n day_::_in %n days_" : ["o %n deň","o %n dni","o %n dní","o %n dní"],
+ "_%n day ago_::_%n days ago_" : ["včera","pred %n dňami","pred %n dňami","pred %n dňami"],
"next month" : "budúci mesiac",
"last month" : "minulý mesiac",
- "_in %n month_::_in %n months_" : ["o %n mesiac ","o %n mesiace","o %n mesiacov"],
- "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
+ "_in %n month_::_in %n months_" : ["o %n mesiac ","o %n mesiace","o %n mesiacov","o %n mesiacov"],
+ "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi","pred %n mesiacmi"],
"next year" : "budúci rok",
"last year" : "minulý rok",
- "_in %n year_::_in %n years_" : ["o %n rok","o %n roky","o %n rokov"],
- "_%n year ago_::_%n years ago_" : ["vlani","pred %n rokmi","pred %n rokmi"],
- "_in %n hour_::_in %n hours_" : ["o %n hodinu","o %n hodiny","o %n hodín"],
- "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
- "_in %n minute_::_in %n minutes_" : ["o %n minútu","o %n minúty","o %n minút"],
- "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
+ "_in %n year_::_in %n years_" : ["o %n rok","o %n roky","o %n rokov","o %n rokov"],
+ "_%n year ago_::_%n years ago_" : ["vlani","pred %n rokmi","pred %n rokmi","pred %n rokmi"],
+ "_in %n hour_::_in %n hours_" : ["o %n hodinu","o %n hodiny","o %n hodín","o %n hodín"],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami","pred %n hodinami"],
+ "_in %n minute_::_in %n minutes_" : ["o %n minútu","o %n minúty","o %n minút","o %n minút"],
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami","pred %n minútami"],
"in a few seconds" : "o pár sekúnd",
"seconds ago" : "pred sekundami",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo kontaktujte správcu.",
@@ -234,4 +234,4 @@ OC.L10N.register(
"Personal" : "Osobné",
"App '%s' could not be installed!" : "Aplikáciu '%s' nebolo možné nainštalovať!"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/lib/l10n/sk.json b/lib/l10n/sk.json
index 107c44a73c3..713a5106b65 100644
--- a/lib/l10n/sk.json
+++ b/lib/l10n/sk.json
@@ -31,20 +31,20 @@
"today" : "dnes",
"tomorrow" : "zajtra",
"yesterday" : "včera",
- "_in %n day_::_in %n days_" : ["o %n deň","o %n dni","o %n dní"],
- "_%n day ago_::_%n days ago_" : ["včera","pred %n dňami","pred %n dňami"],
+ "_in %n day_::_in %n days_" : ["o %n deň","o %n dni","o %n dní","o %n dní"],
+ "_%n day ago_::_%n days ago_" : ["včera","pred %n dňami","pred %n dňami","pred %n dňami"],
"next month" : "budúci mesiac",
"last month" : "minulý mesiac",
- "_in %n month_::_in %n months_" : ["o %n mesiac ","o %n mesiace","o %n mesiacov"],
- "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi"],
+ "_in %n month_::_in %n months_" : ["o %n mesiac ","o %n mesiace","o %n mesiacov","o %n mesiacov"],
+ "_%n month ago_::_%n months ago_" : ["pred %n mesiacom","pred %n mesiacmi","pred %n mesiacmi","pred %n mesiacmi"],
"next year" : "budúci rok",
"last year" : "minulý rok",
- "_in %n year_::_in %n years_" : ["o %n rok","o %n roky","o %n rokov"],
- "_%n year ago_::_%n years ago_" : ["vlani","pred %n rokmi","pred %n rokmi"],
- "_in %n hour_::_in %n hours_" : ["o %n hodinu","o %n hodiny","o %n hodín"],
- "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami"],
- "_in %n minute_::_in %n minutes_" : ["o %n minútu","o %n minúty","o %n minút"],
- "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami"],
+ "_in %n year_::_in %n years_" : ["o %n rok","o %n roky","o %n rokov","o %n rokov"],
+ "_%n year ago_::_%n years ago_" : ["vlani","pred %n rokmi","pred %n rokmi","pred %n rokmi"],
+ "_in %n hour_::_in %n hours_" : ["o %n hodinu","o %n hodiny","o %n hodín","o %n hodín"],
+ "_%n hour ago_::_%n hours ago_" : ["pred %n hodinou","pred %n hodinami","pred %n hodinami","pred %n hodinami"],
+ "_in %n minute_::_in %n minutes_" : ["o %n minútu","o %n minúty","o %n minút","o %n minút"],
+ "_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami","pred %n minútami"],
"in a few seconds" : "o pár sekúnd",
"seconds ago" : "pred sekundami",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo kontaktujte správcu.",
@@ -231,5 +231,5 @@
"Storage connection timeout. %s" : "Vypršanie pripojenia k úložisku. %s",
"Personal" : "Osobné",
"App '%s' could not be installed!" : "Aplikáciu '%s' nebolo možné nainštalovať!"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js
index 58621a77766..949da3caf4b 100644
--- a/lib/l10n/sr.js
+++ b/lib/l10n/sr.js
@@ -71,6 +71,7 @@ OC.L10N.register(
"Change" : "Измени",
"Delete" : "Обриши",
"Share" : "Подели",
+ "Overview" : "Преглед",
"Basic settings" : "Основне поставке",
"Sharing" : "Дељење",
"Security" : "Безбедност",
diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json
index fe2ea97952c..4d3b406f9c5 100644
--- a/lib/l10n/sr.json
+++ b/lib/l10n/sr.json
@@ -69,6 +69,7 @@
"Change" : "Измени",
"Delete" : "Обриши",
"Share" : "Подели",
+ "Overview" : "Преглед",
"Basic settings" : "Основне поставке",
"Sharing" : "Дељење",
"Security" : "Безбедност",
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
index 56cefdc56c8..194b90f828a 100644
--- a/lib/l10n/tr.js
+++ b/lib/l10n/tr.js
@@ -71,6 +71,7 @@ OC.L10N.register(
"Change" : "Düzenle",
"Delete" : "Sil",
"Share" : "Paylaş",
+ "Overview" : "Özet",
"Basic settings" : "Temel Ayarlar",
"Sharing" : "Paylaşım",
"Security" : "Güvenlik",
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
index ee06b2c9a1d..d487ddda6a5 100644
--- a/lib/l10n/tr.json
+++ b/lib/l10n/tr.json
@@ -69,6 +69,7 @@
"Change" : "Düzenle",
"Delete" : "Sil",
"Share" : "Paylaş",
+ "Overview" : "Özet",
"Basic settings" : "Temel Ayarlar",
"Sharing" : "Paylaşım",
"Security" : "Güvenlik",
diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js
index d5f0982e1db..e07da8b738f 100644
--- a/lib/l10n/uk.js
+++ b/lib/l10n/uk.js
@@ -18,10 +18,10 @@ OC.L10N.register(
"Invalid image" : "Невірне зображення",
"today" : "сьогодні",
"yesterday" : "вчора",
- "_%n day ago_::_%n days ago_" : ["%n день тому","%n днів тому","%n днів тому"],
+ "_%n day ago_::_%n days ago_" : ["%n день тому","%n днів тому","%n днів тому","%n днів тому"],
"last month" : "минулого місяця",
"last year" : "минулого року",
- "_%n year ago_::_%n years ago_" : ["%n рік тому","%n років тому","%n років тому"],
+ "_%n year ago_::_%n years ago_" : ["%n рік тому","%n років тому","%n років тому","%n років тому"],
"seconds ago" : "секунди тому",
"File name is a reserved word" : "Ім’я файлу є зарезервованим словом",
"File name contains at least one invalid character" : "Ім’я файлу містить принаймні один некоректний символ",
@@ -115,4 +115,4 @@ OC.L10N.register(
"Storage connection error. %s" : "Помилка з'єднання зі сховищем. %s",
"Storage connection timeout. %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);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json
index bd4735da5f3..0f1c68c1855 100644
--- a/lib/l10n/uk.json
+++ b/lib/l10n/uk.json
@@ -16,10 +16,10 @@
"Invalid image" : "Невірне зображення",
"today" : "сьогодні",
"yesterday" : "вчора",
- "_%n day ago_::_%n days ago_" : ["%n день тому","%n днів тому","%n днів тому"],
+ "_%n day ago_::_%n days ago_" : ["%n день тому","%n днів тому","%n днів тому","%n днів тому"],
"last month" : "минулого місяця",
"last year" : "минулого року",
- "_%n year ago_::_%n years ago_" : ["%n рік тому","%n років тому","%n років тому"],
+ "_%n year ago_::_%n years ago_" : ["%n рік тому","%n років тому","%n років тому","%n років тому"],
"seconds ago" : "секунди тому",
"File name is a reserved word" : "Ім’я файлу є зарезервованим словом",
"File name contains at least one invalid character" : "Ім’я файлу містить принаймні один некоректний символ",
@@ -112,5 +112,5 @@
"Storage incomplete configuration. %s" : "Неповна конфігурація сховища. %s",
"Storage connection error. %s" : "Помилка з'єднання зі сховищем. %s",
"Storage connection timeout. %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);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/lib/private/AppFramework/OCS/BaseResponse.php b/lib/private/AppFramework/OCS/BaseResponse.php
index 59b8660a382..b27784cfcf2 100644
--- a/lib/private/AppFramework/OCS/BaseResponse.php
+++ b/lib/private/AppFramework/OCS/BaseResponse.php
@@ -22,6 +22,7 @@
*/
namespace OC\AppFramework\OCS;
+use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\EmptyContentSecurityPolicy;
use OCP\AppFramework\Http\Response;
@@ -85,9 +86,60 @@ abstract class BaseResponse extends Response {
* @param string[] $meta
* @return string
*/
- protected function renderResult($meta) {
- // TODO rewrite functions
- return \OC_API::renderResult($this->format, $meta, $this->data);
+ protected function renderResult(array $meta): string {
+ $status = $this->getStatus();
+ if ($status === Http::STATUS_NO_CONTENT ||
+ $status === Http::STATUS_NOT_MODIFIED ||
+ ($status >= 100 && $status <= 199)) {
+ // Those status codes are not supposed to have a body:
+ // https://stackoverflow.com/q/8628725
+ return '';
+ }
+
+ $response = [
+ 'ocs' => [
+ 'meta' => $meta,
+ 'data' => $this->data,
+ ],
+ ];
+
+ if ($this->format === 'json') {
+ return json_encode($response, JSON_HEX_TAG);
+ }
+
+ $writer = new \XMLWriter();
+ $writer->openMemory();
+ $writer->setIndent(true);
+ $writer->startDocument();
+ $this->toXML($response, $writer);
+ $writer->endDocument();
+ return $writer->outputMemory(true);
+
+ }
+
+ /**
+ * @param array $array
+ * @param \XMLWriter $writer
+ */
+ protected function toXML(array $array, \XMLWriter $writer) {
+ foreach ($array as $k => $v) {
+ if ($k[0] === '@') {
+ $writer->writeAttribute(substr($k, 1), $v);
+ continue;
+ }
+
+ if (\is_numeric($k)) {
+ $k = 'element';
+ }
+
+ if (\is_array($v)) {
+ $writer->startElement($k);
+ $this->toXML($v, $writer);
+ $writer->endElement();
+ } else {
+ $writer->writeElement($k, $v);
+ }
+ }
}
public function getOCSStatus() {
diff --git a/lib/private/Authentication/Exceptions/ExpiredTokenException.php b/lib/private/Authentication/Exceptions/ExpiredTokenException.php
new file mode 100644
index 00000000000..a45ca5b6955
--- /dev/null
+++ b/lib/private/Authentication/Exceptions/ExpiredTokenException.php
@@ -0,0 +1,41 @@
+<?php
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+namespace OC\Authentication\Token;
+
+use OC\Authentication\Exceptions\InvalidTokenException;
+
+class ExpiredTokenException extends InvalidTokenException {
+ /** @var IToken */
+ private $token;
+
+ public function __construct(IToken $token) {
+ parent::__construct();
+
+ $this->token = $token;
+ }
+
+ public function getToken(): IToken {
+ return $this->token;
+ }
+}
diff --git a/lib/private/Authentication/Token/DefaultToken.php b/lib/private/Authentication/Token/DefaultToken.php
index e06803d0bfc..67aa89ea66b 100644
--- a/lib/private/Authentication/Token/DefaultToken.php
+++ b/lib/private/Authentication/Token/DefaultToken.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -28,82 +29,69 @@ use OCP\AppFramework\Db\Entity;
/**
* @method void setId(int $id)
* @method void setUid(string $uid);
- * @method void setLoginName(string $loginName)
- * @method void setPassword(string $password)
+ * @method void setLoginName(string $loginname)
* @method void setName(string $name)
- * @method string getName()
- * @method void setToken(string $token)
* @method string getToken()
- * @method void setType(string $type)
+ * @method void setType(int $type)
* @method int getType()
* @method void setRemember(int $remember)
- * @method int getRemember()
- * @method void setLastActivity(int $lastActivity)
+ * @method void setLastActivity(int $lastactivity)
* @method int getLastActivity()
*/
class DefaultToken extends Entity implements IToken {
- /**
- * @var string user UID
- */
+ /** @var string user UID */
protected $uid;
- /**
- * @var string login name used for generating the token
- */
+ /** @var string login name used for generating the token */
protected $loginName;
- /**
- * @var string encrypted user password
- */
+ /** @var string encrypted user password */
protected $password;
- /**
- * @var string token name (e.g. browser/OS)
- */
+ /** @var string token name (e.g. browser/OS) */
protected $name;
- /**
- * @var string
- */
+ /** @var string */
protected $token;
- /**
- * @var int
- */
+ /** @var int */
protected $type;
- /**
- * @var int
- */
+ /** @var int */
protected $remember;
- /**
- * @var int
- */
+ /** @var int */
protected $lastActivity;
- /**
- * @var int
- */
+ /** @var int */
protected $lastCheck;
- /**
- * @var string
- */
+ /** @var string */
protected $scope;
+ /** @var int */
+ protected $expires;
+
public function __construct() {
+ $this->addType('uid', 'string');
+ $this->addType('loginName', 'string');
+ $this->addType('password', 'string');
+ $this->addType('name', 'string');
+ $this->addType('token', 'string');
$this->addType('type', 'int');
+ $this->addType('remember', 'int');
$this->addType('lastActivity', 'int');
$this->addType('lastCheck', 'int');
+ $this->addType('scope', 'string');
+ $this->addType('expires', 'int');
}
- public function getId() {
+ public function getId(): int {
return $this->id;
}
- public function getUID() {
+ public function getUID(): string {
return $this->uid;
}
@@ -112,14 +100,14 @@ class DefaultToken extends Entity implements IToken {
*
* @return string
*/
- public function getLoginName() {
+ public function getLoginName(): string {
return parent::getLoginName();
}
/**
* Get the (encrypted) login password
*
- * @return string
+ * @return string|null
*/
public function getPassword() {
return parent::getPassword();
@@ -140,7 +128,7 @@ class DefaultToken extends Entity implements IToken {
*
* @return int
*/
- public function getLastCheck() {
+ public function getLastCheck(): int {
return parent::getLastCheck();
}
@@ -149,15 +137,20 @@ class DefaultToken extends Entity implements IToken {
*
* @param int $time
*/
- public function setLastCheck($time) {
- return parent::setLastCheck($time);
+ public function setLastCheck(int $time) {
+ parent::setLastCheck($time);
}
- public function getScope() {
- return parent::getScope();
+ public function getScope(): string {
+ $scope = parent::getScope();
+ if ($scope === null) {
+ return '';
+ }
+
+ return $scope;
}
- public function getScopeAsArray() {
+ public function getScopeAsArray(): array {
$scope = json_decode($this->getScope(), true);
if (!$scope) {
return [
@@ -168,10 +161,37 @@ class DefaultToken extends Entity implements IToken {
}
public function setScope($scope) {
- if (is_array($scope)) {
+ if (\is_array($scope)) {
parent::setScope(json_encode($scope));
} else {
parent::setScope((string)$scope);
}
}
+
+ public function getName(): string {
+ return parent::getName();
+ }
+
+ public function getRemember(): int {
+ return parent::getRemember();
+ }
+
+ public function setToken(string $token) {
+ parent::setToken($token);
+ }
+
+ public function setPassword(string $password = null) {
+ parent::setPassword($password);
+ }
+
+ public function setExpires($expires) {
+ parent::setExpires($expires);
+ }
+
+ /**
+ * @return int|null
+ */
+ public function getExpires() {
+ return parent::getExpires();
+ }
}
diff --git a/lib/private/Authentication/Token/DefaultTokenMapper.php b/lib/private/Authentication/Token/DefaultTokenMapper.php
index 41d1b9f203d..a67d7d151e9 100644
--- a/lib/private/Authentication/Token/DefaultTokenMapper.php
+++ b/lib/private/Authentication/Token/DefaultTokenMapper.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -29,12 +30,12 @@
namespace OC\Authentication\Token;
use OCP\AppFramework\Db\DoesNotExistException;
-use OCP\AppFramework\Db\Mapper;
+use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IUser;
-class DefaultTokenMapper extends Mapper {
+class DefaultTokenMapper extends QBMapper {
public function __construct(IDBConnection $db) {
parent::__construct($db, 'authtoken');
@@ -45,7 +46,7 @@ class DefaultTokenMapper extends Mapper {
*
* @param string $token
*/
- public function invalidate($token) {
+ public function invalidate(string $token) {
/* @var $qb IQueryBuilder */
$qb = $this->db->getQueryBuilder();
$qb->delete('authtoken')
@@ -58,7 +59,7 @@ class DefaultTokenMapper extends Mapper {
* @param int $olderThan
* @param int $remember
*/
- public function invalidateOld($olderThan, $remember = IToken::DO_NOT_REMEMBER) {
+ public function invalidateOld(int $olderThan, int $remember = IToken::DO_NOT_REMEMBER) {
/* @var $qb IQueryBuilder */
$qb = $this->db->getQueryBuilder();
$qb->delete('authtoken')
@@ -75,10 +76,10 @@ class DefaultTokenMapper extends Mapper {
* @throws DoesNotExistException
* @return DefaultToken
*/
- public function getToken($token) {
+ public function getToken(string $token): DefaultToken {
/* @var $qb IQueryBuilder */
$qb = $this->db->getQueryBuilder();
- $result = $qb->select('id', 'uid', 'login_name', 'password', 'name', 'type', 'remember', 'token', 'last_activity', 'last_check', 'scope')
+ $result = $qb->select('*')
->from('authtoken')
->where($qb->expr()->eq('token', $qb->createNamedParameter($token)))
->execute();
@@ -94,14 +95,14 @@ class DefaultTokenMapper extends Mapper {
/**
* Get the token for $id
*
- * @param string $id
+ * @param int $id
* @throws DoesNotExistException
* @return DefaultToken
*/
- public function getTokenById($id) {
+ public function getTokenById(int $id): DefaultToken {
/* @var $qb IQueryBuilder */
$qb = $this->db->getQueryBuilder();
- $result = $qb->select('id', 'uid', 'login_name', 'password', 'name', 'type', 'token', 'last_activity', 'last_check', 'scope')
+ $result = $qb->select('*')
->from('authtoken')
->where($qb->expr()->eq('id', $qb->createNamedParameter($id)))
->execute();
@@ -123,10 +124,10 @@ class DefaultTokenMapper extends Mapper {
* @param IUser $user
* @return DefaultToken[]
*/
- public function getTokenByUser(IUser $user) {
+ public function getTokenByUser(IUser $user): array {
/* @var $qb IQueryBuilder */
$qb = $this->db->getQueryBuilder();
- $qb->select('id', 'uid', 'login_name', 'password', 'name', 'type', 'remember', 'token', 'last_activity', 'last_check', 'scope')
+ $qb->select('*')
->from('authtoken')
->where($qb->expr()->eq('uid', $qb->createNamedParameter($user->getUID())))
->setMaxResults(1000);
@@ -145,7 +146,7 @@ class DefaultTokenMapper extends Mapper {
* @param IUser $user
* @param int $id
*/
- public function deleteById(IUser $user, $id) {
+ public function deleteById(IUser $user, int $id) {
/* @var $qb IQueryBuilder */
$qb = $this->db->getQueryBuilder();
$qb->delete('authtoken')
@@ -159,7 +160,7 @@ class DefaultTokenMapper extends Mapper {
*
* @param string $name
*/
- public function deleteByName($name) {
+ public function deleteByName(string $name) {
$qb = $this->db->getQueryBuilder();
$qb->delete('authtoken')
->where($qb->expr()->eq('name', $qb->createNamedParameter($name), IQueryBuilder::PARAM_STR));
diff --git a/lib/private/Authentication/Token/DefaultTokenProvider.php b/lib/private/Authentication/Token/DefaultTokenProvider.php
index 36a8b1d5464..5df74cadac4 100644
--- a/lib/private/Authentication/Token/DefaultTokenProvider.php
+++ b/lib/private/Authentication/Token/DefaultTokenProvider.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
* @copyright Copyright (c) 2016, Christoph Wurst <christoph@winzerhof-wurst.at>
@@ -85,7 +86,13 @@ class DefaultTokenProvider implements IProvider {
* @param int $remember whether the session token should be used for remember-me
* @return IToken
*/
- public function generateToken($token, $uid, $loginName, $password, $name, $type = IToken::TEMPORARY_TOKEN, $remember = IToken::DO_NOT_REMEMBER) {
+ public function generateToken(string $token,
+ string $uid,
+ string $loginName,
+ $password,
+ string $name,
+ int $type = IToken::TEMPORARY_TOKEN,
+ int $remember = IToken::DO_NOT_REMEMBER): IToken {
$dbToken = new DefaultToken();
$dbToken->setUid($uid);
$dbToken->setLoginName($loginName);
@@ -145,7 +152,7 @@ class DefaultTokenProvider implements IProvider {
* @param IUser $user
* @return IToken[]
*/
- public function getTokenByUser(IUser $user) {
+ public function getTokenByUser(IUser $user): array {
return $this->mapper->getTokenByUser($user);
}
@@ -154,29 +161,43 @@ class DefaultTokenProvider implements IProvider {
*
* @param string $tokenId
* @throws InvalidTokenException
- * @return DefaultToken
+ * @throws ExpiredTokenException
+ * @return IToken
*/
- public function getToken($tokenId) {
+ public function getToken(string $tokenId): IToken {
try {
- return $this->mapper->getToken($this->hashToken($tokenId));
+ $token = $this->mapper->getToken($this->hashToken($tokenId));
} catch (DoesNotExistException $ex) {
throw new InvalidTokenException();
}
+
+ if ($token->getExpires() !== null && $token->getExpires() < $this->time->getTime()) {
+ throw new ExpiredTokenException($token);
+ }
+
+ return $token;
}
/**
* Get a token by token id
*
- * @param string $tokenId
+ * @param int $tokenId
* @throws InvalidTokenException
- * @return DefaultToken
+ * @throws ExpiredTokenException
+ * @return IToken
*/
- public function getTokenById($tokenId) {
+ public function getTokenById(int $tokenId): IToken {
try {
- return $this->mapper->getTokenById($tokenId);
+ $token = $this->mapper->getTokenById($tokenId);
} catch (DoesNotExistException $ex) {
throw new InvalidTokenException();
}
+
+ if ($token->getExpires() !== null && $token->getExpires() < $this->time->getTime()) {
+ throw new ExpiredTokenException($token);
+ }
+
+ return $token;
}
/**
@@ -184,7 +205,7 @@ class DefaultTokenProvider implements IProvider {
* @param string $sessionId
* @throws InvalidTokenException
*/
- public function renewSessionToken($oldSessionId, $sessionId) {
+ public function renewSessionToken(string $oldSessionId, string $sessionId) {
$token = $this->getToken($oldSessionId);
$newToken = new DefaultToken();
@@ -210,7 +231,7 @@ class DefaultTokenProvider implements IProvider {
* @throws PasswordlessTokenException
* @return string
*/
- public function getPassword(IToken $savedToken, $tokenId) {
+ public function getPassword(IToken $savedToken, string $tokenId): string {
$password = $savedToken->getPassword();
if (is_null($password)) {
throw new PasswordlessTokenException();
@@ -226,7 +247,7 @@ class DefaultTokenProvider implements IProvider {
* @param string $password
* @throws InvalidTokenException
*/
- public function setPassword(IToken $token, $tokenId, $password) {
+ public function setPassword(IToken $token, string $tokenId, string $password) {
if (!($token instanceof DefaultToken)) {
throw new InvalidTokenException();
}
@@ -240,7 +261,7 @@ class DefaultTokenProvider implements IProvider {
*
* @param string $token
*/
- public function invalidateToken($token) {
+ public function invalidateToken(string $token) {
$this->mapper->invalidate($this->hashToken($token));
}
@@ -250,7 +271,7 @@ class DefaultTokenProvider implements IProvider {
* @param IUser $user
* @param int $id
*/
- public function invalidateTokenById(IUser $user, $id) {
+ public function invalidateTokenById(IUser $user, int $id) {
$this->mapper->deleteById($user, $id);
}
@@ -267,10 +288,32 @@ class DefaultTokenProvider implements IProvider {
}
/**
+ * Rotate the token. Usefull for for example oauth tokens
+ *
+ * @param IToken $token
+ * @param string $oldTokenId
+ * @param string $newTokenId
+ * @return IToken
+ */
+ public function rotate(IToken $token, string $oldTokenId, string $newTokenId): IToken {
+ try {
+ $password = $this->getPassword($token, $oldTokenId);
+ $token->setPassword($this->encryptPassword($password, $newTokenId));
+ } catch (PasswordlessTokenException $e) {
+
+ }
+
+ $token->setToken($this->hashToken($newTokenId));
+ $this->updateToken($token);
+
+ return $token;
+ }
+
+ /**
* @param string $token
* @return string
*/
- private function hashToken($token) {
+ private function hashToken(string $token) {
$secret = $this->config->getSystemValue('secret');
return hash('sha512', $token . $secret);
}
@@ -284,7 +327,7 @@ class DefaultTokenProvider implements IProvider {
* @param string $token
* @return string encrypted password
*/
- private function encryptPassword($password, $token) {
+ private function encryptPassword(string $password, string $token): string {
$secret = $this->config->getSystemValue('secret');
return $this->crypto->encrypt($password, $token . $secret);
}
@@ -299,7 +342,7 @@ class DefaultTokenProvider implements IProvider {
* @throws InvalidTokenException
* @return string the decrypted key
*/
- private function decryptPassword($password, $token) {
+ private function decryptPassword(string $password, string $token): string {
$secret = $this->config->getSystemValue('secret');
try {
return $this->crypto->decrypt($password, $token . $secret);
diff --git a/lib/private/Authentication/Token/IProvider.php b/lib/private/Authentication/Token/IProvider.php
index e1cc8182ff0..0efffefac68 100644
--- a/lib/private/Authentication/Token/IProvider.php
+++ b/lib/private/Authentication/Token/IProvider.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -44,25 +45,33 @@ interface IProvider {
* @param int $remember whether the session token should be used for remember-me
* @return IToken
*/
- public function generateToken($token, $uid, $loginName, $password, $name, $type = IToken::TEMPORARY_TOKEN, $remember = IToken::DO_NOT_REMEMBER);
+ public function generateToken(string $token,
+ string $uid,
+ string $loginName,
+ $password,
+ string $name,
+ int $type = IToken::TEMPORARY_TOKEN,
+ int $remember = IToken::DO_NOT_REMEMBER): IToken;
/**
* Get a token by token id
*
* @param string $tokenId
* @throws InvalidTokenException
+ * @throws ExpiredTokenException
* @return IToken
*/
- public function getToken($tokenId);
+ public function getToken(string $tokenId): IToken;
/**
* Get a token by token id
*
- * @param string $tokenId
+ * @param int $tokenId
* @throws InvalidTokenException
- * @return DefaultToken
+ * @throws ExpiredTokenException
+ * @return IToken
*/
- public function getTokenById($tokenId);
+ public function getTokenById(int $tokenId): IToken;
/**
* Duplicate an existing session token
@@ -71,14 +80,14 @@ interface IProvider {
* @param string $sessionId
* @throws InvalidTokenException
*/
- public function renewSessionToken($oldSessionId, $sessionId);
+ public function renewSessionToken(string $oldSessionId, string $sessionId);
/**
* Invalidate (delete) the given session token
*
* @param string $token
*/
- public function invalidateToken($token);
+ public function invalidateToken(string $token);
/**
* Invalidate (delete) the given token
@@ -86,7 +95,7 @@ interface IProvider {
* @param IUser $user
* @param int $id
*/
- public function invalidateTokenById(IUser $user, $id);
+ public function invalidateTokenById(IUser $user, int $id);
/**
* Invalidate (delete) old session tokens
@@ -116,7 +125,7 @@ interface IProvider {
* @param IUser $user
* @return IToken[]
*/
- public function getTokenByUser(IUser $user);
+ public function getTokenByUser(IUser $user): array;
/**
* Get the (unencrypted) password of the given token
@@ -127,7 +136,7 @@ interface IProvider {
* @throws PasswordlessTokenException
* @return string
*/
- public function getPassword(IToken $token, $tokenId);
+ public function getPassword(IToken $token, string $tokenId): string;
/**
* Encrypt and set the password of the given token
@@ -137,5 +146,15 @@ interface IProvider {
* @param string $password
* @throws InvalidTokenException
*/
- public function setPassword(IToken $token, $tokenId, $password);
+ public function setPassword(IToken $token, string $tokenId, string $password);
+
+ /**
+ * Rotate the token. Usefull for for example oauth tokens
+ *
+ * @param IToken $token
+ * @param string $oldTokenId
+ * @param string $newTokenId
+ * @return IToken
+ */
+ public function rotate(IToken $token, string $oldTokenId, string $newTokenId): IToken;
}
diff --git a/lib/private/Authentication/Token/IToken.php b/lib/private/Authentication/Token/IToken.php
index a24d31e2ed2..e122ec02764 100644
--- a/lib/private/Authentication/Token/IToken.php
+++ b/lib/private/Authentication/Token/IToken.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -37,26 +38,26 @@ interface IToken extends JsonSerializable {
*
* @return int
*/
- public function getId();
+ public function getId(): int;
/**
* Get the user UID
*
* @return string
*/
- public function getUID();
+ public function getUID(): string;
/**
* Get the login name used when generating the token
*
* @return string
*/
- public function getLoginName();
+ public function getLoginName(): string;
/**
* Get the (encrypted) login password
*
- * @return string
+ * @return string|null
*/
public function getPassword();
@@ -65,28 +66,28 @@ interface IToken extends JsonSerializable {
*
* @return int
*/
- public function getLastCheck();
+ public function getLastCheck(): int;
/**
* Set the timestamp of the last password check
*
* @param int $time
*/
- public function setLastCheck($time);
+ public function setLastCheck(int $time);
/**
* Get the authentication scope for this token
*
* @return string
*/
- public function getScope();
+ public function getScope(): string;
/**
* Get the authentication scope for this token
*
* @return array
*/
- public function getScopeAsArray();
+ public function getScopeAsArray(): array;
/**
* Set the authentication scope for this token
@@ -94,4 +95,38 @@ interface IToken extends JsonSerializable {
* @param array $scope
*/
public function setScope($scope);
+
+ /**
+ * Get the name of the token
+ * @return string
+ */
+ public function getName(): string;
+
+ /**
+ * Get the remember state of the token
+ *
+ * @return int
+ */
+ public function getRemember(): int;
+
+ /**
+ * Set the token
+ *
+ * @param string $token
+ */
+ public function setToken(string $token);
+
+ /**
+ * Set the password
+ *
+ * @param string $password
+ */
+ public function setPassword(string $password);
+
+ /**
+ * Set the expiration time of the token
+ *
+ * @param int|null $expires
+ */
+ public function setExpires($expires);
}
diff --git a/lib/private/Files/AppData/AppData.php b/lib/private/Files/AppData/AppData.php
index 270e834b8e5..e25bf450446 100644
--- a/lib/private/Files/AppData/AppData.php
+++ b/lib/private/Files/AppData/AppData.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright 2016 Roeland Jago Douma <roeland@famdouma.nl>
*
@@ -31,6 +32,7 @@ use OC\SystemConfig;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
+use OCP\Files\SimpleFS\ISimpleFolder;
class AppData implements IAppData {
@@ -55,7 +57,7 @@ class AppData implements IAppData {
*/
public function __construct(IRootFolder $rootFolder,
SystemConfig $systemConfig,
- $appId) {
+ string $appId) {
$this->rootFolder = $rootFolder;
$this->config = $systemConfig;
@@ -66,7 +68,7 @@ class AppData implements IAppData {
* @return Folder
* @throws \RuntimeException
*/
- private function getAppDataFolder() {
+ private function getAppDataFolder(): Folder {
if ($this->folder === null) {
$instanceId = $this->config->getValue('instanceid', null);
if ($instanceId === null) {
@@ -101,20 +103,20 @@ class AppData implements IAppData {
return $this->folder;
}
- public function getFolder($name) {
+ public function getFolder(string $name): ISimpleFolder {
$node = $this->getAppDataFolder()->get($name);
/** @var Folder $node */
return new SimpleFolder($node);
}
- public function newFolder($name) {
+ public function newFolder(string $name): ISimpleFolder {
$folder = $this->getAppDataFolder()->newFolder($name);
return new SimpleFolder($folder);
}
- public function getDirectoryListing() {
+ public function getDirectoryListing(): array {
$listing = $this->getAppDataFolder()->getDirectoryListing();
$fileListing = array_map(function(Node $folder) {
@@ -128,4 +130,8 @@ class AppData implements IAppData {
return array_values($fileListing);
}
+
+ public function getId(): int {
+ return $this->getAppDataFolder()->getId();
+ }
}
diff --git a/lib/private/Files/AppData/Factory.php b/lib/private/Files/AppData/Factory.php
index 85c75733796..fba2232db06 100644
--- a/lib/private/Files/AppData/Factory.php
+++ b/lib/private/Files/AppData/Factory.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright 2016 Roeland Jago Douma <roeland@famdouma.nl>
*
@@ -44,7 +45,7 @@ class Factory {
* @param string $appId
* @return AppData
*/
- public function get($appId) {
+ public function get(string $appId): AppData {
return new AppData($this->rootFolder, $this->config, $appId);
}
}
diff --git a/lib/private/Preview/BackgroundCleanupJob.php b/lib/private/Preview/BackgroundCleanupJob.php
new file mode 100644
index 00000000000..25bf354e28b
--- /dev/null
+++ b/lib/private/Preview/BackgroundCleanupJob.php
@@ -0,0 +1,91 @@
+<?php
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2018, Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @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 OC\Preview;
+
+use OC\BackgroundJob\TimedJob;
+use OC\Files\AppData\Factory;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\Files\NotFoundException;
+use OCP\Files\NotPermittedException;
+use OCP\IDBConnection;
+
+class BackgroundCleanupJob extends TimedJob {
+
+ /** @var IDBConnection */
+ private $connection;
+
+ /** @var Factory */
+ private $appDataFactory;
+
+ /** @var bool */
+ private $isCLI;
+
+ public function __construct(IDBConnection $connection,
+ Factory $appDataFactory,
+ bool $isCLI) {
+ // Run at most once an hour
+ $this->setInterval(3600);
+
+ $this->connection = $connection;
+ $this->appDataFactory = $appDataFactory;
+ $this->isCLI = $isCLI;
+ }
+
+ public function run($argument) {
+ $previews = $this->appDataFactory->get('preview');
+
+ $previewFodlerId = $previews->getId();
+
+ $qb = $this->connection->getQueryBuilder();
+ $qb->select('a.name')
+ ->from('filecache', 'a')
+ ->leftJoin('a', 'filecache', 'b', $qb->expr()->eq(
+ $qb->expr()->castColumn('a.name', IQueryBuilder::PARAM_INT), 'b.fileid'
+ ))
+ ->where(
+ $qb->expr()->isNull('b.fileid')
+ )->andWhere(
+ $qb->expr()->eq('a.parent', $qb->createNamedParameter($previewFodlerId))
+ );
+
+ if (!$this->isCLI) {
+ $qb->setMaxResults(10);
+ }
+
+ $cursor = $qb->execute();
+
+ while ($row = $cursor->fetch()) {
+ try {
+ $preview = $previews->getFolder($row['name']);
+ $preview->delete();
+ } catch (NotFoundException $e) {
+ // continue
+ } catch (NotPermittedException $e) {
+ // continue
+ }
+ }
+
+ $cursor->closeCursor();
+ }
+}
diff --git a/lib/private/Preview/Watcher.php b/lib/private/Preview/Watcher.php
index 8d091b84b0e..0c0531dff94 100644
--- a/lib/private/Preview/Watcher.php
+++ b/lib/private/Preview/Watcher.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl>
*
@@ -22,7 +23,6 @@
*/
namespace OC\Preview;
-use OCP\Files\File;
use OCP\Files\Node;
use OCP\Files\Folder;
use OCP\Files\IAppData;
@@ -39,9 +39,6 @@ class Watcher {
/** @var IAppData */
private $appData;
- /** @var int[] */
- private $toDelete = [];
-
/**
* Watcher constructor.
*
@@ -52,53 +49,26 @@ class Watcher {
}
public function postWrite(Node $node) {
+ $this->deleteNode($node);
+ }
+
+ protected function deleteNode(Node $node) {
// We only handle files
if ($node instanceof Folder) {
return;
}
try {
- $folder = $this->appData->getFolder($node->getId());
+ $folder = $this->appData->getFolder((string)$node->getId());
$folder->delete();
} catch (NotFoundException $e) {
//Nothing to do
}
}
- public function preDelete(Node $node) {
- // To avoid cycles
- if ($this->toDelete !== []) {
- return;
- }
-
- if ($node instanceof File) {
- $this->toDelete[] = $node->getId();
- return;
- }
-
- /** @var Folder $node */
- $this->deleteFolder($node);
- }
-
- private function deleteFolder(Folder $folder) {
- $nodes = $folder->getDirectoryListing();
- foreach ($nodes as $node) {
- if ($node instanceof File) {
- $this->toDelete[] = $node->getId();
- } else if ($node instanceof Folder) {
- $this->deleteFolder($node);
- }
- }
- }
-
- public function postDelete(Node $node) {
- foreach ($this->toDelete as $fid) {
- try {
- $folder = $this->appData->getFolder($fid);
- $folder->delete();
- } catch (NotFoundException $e) {
- // continue
- }
+ public function versionRollback(array $data) {
+ if (isset($data['node'])) {
+ $this->deleteNode($data['node']);
}
}
}
diff --git a/lib/private/Preview/WatcherConnector.php b/lib/private/Preview/WatcherConnector.php
index 4e6e786cec7..f374b909d8f 100644
--- a/lib/private/Preview/WatcherConnector.php
+++ b/lib/private/Preview/WatcherConnector.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl>
*
@@ -49,7 +50,7 @@ class WatcherConnector {
/**
* @return Watcher
*/
- private function getWatcher() {
+ private function getWatcher(): Watcher {
return \OC::$server->query(Watcher::class);
}
@@ -60,13 +61,7 @@ class WatcherConnector {
$this->getWatcher()->postWrite($node);
});
- $this->root->listen('\OC\Files', 'preDelete', function (Node $node) {
- $this->getWatcher()->preDelete($node);
- });
-
- $this->root->listen('\OC\Files', 'postDelete', function (Node $node) {
- $this->getWatcher()->postDelete($node);
- });
+ \OC_Hook::connect('\OCP\Versions', 'rollback', $this->getWatcher(), 'versionRollback');
}
}
}
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index a257ef061e7..8746f1e6f27 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -36,6 +36,7 @@ use OC\Repair\Collation;
use OC\Repair\MoveUpdaterStepFile;
use OC\Repair\NC11\FixMountStorages;
use OC\Repair\NC13\AddLogRotateJob;
+use OC\Repair\NC14\AddPreviewBackgroundCleanupJob;
use OC\Repair\OldGroupMembershipShares;
use OC\Repair\Owncloud\DropAccountTermsTable;
use OC\Repair\Owncloud\SaveAccountsTableData;
@@ -132,7 +133,8 @@ class Repair implements IOutput{
new FixMountStorages(\OC::$server->getDatabaseConnection()),
new RepairInvalidPaths(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()),
new AddLogRotateJob(\OC::$server->getJobList()),
- new ClearFrontendCaches(\OC::$server->getMemCacheFactory(), \OC::$server->query(SCSSCacher::class), \OC::$server->query(JSCombiner::class))
+ new ClearFrontendCaches(\OC::$server->getMemCacheFactory(), \OC::$server->query(SCSSCacher::class), \OC::$server->query(JSCombiner::class)),
+ new AddPreviewBackgroundCleanupJob(\OC::$server->getJobList()),
];
}
diff --git a/lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php b/lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php
new file mode 100644
index 00000000000..b58fabcba50
--- /dev/null
+++ b/lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php
@@ -0,0 +1,48 @@
+<?php
+declare(strict_types=1);
+/**
+ * @copyright 2018, Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+namespace OC\Repair\NC14;
+
+use OC\Preview\BackgroundCleanupJob;
+use OCP\BackgroundJob\IJobList;
+use OCP\Migration\IOutput;
+use OCP\Migration\IRepairStep;
+
+class AddPreviewBackgroundCleanupJob implements IRepairStep {
+
+ /** @var IJobList */
+ private $jobList;
+
+ public function __construct(IJobList $jobList) {
+ $this->jobList = $jobList;
+ }
+
+ public function getName(): string {
+ return 'Add preview background cleanup job';
+ }
+
+ public function run(IOutput $output) {
+ $this->jobList->add(BackgroundCleanupJob::class);
+ }
+
+}
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index 5564bb5b072..25e0b4d8817 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -47,6 +47,7 @@ use OC\App\AppStore\Bundles\BundleFetcher;
use OC\Authentication\Token\DefaultTokenCleanupJob;
use OC\Authentication\Token\DefaultTokenProvider;
use OC\Log\Rotate;
+use OC\Preview\BackgroundCleanupJob;
use OCP\Defaults;
use OCP\IL10N;
use OCP\ILogger;
@@ -419,6 +420,7 @@ class Setup {
$jobList = \OC::$server->getJobList();
$jobList->add(DefaultTokenCleanupJob::class);
$jobList->add(Rotate::class);
+ $jobList->add(BackgroundCleanupJob::class);
}
/**
diff --git a/lib/public/AppFramework/Db/Mapper.php b/lib/public/AppFramework/Db/Mapper.php
index b008702ba54..6910757add0 100644
--- a/lib/public/AppFramework/Db/Mapper.php
+++ b/lib/public/AppFramework/Db/Mapper.php
@@ -34,6 +34,7 @@ use OCP\IDBConnection;
* Simple parent class for inheriting your data access layer from. This class
* may be subject to change in the future
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
abstract class Mapper {
@@ -47,6 +48,7 @@ abstract class Mapper {
* @param string $entityClass the name of the entity that the sql should be
* mapped to queries without using sql
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
public function __construct(IDBConnection $db, $tableName, $entityClass=null){
$this->db = $db;
@@ -65,6 +67,7 @@ abstract class Mapper {
/**
* @return string the table name
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
public function getTableName(){
return $this->tableName;
@@ -76,6 +79,7 @@ abstract class Mapper {
* @param Entity $entity the entity that should be deleted
* @return Entity the deleted entity
* @since 7.0.0 - return value added in 8.1.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
public function delete(Entity $entity){
$sql = 'DELETE FROM `' . $this->tableName . '` WHERE `id` = ?';
@@ -90,6 +94,7 @@ abstract class Mapper {
* @param Entity $entity the entity that should be created
* @return Entity the saved entity with the set id
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
public function insert(Entity $entity){
// get updated fields to save, fields have to be set using a setter to
@@ -139,6 +144,7 @@ abstract class Mapper {
* @param Entity $entity the entity that should be created
* @return Entity the saved entity with the set id
* @since 7.0.0 - return value was added in 8.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
public function update(Entity $entity){
// if entity wasn't changed it makes no sense to run a db query
@@ -195,6 +201,7 @@ abstract class Mapper {
* @param array $array
* @return bool true if associative
* @since 8.1.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
private function isAssocArray(array $array) {
return array_values($array) !== $array;
@@ -205,6 +212,7 @@ abstract class Mapper {
* @param $value
* @return int PDO constant
* @since 8.1.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
private function getPDOType($value) {
switch (gettype($value)) {
@@ -226,6 +234,7 @@ abstract class Mapper {
* @param int $offset from which row we want to start
* @return \PDOStatement the database query result
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
protected function execute($sql, array $params=[], $limit=null, $offset=null){
$query = $this->db->prepare($sql, $limit, $offset);
@@ -249,7 +258,6 @@ abstract class Mapper {
return $query;
}
-
/**
* Returns an db result and throws exceptions when there are more or less
* results
@@ -262,6 +270,7 @@ abstract class Mapper {
* @throws MultipleObjectsReturnedException if more than one item exist
* @return array the result as row
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
protected function findOneQuery($sql, array $params=[], $limit=null, $offset=null){
$stmt = $this->execute($sql, $params, $limit, $offset);
@@ -297,6 +306,7 @@ abstract class Mapper {
* @param int $offset from which row we want to start
* @return string formatted error message string
* @since 9.1.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
private function buildDebugMessage($msg, $sql, array $params=[], $limit=null, $offset=null) {
return $msg .
@@ -313,6 +323,7 @@ abstract class Mapper {
* @param array $row the row which should be converted to an entity
* @return Entity the entity
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
protected function mapRowToEntity($row) {
return call_user_func($this->entityClass .'::fromRow', $row);
@@ -327,6 +338,7 @@ abstract class Mapper {
* @param int $offset from which row we want to start
* @return array all fetched entities
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
protected function findEntities($sql, array $params=[], $limit=null, $offset=null) {
$stmt = $this->execute($sql, $params, $limit, $offset);
@@ -354,6 +366,7 @@ abstract class Mapper {
* @throws MultipleObjectsReturnedException if more than one item exist
* @return Entity the entity
* @since 7.0.0
+ * @deprecated 14.0.0 Move over to QBMapper
*/
protected function findEntity($sql, array $params=[], $limit=null, $offset=null){
return $this->mapRowToEntity($this->findOneQuery($sql, $params, $limit, $offset));
diff --git a/lib/public/AppFramework/Db/QBMapper.php b/lib/public/AppFramework/Db/QBMapper.php
new file mode 100644
index 00000000000..a9b38732a30
--- /dev/null
+++ b/lib/public/AppFramework/Db/QBMapper.php
@@ -0,0 +1,272 @@
+<?php
+declare(strict_types=1);
+/**
+ * @copyright 2018, Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCP\AppFramework\Db;
+
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\IDBConnection;
+
+/**
+ * Simple parent class for inheriting your data access layer from. This class
+ * may be subject to change in the future
+ *
+ * @since 14.0.0
+ */
+abstract class QBMapper {
+
+ /** @var string */
+ protected $tableName;
+
+ /** @var string */
+ protected $entityClass;
+
+ /** @var IDBConnection */
+ protected $db;
+
+ /**
+ * @param IDBConnection $db Instance of the Db abstraction layer
+ * @param string $tableName the name of the table. set this to allow entity
+ * @param string $entityClass the name of the entity that the sql should be
+ * mapped to queries without using sql
+ * @since 14.0.0
+ */
+ public function __construct(IDBConnection $db, string $tableName, string $entityClass=null){
+ $this->db = $db;
+ $this->tableName = $tableName;
+
+ // if not given set the entity name to the class without the mapper part
+ // cache it here for later use since reflection is slow
+ if($entityClass === null) {
+ $this->entityClass = str_replace('Mapper', '', \get_class($this));
+ } else {
+ $this->entityClass = $entityClass;
+ }
+ }
+
+
+ /**
+ * @return string the table name
+ * @since 14.0.0
+ */
+ public function getTableName(): string {
+ return $this->tableName;
+ }
+
+
+ /**
+ * Deletes an entity from the table
+ * @param Entity $entity the entity that should be deleted
+ * @return Entity the deleted entity
+ * @since 14.0.0
+ */
+ public function delete(Entity $entity): Entity {
+ $qb = $this->db->getQueryBuilder();
+
+ $qb->delete($this->tableName)
+ ->where(
+ $qb->expr()->eq('id', $qb->createNamedParameter($entity->getId()))
+ );
+ $qb->execute();
+ return $entity;
+ }
+
+
+ /**
+ * Creates a new entry in the db from an entity
+ * @param Entity $entity the entity that should be created
+ * @return Entity the saved entity with the set id
+ * @since 14.0.0
+ * @suppress SqlInjectionChecker
+ */
+ public function insert(Entity $entity): Entity {
+ // get updated fields to save, fields have to be set using a setter to
+ // be saved
+ $properties = $entity->getUpdatedFields();
+
+ $qb = $this->db->getQueryBuilder();
+ $qb->insert($this->tableName);
+
+ // build the fields
+ foreach($properties as $property => $updated) {
+ $column = $entity->propertyToColumn($property);
+ $getter = 'get' . ucfirst($property);
+ $value = $entity->$getter();
+
+ $qb->setValue($column, $qb->createNamedParameter($value));
+ }
+
+ $qb->execute();
+
+ $entity->setId((int) $qb->getLastInsertId());
+
+ return $entity;
+ }
+
+
+
+ /**
+ * Updates an entry in the db from an entity
+ * @throws \InvalidArgumentException if entity has no id
+ * @param Entity $entity the entity that should be created
+ * @return Entity the saved entity with the set id
+ * @since 14.0.0
+ * @suppress SqlInjectionChecker
+ */
+ public function update(Entity $entity): Entity {
+ // if entity wasn't changed it makes no sense to run a db query
+ $properties = $entity->getUpdatedFields();
+ if(\count($properties) === 0) {
+ return $entity;
+ }
+
+ // entity needs an id
+ $id = $entity->getId();
+ if($id === null){
+ throw new \InvalidArgumentException(
+ 'Entity which should be updated has no id');
+ }
+
+ // get updated fields to save, fields have to be set using a setter to
+ // be saved
+ // do not update the id field
+ unset($properties['id']);
+
+ $qb = $this->db->getQueryBuilder();
+ $qb->update($this->tableName);
+
+ // build the fields
+ foreach($properties as $property => $updated) {
+ $column = $entity->propertyToColumn($property);
+ $getter = 'get' . ucfirst($property);
+ $value = $entity->$getter();
+
+ $qb->set($column, $qb->createNamedParameter($value));
+ }
+
+ $qb->where(
+ $qb->expr()->eq('id', $qb->createNamedParameter($id))
+ );
+ $qb->execute();
+
+ return $entity;
+ }
+
+ /**
+ * Returns an db result and throws exceptions when there are more or less
+ * results
+ *
+ * @see findEntity
+ *
+ * @param IQueryBuilder $query
+ * @throws DoesNotExistException if the item does not exist
+ * @throws MultipleObjectsReturnedException if more than one item exist
+ * @return array the result as row
+ * @since 14.0.0
+ */
+ protected function findOneQuery(IQueryBuilder $query): array {
+ $cursor = $query->execute();
+
+ $row = $cursor->fetch();
+ if($row === false) {
+ $cursor->closeCursor();
+ $msg = $this->buildDebugMessage(
+ 'Did expect one result but found none when executing', $query
+ );
+ throw new DoesNotExistException($msg);
+ }
+
+ $row2 = $cursor->fetch();
+ $cursor->closeCursor();
+ if($row2 !== false ) {
+ $msg = $this->buildDebugMessage(
+ 'Did not expect more than one result when executing', $query
+ );
+ throw new MultipleObjectsReturnedException($msg);
+ }
+
+ return $row;
+ }
+
+ /**
+ * @param string $msg
+ * @param IQueryBuilder $sql
+ * @return string
+ * @since 14.0.0
+ */
+ private function buildDebugMessage(string $msg, IQueryBuilder $sql): string {
+ return $msg .
+ ': query "' . $sql->getSQL() . '"; ';
+ }
+
+
+ /**
+ * Creates an entity from a row. Automatically determines the entity class
+ * from the current mapper name (MyEntityMapper -> MyEntity)
+ *
+ * @param array $row the row which should be converted to an entity
+ * @return Entity the entity
+ * @since 14.0.0
+ */
+ protected function mapRowToEntity(array $row): Entity {
+ return \call_user_func($this->entityClass .'::fromRow', $row);
+ }
+
+
+ /**
+ * Runs a sql query and returns an array of entities
+ *
+ * @param IQueryBuilder $query
+ * @return Entity[] all fetched entities
+ * @since 14.0.0
+ */
+ protected function findEntities(IQueryBuilder $query): array {
+ $cursor = $query->execute();
+
+ $entities = [];
+
+ while($row = $cursor->fetch()){
+ $entities[] = $this->mapRowToEntity($row);
+ }
+
+ $cursor->closeCursor();
+
+ return $entities;
+ }
+
+
+ /**
+ * Returns an db result and throws exceptions when there are more or less
+ * results
+ *
+ * @param IQueryBuilder $query
+ * @throws DoesNotExistException if the item does not exist
+ * @throws MultipleObjectsReturnedException if more than one item exist
+ * @return Entity the entity
+ * @since 14.0.0
+ */
+ protected function findEntity(IQueryBuilder $query): Entity {
+ return $this->mapRowToEntity($this->findOneQuery($query));
+ }
+
+}
diff --git a/lib/public/Files/SimpleFS/ISimpleRoot.php b/lib/public/Files/SimpleFS/ISimpleRoot.php
index 9b4b8d76947..054106fbaca 100644
--- a/lib/public/Files/SimpleFS/ISimpleRoot.php
+++ b/lib/public/Files/SimpleFS/ISimpleRoot.php
@@ -42,7 +42,7 @@ interface ISimpleRoot {
* @throws \RuntimeException
* @since 11.0.0
*/
- public function getFolder($name);
+ public function getFolder(string $name): ISimpleFolder;
/**
* Get all the Folders
@@ -52,7 +52,7 @@ interface ISimpleRoot {
* @throws \RuntimeException
* @since 11.0.0
*/
- public function getDirectoryListing();
+ public function getDirectoryListing(): array;
/**
* Create a new folder named $name
@@ -63,5 +63,5 @@ interface ISimpleRoot {
* @throws \RuntimeException
* @since 11.0.0
*/
- public function newFolder($name);
+ public function newFolder(string $name): ISimpleFolder;
}
diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js
index e140297cd50..1d8ed2dd207 100644
--- a/settings/l10n/ca.js
+++ b/settings/l10n/ca.js
@@ -45,7 +45,7 @@ OC.L10N.register(
"Error while enabling user." : "Error activant usuari.",
"Error while disabling user." : "Error desactivant usuari.",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Per verificar el vostre compte de Twitter, publiqueu tweet a Twitter (assegureu-vos de publicar-lo sense cap salt de línia):",
- "Settings saved" : "Paràmetres desats",
+ "Settings saved" : "Configuració desada",
"Unable to change full name" : "No s'ha pogut canviar el nom complet",
"Unable to change email address" : "No es pot canviar l'adreça de correu",
"Your full name has been changed." : "El vostre nom complet ha canviat.",
@@ -219,8 +219,8 @@ OC.L10N.register(
"Test email settings" : "Prova l'arranjament del correu",
"Send email" : "Envia correu",
"Server-side encryption" : "Xifrat del costat del servidor",
- "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "El xifratge del servidor permet xifrar els fitxers que es carreguen a aquest servidor. Això ve amb limitacions com una pena de rendiment, així que habiliteu-ho només si és necessari.",
- "Enable server-side encryption" : "Habilitar xifrat en el servidor",
+ "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "El xifrat per part del servidor permet xifrar els fitxers que s'hi carreguen. Això afecta al rendiment, així que habiliteu-ho només si és necessari.",
+ "Enable server-side encryption" : "Habilitar xifrat al servidor",
"Please read carefully before activating server-side encryption: " : "Llegiu atentament abans d'activar el servidor:",
"Be aware that encryption always increases the file size." : "Tingueu en compte que la incriptacio sempre augmenta la mida del fitxer.",
"This is the final warning: Do you really want to enable encryption?" : " Realment voleu activar el xifratge?",
@@ -238,6 +238,7 @@ OC.L10N.register(
"Background job didn’t run yet!" : "Les tasques en segon pla encara no s'han executat!",
"Execute one task with each page loaded" : "Executa una tasca per cada paquet carregat",
"Sharing" : "Compartir",
+ "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Com a administrador, pots afinar els ajustos per compartir fitxers. Llegeix la documentació per a més informació.",
"Allow apps to use the Share API" : "Permet que les aplicacions utilitzin l'API de compartir",
"Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços",
"Allow public uploads" : "Permet pujada pública",
@@ -257,8 +258,9 @@ OC.L10N.register(
"How to do backups" : "Com fer còpies de seguretat",
"Performance tuning" : "Ajust del rendiment",
"Improving the config.php" : "Millorant el config.php",
- "Theming" : "Tematització",
+ "Theming" : "Aparença",
"Hardening and security guidance" : "Guia de protecció i seguretat",
+ "Administration" : "Administració",
"Profile picture" : "Foto de perfil",
"Upload new" : "Puja'n una de nova",
"Select from Files" : "Seleccioneu d'Arxius",
@@ -283,6 +285,7 @@ OC.L10N.register(
"It can take up to 24 hours before the account is displayed as verified." : "Pot prendre fins a 24 hores abans que aparegui el compte com a verificat.",
"Link https://…" : "Enllaç https://...",
"Twitter" : "Twitter",
+ "Twitter handle @…" : "Twitter @...",
"Language" : "Idioma",
"Help translate" : "Ajudeu-nos amb la traducció",
"Password" : "Contrasenya",
@@ -297,6 +300,7 @@ OC.L10N.register(
"For security reasons this password will only be shown once." : "Per raons de seguretat aquesta contrasenya només es mostrarà una vegada.",
"Username" : "Nom d'usuari",
"Done" : "Fet",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolupat per la {communityopen}comunitat Nextcloud{linkclose}, el {githubopen}codi font{linkclose} es troba sota llicència {licenseopen}AGPL{linkclose}.",
"Follow us on Google+" : "Segueix-nos al Google+",
"Follow us on Twitter" : "Segueix-nos al Twitter",
"Check out our blog" : "Mira el nostre blog",
@@ -308,12 +312,12 @@ OC.L10N.register(
"Admins" : "Administradors",
"Disabled" : "Desactivat",
"Default quota" : "Quota per defecte",
- "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzematge (per ex.: \"512 MB\" o \"12 GB\")",
"Unlimited" : "Il·limitat",
"Other" : "Un altre",
"Group admin for" : "Administrador de grup per",
"Quota" : "Quota",
- "Storage location" : "Ubicació de l'emmagatzemament",
+ "Storage location" : "Ubicació de l'emmagatzematge",
"User backend" : "Backend d'usuari",
"Last login" : "Últim accés",
"E-Mail" : "E-mail",
@@ -329,8 +333,10 @@ OC.L10N.register(
"Add trusted domain" : "Afegir domini de confiança",
"A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
"A valid email must be provided" : "S'ha de subministrar una adreça de correu electrònic vàlida",
+ "Sync clients" : "Aplicacions per sincronitzar",
"You are using <strong>%s</strong> of <strong>%s</strong>" : "Estàs fent servir <strong>%s</strong> de <strong>%s</strong>",
"Android app" : "Aplicació d'Android",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si vols contribuïr al projecte {contributeopen} uneix-te a l'equip {linkclose} o {contributeopen}comparteix{linkclose}!",
"Follow us on Google+!" : "Segueix-nos a Google+!",
"Show email address" : "Mostrar l'adreça de correu electrònic",
"Send email to new user" : "Enviar correu electrònic al nou usuari",
diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json
index b5a8ff84bc4..39ea351c5c2 100644
--- a/settings/l10n/ca.json
+++ b/settings/l10n/ca.json
@@ -43,7 +43,7 @@
"Error while enabling user." : "Error activant usuari.",
"Error while disabling user." : "Error desactivant usuari.",
"In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Per verificar el vostre compte de Twitter, publiqueu tweet a Twitter (assegureu-vos de publicar-lo sense cap salt de línia):",
- "Settings saved" : "Paràmetres desats",
+ "Settings saved" : "Configuració desada",
"Unable to change full name" : "No s'ha pogut canviar el nom complet",
"Unable to change email address" : "No es pot canviar l'adreça de correu",
"Your full name has been changed." : "El vostre nom complet ha canviat.",
@@ -217,8 +217,8 @@
"Test email settings" : "Prova l'arranjament del correu",
"Send email" : "Envia correu",
"Server-side encryption" : "Xifrat del costat del servidor",
- "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "El xifratge del servidor permet xifrar els fitxers que es carreguen a aquest servidor. Això ve amb limitacions com una pena de rendiment, així que habiliteu-ho només si és necessari.",
- "Enable server-side encryption" : "Habilitar xifrat en el servidor",
+ "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "El xifrat per part del servidor permet xifrar els fitxers que s'hi carreguen. Això afecta al rendiment, així que habiliteu-ho només si és necessari.",
+ "Enable server-side encryption" : "Habilitar xifrat al servidor",
"Please read carefully before activating server-side encryption: " : "Llegiu atentament abans d'activar el servidor:",
"Be aware that encryption always increases the file size." : "Tingueu en compte que la incriptacio sempre augmenta la mida del fitxer.",
"This is the final warning: Do you really want to enable encryption?" : " Realment voleu activar el xifratge?",
@@ -236,6 +236,7 @@
"Background job didn’t run yet!" : "Les tasques en segon pla encara no s'han executat!",
"Execute one task with each page loaded" : "Executa una tasca per cada paquet carregat",
"Sharing" : "Compartir",
+ "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Com a administrador, pots afinar els ajustos per compartir fitxers. Llegeix la documentació per a més informació.",
"Allow apps to use the Share API" : "Permet que les aplicacions utilitzin l'API de compartir",
"Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços",
"Allow public uploads" : "Permet pujada pública",
@@ -255,8 +256,9 @@
"How to do backups" : "Com fer còpies de seguretat",
"Performance tuning" : "Ajust del rendiment",
"Improving the config.php" : "Millorant el config.php",
- "Theming" : "Tematització",
+ "Theming" : "Aparença",
"Hardening and security guidance" : "Guia de protecció i seguretat",
+ "Administration" : "Administració",
"Profile picture" : "Foto de perfil",
"Upload new" : "Puja'n una de nova",
"Select from Files" : "Seleccioneu d'Arxius",
@@ -281,6 +283,7 @@
"It can take up to 24 hours before the account is displayed as verified." : "Pot prendre fins a 24 hores abans que aparegui el compte com a verificat.",
"Link https://…" : "Enllaç https://...",
"Twitter" : "Twitter",
+ "Twitter handle @…" : "Twitter @...",
"Language" : "Idioma",
"Help translate" : "Ajudeu-nos amb la traducció",
"Password" : "Contrasenya",
@@ -295,6 +298,7 @@
"For security reasons this password will only be shown once." : "Per raons de seguretat aquesta contrasenya només es mostrarà una vegada.",
"Username" : "Nom d'usuari",
"Done" : "Fet",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolupat per la {communityopen}comunitat Nextcloud{linkclose}, el {githubopen}codi font{linkclose} es troba sota llicència {licenseopen}AGPL{linkclose}.",
"Follow us on Google+" : "Segueix-nos al Google+",
"Follow us on Twitter" : "Segueix-nos al Twitter",
"Check out our blog" : "Mira el nostre blog",
@@ -306,12 +310,12 @@
"Admins" : "Administradors",
"Disabled" : "Desactivat",
"Default quota" : "Quota per defecte",
- "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzematge (per ex.: \"512 MB\" o \"12 GB\")",
"Unlimited" : "Il·limitat",
"Other" : "Un altre",
"Group admin for" : "Administrador de grup per",
"Quota" : "Quota",
- "Storage location" : "Ubicació de l'emmagatzemament",
+ "Storage location" : "Ubicació de l'emmagatzematge",
"User backend" : "Backend d'usuari",
"Last login" : "Últim accés",
"E-Mail" : "E-mail",
@@ -327,8 +331,10 @@
"Add trusted domain" : "Afegir domini de confiança",
"A valid password must be provided" : "Heu de facilitar una contrasenya vàlida",
"A valid email must be provided" : "S'ha de subministrar una adreça de correu electrònic vàlida",
+ "Sync clients" : "Aplicacions per sincronitzar",
"You are using <strong>%s</strong> of <strong>%s</strong>" : "Estàs fent servir <strong>%s</strong> de <strong>%s</strong>",
"Android app" : "Aplicació d'Android",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si vols contribuïr al projecte {contributeopen} uneix-te a l'equip {linkclose} o {contributeopen}comparteix{linkclose}!",
"Follow us on Google+!" : "Segueix-nos a Google+!",
"Show email address" : "Mostrar l'adreça de correu electrònic",
"Send email to new user" : "Enviar correu electrònic al nou usuari",
diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js
index 6356eccd2e0..008bb827de3 100644
--- a/settings/l10n/cs.js
+++ b/settings/l10n/cs.js
@@ -386,4 +386,4 @@ OC.L10N.register(
"Create" : "Vytvořit",
"Group name" : "Název skupiny"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;");
diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json
index 323735fa943..919c70fde41 100644
--- a/settings/l10n/cs.json
+++ b/settings/l10n/cs.json
@@ -383,5 +383,5 @@
"Send email to new user" : "Poslat e-mail novému uživateli",
"Create" : "Vytvořit",
"Group name" : "Název skupiny"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n < 10 && n % 1 == 0) ? 1 : (n < 9999 && n >= 10 && n % 1 == 0) ? 3 : (n % 1 != 0) : 4;"
} \ No newline at end of file
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index d2dc7399142..41581a2ea60 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -262,6 +262,8 @@ OC.L10N.register(
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwrite.cli.url\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible lanzar la tarea cron mediante CLI. Los siguientes errores técnicos has aparecido:",
+ "Last background job execution ran %s. Something seems wrong." : "La última ejecución de la tarea en segundo plano tuvo lugar %s. Algo parece ir mal.",
+ "Check the background job settings" : "Comprueba la configuración del trabajo en segundo plano",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor, vuelve a consultar la las <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">guías de instalación ↗</a> y buscar posibles errores o advertencias en el <a href=\"%s\">registro</a>.",
"All checks passed." : "Ha pasado todos los controles",
"Version" : "Versión",
@@ -316,7 +318,9 @@ OC.L10N.register(
"Picture provided by original account" : "Imagen provista por cuenta original",
"Cancel" : "Cancelar",
"Choose as profile picture" : "Seleccionar como imagen de perfil",
+ "Details" : "Detalles",
"You are member of the following groups:" : "Eres miembro de los siguientes grupos:",
+ "You are using <strong>%s</strong>" : "Estás usando <strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Está usando <strong>%s</strong> de <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Nombre completo",
"No display name set" : "No se ha establecido ningún nombre para mostrar",
@@ -339,6 +343,7 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",
+ "Devices & sessions" : "Dispositivos y sesiones",
"Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a tu cuenta.",
"Device" : "Dispositivo",
"Last activity" : "Última actividad",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index 44280fc1e99..2b3211e7af7 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -260,6 +260,8 @@
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si su instalación no está ubicada en la raíz del dominio y usa el cron del sistema, puede haber problemas al generarse los URL. Para evitarlos, configure la opción \"overwrite.cli.url\" en su archivo config.php para que use la ruta de la raíz del sitio web de su instalación (sugerencia: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible lanzar la tarea cron mediante CLI. Los siguientes errores técnicos has aparecido:",
+ "Last background job execution ran %s. Something seems wrong." : "La última ejecución de la tarea en segundo plano tuvo lugar %s. Algo parece ir mal.",
+ "Check the background job settings" : "Comprueba la configuración del trabajo en segundo plano",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor, vuelve a consultar la las <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">guías de instalación ↗</a> y buscar posibles errores o advertencias en el <a href=\"%s\">registro</a>.",
"All checks passed." : "Ha pasado todos los controles",
"Version" : "Versión",
@@ -314,7 +316,9 @@
"Picture provided by original account" : "Imagen provista por cuenta original",
"Cancel" : "Cancelar",
"Choose as profile picture" : "Seleccionar como imagen de perfil",
+ "Details" : "Detalles",
"You are member of the following groups:" : "Eres miembro de los siguientes grupos:",
+ "You are using <strong>%s</strong>" : "Estás usando <strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Está usando <strong>%s</strong> de <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Nombre completo",
"No display name set" : "No se ha establecido ningún nombre para mostrar",
@@ -337,6 +341,7 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",
+ "Devices & sessions" : "Dispositivos y sesiones",
"Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a tu cuenta.",
"Device" : "Dispositivo",
"Last activity" : "Última actividad",
diff --git a/settings/l10n/es_GT.js b/settings/l10n/es_GT.js
index 0090efa68cc..4405ed601ac 100644
--- a/settings/l10n/es_GT.js
+++ b/settings/l10n/es_GT.js
@@ -58,13 +58,13 @@ OC.L10N.register(
"%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.",
"Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ",
"Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.",
- "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s",
+ "Password for %1$s changed on %2$s" : "La contraseña de %1$s fue cambiada en %2$s",
"Password changed for %s" : "La contraseña fue cambiada para %s",
"If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ",
"%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.",
"Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ",
"Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ",
- "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s",
+ "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico de %1$s ha cambiado en %2$s",
"Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s",
"The new email address is %s" : "La nueva dirección de correo electrónico es %s",
"Your %s account was created" : "Tu cuenta %s ha sido creada",
@@ -75,10 +75,11 @@ OC.L10N.register(
"Set your password" : "Establece tu contraseña",
"Go to %s" : "Ir a %s",
"Install Client" : "Instalar el cliente",
+ "Logged in user must be a subadmin" : "El usuario firmado debe ser un subadministrador ",
"Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Couldn't remove app." : "No fue posible eliminar la aplicación. ",
"Couldn't update app." : "No fue posible actualizar la aplicación.",
- "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
+ "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Not saved" : "No guardado",
"Sending…" : "Enviando...",
@@ -100,9 +101,15 @@ OC.L10N.register(
"Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor",
"Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota",
"Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota",
+ "App up to date" : "La aplicación está actualizada",
+ "Updating …" : "Actualizando ...",
+ "Could not update app" : "No fue posible actualizar la aplicación",
"Updated" : "Actualizado",
"Removing …" : "Eliminando ...",
+ "Could not remove app" : "No fue posible eliminar la aplicación",
"Remove" : "Eliminar",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "App update" : "Actualización de la aplicación",
"Approved" : "Aprobado",
"Experimental" : "Experimental",
"No apps found for {query}" : "No se encontraron aplicaciones para {query}",
@@ -151,6 +158,8 @@ OC.L10N.register(
"Good password" : "Buena contraseña",
"Strong password" : "Contraseña fuerte",
"Groups" : "Grupos",
+ "Group list is empty" : "La lista de Grupo está vacía",
+ "Unable to retrieve the group list" : "No fue posible recuperar la lista del grupo",
"Unable to delete {objName}" : "No fue posible borrar {objName}",
"Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}",
"A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido",
@@ -253,6 +262,8 @@ OC.L10N.register(
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:",
+ "Last background job execution ran %s. Something seems wrong." : "El último trabajo de fondo corrió %s. Parece que algo está mal.",
+ "Check the background job settings" : "Verifica la configuración de los trabajos de fondo",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor verifica las <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">guias de instalación ↗</a>, y valida si hay algún error o advertencia en la <a href=\"%s\">bitácora</a>.",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Version" : "Versión",
@@ -285,6 +296,7 @@ OC.L10N.register(
"Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ",
"Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)",
"This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ",
+ "Default share permissions" : "Permisos predeterminados para compartir",
"Tips & tricks" : "Consejos & trucos",
"There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ",
"SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.",
@@ -306,7 +318,9 @@ OC.L10N.register(
"Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
"Cancel" : "Cancelar",
"Choose as profile picture" : "Seleccionar como foto del perfil",
+ "Details" : "Detalles",
"You are member of the following groups:" : "Eres miembro de los siguientes grupos:",
+ "You are using <strong>%s</strong>" : "Estás usando<strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)",
"Full name" : "Nombre completo",
"No display name set" : "No se ha establecido el nombre a desplegar",
@@ -329,6 +343,7 @@ OC.L10N.register(
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",
+ "Devices & sessions" : "Dispositivos y sesiones",
"Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
"Device" : "Dispositivo",
"Last activity" : "Última actividad",
@@ -349,6 +364,7 @@ OC.L10N.register(
"Show user backend" : "Mostrar backend del usuario",
"Show last login" : "Mostrar último inicio de sesión",
"When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ",
+ "Add user" : "Agregar usuario",
"Everyone" : "Todos",
"Admins" : "Administradores",
"Disabled" : "Deshabilitado",
@@ -357,6 +373,7 @@ OC.L10N.register(
"Unlimited" : "Ilimitado",
"Other" : "Otro",
"Group admin for" : "Administrador del grupo para",
+ "Recovery password" : "Recuperación de contraseña",
"Quota" : "Cuota",
"Storage location" : "Úbicación del almacenamiento",
"User backend" : "Backend del usuario",
@@ -372,11 +389,49 @@ OC.L10N.register(
"Migration Completed" : "Migración completada",
"Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?",
"Add trusted domain" : "Agregar un dominio de confianza",
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n actualización de la aplicación pendiente ","Tienes %n actualizaciones de la aplicación pendientes "],
+ "Updating...." : "Actualizando...",
+ "Error while updating app" : "Se presentó un error al actualizar la aplicación ",
+ "Error while removing app" : "Se presentó un error al remover la aplicación ",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida",
"A valid email must be provided" : "Se debe proporcionar un correo electrónico válido",
+ "__language_name__" : "__language_name__",
+ "Verifying" : "Verificando",
+ "Personal info" : "Información personal",
+ "Sync clients" : "Síncronizar clientes",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de tu instancia que todo esté configurado correctamente. Para ayudarte con estamos haciendo algunas verificaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información.",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ",
+ "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php y la configuración en tu servidor, específicamente al usar php-fpm. ",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ",
+ "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME. ",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información. ",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede que haya problemas con ciertos caracteres en los nombres de los archivos. ",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los siguientes locales:%s. ",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\") ",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos: ",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>. ",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de http. ",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>. ",
"You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>",
+ "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos",
+ "Desktop client" : "Cliente de escritorio",
+ "Android app" : "Aplicación Android",
+ "iOS app" : "Aplicación iOS",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si deseas soportar el proyecto ¡{contributeopen}únete al desarrollo{linkclose} o {contributeopen}pasa la voz{linkclose}! ",
+ "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Primera Ejecución",
+ "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Clientes web, de escritorio, móviles y contraseñas de aplicaciones especificas que actualmente tienen acceso a tu cuenta. ",
+ "App passwords" : "Contraseñas de aplicación",
+ "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aqui puedes generar contraseñas individuales para aplicaciones para que no tengas que dar tu contraseña. También puedes revocarlas individualmente. ",
+ "Follow us on Google+!" : "¡Síguenos en Google+!",
+ "Like our facebook page!" : "¡Da un me gusta en nuestra página de facebook!",
+ "Follow us on Twitter!" : "¡Síguenos en Twitter!",
+ "Check out our blog!" : "¡Visita nuestro blog!",
+ "Subscribe to our newsletter!" : "¡Suscribete a nuestro newsletter!",
"Show email address" : "Mostrar dirección de correo electrónico",
"Send email to new user" : "Enviar un correo electrónico al usuario nuevo",
- "Create" : "Crear"
+ "Create" : "Crear",
+ "Group name" : "Nombre del grupo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es_GT.json b/settings/l10n/es_GT.json
index 8751a9b3829..d3d1cb2d349 100644
--- a/settings/l10n/es_GT.json
+++ b/settings/l10n/es_GT.json
@@ -56,13 +56,13 @@
"%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.",
"Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ",
"Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.",
- "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s",
+ "Password for %1$s changed on %2$s" : "La contraseña de %1$s fue cambiada en %2$s",
"Password changed for %s" : "La contraseña fue cambiada para %s",
"If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ",
"%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.",
"Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ",
"Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ",
- "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s",
+ "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico de %1$s ha cambiado en %2$s",
"Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s",
"The new email address is %s" : "La nueva dirección de correo electrónico es %s",
"Your %s account was created" : "Tu cuenta %s ha sido creada",
@@ -73,10 +73,11 @@
"Set your password" : "Establece tu contraseña",
"Go to %s" : "Ir a %s",
"Install Client" : "Instalar el cliente",
+ "Logged in user must be a subadmin" : "El usuario firmado debe ser un subadministrador ",
"Password confirmation is required" : "Se requiere la confirmación de la contraseña",
"Couldn't remove app." : "No fue posible eliminar la aplicación. ",
"Couldn't update app." : "No fue posible actualizar la aplicación.",
- "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
+ "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Not saved" : "No guardado",
"Sending…" : "Enviando...",
@@ -98,9 +99,15 @@
"Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor",
"Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota",
"Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota",
+ "App up to date" : "La aplicación está actualizada",
+ "Updating …" : "Actualizando ...",
+ "Could not update app" : "No fue posible actualizar la aplicación",
"Updated" : "Actualizado",
"Removing …" : "Eliminando ...",
+ "Could not remove app" : "No fue posible eliminar la aplicación",
"Remove" : "Eliminar",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "App update" : "Actualización de la aplicación",
"Approved" : "Aprobado",
"Experimental" : "Experimental",
"No apps found for {query}" : "No se encontraron aplicaciones para {query}",
@@ -149,6 +156,8 @@
"Good password" : "Buena contraseña",
"Strong password" : "Contraseña fuerte",
"Groups" : "Grupos",
+ "Group list is empty" : "La lista de Grupo está vacía",
+ "Unable to retrieve the group list" : "No fue posible recuperar la lista del grupo",
"Unable to delete {objName}" : "No fue posible borrar {objName}",
"Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}",
"A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido",
@@ -251,6 +260,8 @@
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:",
+ "Last background job execution ran %s. Something seems wrong." : "El último trabajo de fondo corrió %s. Parece que algo está mal.",
+ "Check the background job settings" : "Verifica la configuración de los trabajos de fondo",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor verifica las <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">guias de instalación ↗</a>, y valida si hay algún error o advertencia en la <a href=\"%s\">bitácora</a>.",
"All checks passed." : "Pasaron todas las verificaciones. ",
"Version" : "Versión",
@@ -283,6 +294,7 @@
"Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ",
"Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)",
"This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ",
+ "Default share permissions" : "Permisos predeterminados para compartir",
"Tips & tricks" : "Consejos & trucos",
"There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ",
"SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.",
@@ -304,7 +316,9 @@
"Picture provided by original account" : "Imagen proporcionada por la cuenta original ",
"Cancel" : "Cancelar",
"Choose as profile picture" : "Seleccionar como foto del perfil",
+ "Details" : "Detalles",
"You are member of the following groups:" : "Eres miembro de los siguientes grupos:",
+ "You are using <strong>%s</strong>" : "Estás usando<strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)",
"Full name" : "Nombre completo",
"No display name set" : "No se ha establecido el nombre a desplegar",
@@ -327,6 +341,7 @@
"Current password" : "Contraseña actual",
"New password" : "Nueva contraseña",
"Change password" : "Cambiar contraseña",
+ "Devices & sessions" : "Dispositivos y sesiones",
"Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ",
"Device" : "Dispositivo",
"Last activity" : "Última actividad",
@@ -347,6 +362,7 @@
"Show user backend" : "Mostrar backend del usuario",
"Show last login" : "Mostrar último inicio de sesión",
"When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ",
+ "Add user" : "Agregar usuario",
"Everyone" : "Todos",
"Admins" : "Administradores",
"Disabled" : "Deshabilitado",
@@ -355,6 +371,7 @@
"Unlimited" : "Ilimitado",
"Other" : "Otro",
"Group admin for" : "Administrador del grupo para",
+ "Recovery password" : "Recuperación de contraseña",
"Quota" : "Cuota",
"Storage location" : "Úbicación del almacenamiento",
"User backend" : "Backend del usuario",
@@ -370,11 +387,49 @@
"Migration Completed" : "Migración completada",
"Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?",
"Add trusted domain" : "Agregar un dominio de confianza",
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n actualización de la aplicación pendiente ","Tienes %n actualizaciones de la aplicación pendientes "],
+ "Updating...." : "Actualizando...",
+ "Error while updating app" : "Se presentó un error al actualizar la aplicación ",
+ "Error while removing app" : "Se presentó un error al remover la aplicación ",
"A valid password must be provided" : "Se debe proporcionar una contraseña válida",
"A valid email must be provided" : "Se debe proporcionar un correo electrónico válido",
+ "__language_name__" : "__language_name__",
+ "Verifying" : "Verificando",
+ "Personal info" : "Información personal",
+ "Sync clients" : "Síncronizar clientes",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de tu instancia que todo esté configurado correctamente. Para ayudarte con estamos haciendo algunas verificaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información.",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ",
+ "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php y la configuración en tu servidor, específicamente al usar php-fpm. ",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ",
+ "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME. ",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información. ",
+ "This means that there might be problems with certain characters in file names." : "Esto significa que puede que haya problemas con ciertos caracteres en los nombres de los archivos. ",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los siguientes locales:%s. ",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\") ",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos: ",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>. ",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de http. ",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>. ",
"You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>",
+ "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos",
+ "Desktop client" : "Cliente de escritorio",
+ "Android app" : "Aplicación Android",
+ "iOS app" : "Aplicación iOS",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si deseas soportar el proyecto ¡{contributeopen}únete al desarrollo{linkclose} o {contributeopen}pasa la voz{linkclose}! ",
+ "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Primera Ejecución",
+ "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Clientes web, de escritorio, móviles y contraseñas de aplicaciones especificas que actualmente tienen acceso a tu cuenta. ",
+ "App passwords" : "Contraseñas de aplicación",
+ "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aqui puedes generar contraseñas individuales para aplicaciones para que no tengas que dar tu contraseña. También puedes revocarlas individualmente. ",
+ "Follow us on Google+!" : "¡Síguenos en Google+!",
+ "Like our facebook page!" : "¡Da un me gusta en nuestra página de facebook!",
+ "Follow us on Twitter!" : "¡Síguenos en Twitter!",
+ "Check out our blog!" : "¡Visita nuestro blog!",
+ "Subscribe to our newsletter!" : "¡Suscribete a nuestro newsletter!",
"Show email address" : "Mostrar dirección de correo electrónico",
"Send email to new user" : "Enviar un correo electrónico al usuario nuevo",
- "Create" : "Crear"
+ "Create" : "Crear",
+ "Group name" : "Nombre del grupo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/settings/l10n/fa.js b/settings/l10n/fa.js
index f8b29c78d1b..1debc05852f 100644
--- a/settings/l10n/fa.js
+++ b/settings/l10n/fa.js
@@ -157,4 +157,4 @@ OC.L10N.register(
"Send email to new user" : "ارسال ایمیل به کاربر جدید",
"Create" : "ایجاد کردن"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/settings/l10n/fa.json b/settings/l10n/fa.json
index 71232d63c66..0c17e065136 100644
--- a/settings/l10n/fa.json
+++ b/settings/l10n/fa.json
@@ -154,5 +154,5 @@
"Show email address" : "نمایش پست الکترونیکی",
"Send email to new user" : "ارسال ایمیل به کاربر جدید",
"Create" : "ایجاد کردن"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index bab08c8dcf9..67a961955ae 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -262,6 +262,8 @@ OC.L10N.register(
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Il est fortement recommandé d'installer sur votre système les paquets nécessaires à la prise en charge de l'un des paramètres régionaux suivants : %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le Cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwrite.cli.url\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "La tâche cron n'a pu s'exécuter via CLI. Ces erreurs techniques sont apparues :",
+ "Last background job execution ran %s. Something seems wrong." : "Quelque chose s'est mal passé lors de l'exécution de la dernière tâche de fond %s.",
+ "Check the background job settings" : "Vérifier les paramètres des tâches de fond",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Merci de consulter les <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">guides d'installation ↗</a> et de vérifier les erreurs ou avertissements des <a href=\"%s\">logs</a>.",
"All checks passed." : "Tous les tests ont réussi.",
"Version" : "Version",
@@ -316,7 +318,9 @@ OC.L10N.register(
"Picture provided by original account" : "Photo fournie par le compte original",
"Cancel" : "Annuler",
"Choose as profile picture" : "Définir comme image de profil",
+ "Details" : "Détails",
"You are member of the following groups:" : "Vous êtes membre des groupes suivants :",
+ "You are using <strong>%s</strong>" : "Vous utilisez <strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Vous utilisez <strong>%s</strong> sur <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Nom complet",
"No display name set" : "Aucun nom d'affichage configuré",
@@ -339,6 +343,7 @@ OC.L10N.register(
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Change password" : "Changer de mot de passe",
+ "Devices & sessions" : "Appareils & sessions",
"Web, desktop and mobile clients currently logged in to your account." : "Clients web, desktop et mobiles actuellement connectés sur votre compte.",
"Device" : "Appareil",
"Last activity" : "Dernière activité",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index c82ba7da82c..dbc4a833fb3 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -260,6 +260,8 @@
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Il est fortement recommandé d'installer sur votre système les paquets nécessaires à la prise en charge de l'un des paramètres régionaux suivants : %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le Cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwrite.cli.url\" de votre fichier config.php avec le chemin de la racine de votre installation (suggéré : \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "La tâche cron n'a pu s'exécuter via CLI. Ces erreurs techniques sont apparues :",
+ "Last background job execution ran %s. Something seems wrong." : "Quelque chose s'est mal passé lors de l'exécution de la dernière tâche de fond %s.",
+ "Check the background job settings" : "Vérifier les paramètres des tâches de fond",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Merci de consulter les <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">guides d'installation ↗</a> et de vérifier les erreurs ou avertissements des <a href=\"%s\">logs</a>.",
"All checks passed." : "Tous les tests ont réussi.",
"Version" : "Version",
@@ -314,7 +316,9 @@
"Picture provided by original account" : "Photo fournie par le compte original",
"Cancel" : "Annuler",
"Choose as profile picture" : "Définir comme image de profil",
+ "Details" : "Détails",
"You are member of the following groups:" : "Vous êtes membre des groupes suivants :",
+ "You are using <strong>%s</strong>" : "Vous utilisez <strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Vous utilisez <strong>%s</strong> sur <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Nom complet",
"No display name set" : "Aucun nom d'affichage configuré",
@@ -337,6 +341,7 @@
"Current password" : "Mot de passe actuel",
"New password" : "Nouveau mot de passe",
"Change password" : "Changer de mot de passe",
+ "Devices & sessions" : "Appareils & sessions",
"Web, desktop and mobile clients currently logged in to your account." : "Clients web, desktop et mobiles actuellement connectés sur votre compte.",
"Device" : "Appareil",
"Last activity" : "Dernière activité",
diff --git a/settings/l10n/he.js b/settings/l10n/he.js
index 911e68e79d5..d163393908e 100644
--- a/settings/l10n/he.js
+++ b/settings/l10n/he.js
@@ -217,4 +217,4 @@ OC.L10N.register(
"Send email to new user" : "שליחת דואר אלקטרוני למשתמש חדש",
"Create" : "יצירה"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);");
diff --git a/settings/l10n/he.json b/settings/l10n/he.json
index 87594941a67..058ab60965e 100644
--- a/settings/l10n/he.json
+++ b/settings/l10n/he.json
@@ -214,5 +214,5 @@
"Show email address" : "הצגת כתובת דואר אלקטרוני",
"Send email to new user" : "שליחת דואר אלקטרוני למשתמש חדש",
"Create" : "יצירה"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=4; plural=(n==1 ? 1: n == 2 ? 2 : (n % 10 == 0 and n > 10) ? 4);"
} \ No newline at end of file
diff --git a/settings/l10n/ka_GE.js b/settings/l10n/ka_GE.js
index 941f992a542..e60026a0382 100644
--- a/settings/l10n/ka_GE.js
+++ b/settings/l10n/ka_GE.js
@@ -380,7 +380,7 @@ OC.L10N.register(
"Migration Completed" : "მიგრაცია დასრულდა",
"Are you really sure you want add {domain} as trusted domain?" : "დამდვილად გსურთ {domain}-ის დამატება სანდო დომენად?",
"Add trusted domain" : "სანდო დომენის დამატება",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["თქვენ მოლოდინში გაქვთ %n აპლიკაციის განახლება"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["თქვენ მოლოდინში გაქვთ %n აპლიკაციის განახლება","თქვენ მოლოდინში გაქვთ %n აპლიკაციის განახლება"],
"Updating...." : "ნახლდება…",
"Error while updating app" : "შეცდომა აპლიკაციის განახლების დროს",
"Error while removing app" : "აპლიკაციის წაშლისას წარმოიშვა შეცდომა",
@@ -425,4 +425,4 @@ OC.L10N.register(
"Create" : "შექმნა",
"Group name" : "ჯგუფის სახელი"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=(n==1);");
diff --git a/settings/l10n/ka_GE.json b/settings/l10n/ka_GE.json
index 03cce24cdee..1d95a1ab57f 100644
--- a/settings/l10n/ka_GE.json
+++ b/settings/l10n/ka_GE.json
@@ -378,7 +378,7 @@
"Migration Completed" : "მიგრაცია დასრულდა",
"Are you really sure you want add {domain} as trusted domain?" : "დამდვილად გსურთ {domain}-ის დამატება სანდო დომენად?",
"Add trusted domain" : "სანდო დომენის დამატება",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["თქვენ მოლოდინში გაქვთ %n აპლიკაციის განახლება"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["თქვენ მოლოდინში გაქვთ %n აპლიკაციის განახლება","თქვენ მოლოდინში გაქვთ %n აპლიკაციის განახლება"],
"Updating...." : "ნახლდება…",
"Error while updating app" : "შეცდომა აპლიკაციის განახლების დროს",
"Error while removing app" : "აპლიკაციის წაშლისას წარმოიშვა შეცდომა",
@@ -422,5 +422,5 @@
"Send email to new user" : "გაუგზავნეთ ელ-წერილი ახალ მომხმარებელს",
"Create" : "შექმნა",
"Group name" : "ჯგუფის სახელი"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=(n==1);"
} \ No newline at end of file
diff --git a/settings/l10n/kn.js b/settings/l10n/kn.js
index 5bd4ca353fd..ace1620f468 100644
--- a/settings/l10n/kn.js
+++ b/settings/l10n/kn.js
@@ -91,4 +91,4 @@ OC.L10N.register(
"A valid email must be provided" : "ಮಾನ್ಯ ಬಳಕೆದಾರ ಇ-ಅಂಚೆಯನ್ನು ಒದಗಿಸಬೇಕಾಗುತ್ತದೆ",
"Create" : "ಸೃಷ್ಟಿಸಿ"
},
-"nplurals=1; plural=0;");
+"nplurals=2; plural=((n<=1 && n>= 0) ? 1);");
diff --git a/settings/l10n/kn.json b/settings/l10n/kn.json
index aa41e3f4aba..3eca4b7534d 100644
--- a/settings/l10n/kn.json
+++ b/settings/l10n/kn.json
@@ -88,5 +88,5 @@
"A valid password must be provided" : "ಸರಿಯಾದ ಬಳಕೆದಾರ ಗುಪ್ತಪದ ಒದಗಿಸಬೇಕಾಗಿದೆ",
"A valid email must be provided" : "ಮಾನ್ಯ ಬಳಕೆದಾರ ಇ-ಅಂಚೆಯನ್ನು ಒದಗಿಸಬೇಕಾಗುತ್ತದೆ",
"Create" : "ಸೃಷ್ಟಿಸಿ"
-},"pluralForm" :"nplurals=1; plural=0;"
+},"pluralForm" :"nplurals=2; plural=((n<=1 && n>= 0) ? 1);"
} \ No newline at end of file
diff --git a/settings/l10n/lt_LT.js b/settings/l10n/lt_LT.js
index e3b4118790d..1d77beffd34 100644
--- a/settings/l10n/lt_LT.js
+++ b/settings/l10n/lt_LT.js
@@ -231,4 +231,4 @@ OC.L10N.register(
"Show email address" : "Rodyti el. pašto adresą",
"Create" : "Sukurti"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);");
diff --git a/settings/l10n/lt_LT.json b/settings/l10n/lt_LT.json
index 5b9b00504db..8c1f618375e 100644
--- a/settings/l10n/lt_LT.json
+++ b/settings/l10n/lt_LT.json
@@ -228,5 +228,5 @@
"Subscribe to our newsletter!" : "Prenumeruokite mūsų naujienlaiškį!",
"Show email address" : "Rodyti el. pašto adresą",
"Create" : "Sukurti"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 1 : (n%10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 3 : n % 1 != 0 ? 4);"
} \ No newline at end of file
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index 38319d2ad70..d9ed052b3ad 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -61,7 +61,7 @@ OC.L10N.register(
"Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s",
"Password changed for %s" : "Пароль изменён для %s",
"If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.",
- "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес электронной почты на сервере %2$s.",
+ "%1$s changed your email address on %2$s." : "%1$s изменил(а) Ваш адрес электронной почты на сервере %2$s.",
"Your email address on %s was changed." : "На сервере %s был изменён адрес электронной почты Вашей учётной записи.",
"Your email address on %s was changed by an administrator." : "Ваш адрес электронной почты на сервере %s был изменён администратором.",
"Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s",
@@ -70,17 +70,17 @@ OC.L10N.register(
"Your %s account was created" : "Была создана ваша учётная запись %s ",
"Welcome aboard" : "Добро пожаловать",
"Welcome aboard %s" : "Добро пожаловать, %s!",
- "Welcome to your %s account, you can add, protect, and share your data." : "%s, добро пожаловать в вашу учётную запись. \nВы можете добавлять, настраивать права доступа и предоставлять общий доступ к вашим файлам.",
+ "Welcome to your %s account, you can add, protect, and share your data." : "%s, добро пожаловать в свою учётную запись!\nТеперь Вы можете добавить свои данные, а после настроить и открыть совместный доступ.",
"Your username is: %s" : "Ваше имя пользователя: %s",
- "Set your password" : "Установить свой пароль",
- "Go to %s" : "Передите к %s",
+ "Set your password" : "Задайте свой пароль",
+ "Go to %s" : "Перейти к %s",
"Install Client" : "Установить программу-клиент",
- "Logged in user must be a subadmin" : "Залогинившийся пользователь должен обладать правами суб-администратора",
+ "Logged in user must be a subadmin" : "Вошедший в систему пользователь должен обладать правами суб-администратора",
"Password confirmation is required" : "Требуется подтверждение пароля",
"Couldn't remove app." : "Не удалось удалить приложение.",
- "Couldn't update app." : "Невозможно обновить приложение.",
+ "Couldn't update app." : "Не удалось обновить приложение.",
"Migration in progress. Please wait until the migration is finished" : "Перенос выполняется, дождитесь завершения",
- "Migration started …" : "Начался перенос…",
+ "Migration started …" : "Перенос начат…",
"Not saved" : "Не сохранено",
"Sending…" : "Отправка…",
"Email sent" : "Письмо отправлено",
@@ -109,10 +109,10 @@ OC.L10N.register(
"Could not remove app" : "Не удалось удалить приложение.",
"Remove" : "Удалить",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Приложение было включено, но нуждается в обновлении. В течении 5 секунд будет выполнено перенаправление на страницу обновления.",
- "App update" : "Обновить приложение",
+ "App update" : "Обновление приложения",
"Approved" : "Подтвержденное",
"Experimental" : "Экспериментальное",
- "No apps found for {query}" : "По запросу «{query}» приложений не найдено",
+ "No apps found for {query}" : "По запросу «{query}» не найдено ни одного приложения",
"Enable all" : "Включить все",
"Allow filesystem access" : "Разрешить доступ к файловой системе",
"Disconnect" : "Отключить",
@@ -128,13 +128,13 @@ OC.L10N.register(
"iOS Client" : "Клиент iOS",
"Android Client" : "Клиент Android",
"Sync client - {os}" : "Клиент синхронизации - {os}",
- "This session" : "Эта сессия",
+ "This session" : "Этот сеанс работы",
"Copy" : "Копировать",
"Copied!" : "Скопировано!",
"Not supported!" : "Не поддерживается!",
"Press ⌘-C to copy." : "Нажмите ⌘-C для копирования.",
"Press Ctrl-C to copy." : "Нажмите Ctrl-C для копирования.",
- "Error while loading browser sessions and device tokens" : "Ошибка при загрузке браузерных сессий и токенов устройств",
+ "Error while loading browser sessions and device tokens" : "Ошибка при загрузке сеансов работы браузера и токенов устройств",
"Error while creating device token" : "Ошибка при создании токена для устройства",
"Error while deleting the token" : "Ошибка при удалении токена устройства",
"An error occurred. Please upload an ASCII-encoded PEM certificate." : "Произошла ошибка. Пожалуйста загрузите сертификат PEM в ASCII кодировке.",
@@ -262,6 +262,8 @@ OC.L10N.register(
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Настойчиво рекомендуем установить требуемые пакеты для вашей системы для поддержки одного из следующих языков: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "В случае установки не в корне домена и использования системного планировщика Cron возможны проблемы с правильной генерацией URL. Для их избежания, установите настройке «overwrite.cli.url» в файле config.php значение, равное пути папки установки. (Предположительно: «%s».)",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Не удаётся запустить задачу планировщика с использованием CLI (интерфейса командной строки). Произошли следующие технические ошибки:",
+ "Last background job execution ran %s. Something seems wrong." : "Последняя фоновая задача была выполнена в %s. Похоже, что-то не в порядке.",
+ "Check the background job settings" : "Проверьте параметры выполнения фоновых задач",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Пожалуйста перечитайте <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\"> инструкции по установке</a> и проверьте <a href=\"%s\"> логи </a> на предмет наличия ошибок и предупреждений",
"All checks passed." : "Все проверки пройдены.",
"Version" : "Версия",
@@ -316,7 +318,9 @@ OC.L10N.register(
"Picture provided by original account" : "Картинка из исходной учетной записи",
"Cancel" : "Отмена",
"Choose as profile picture" : "Выбрать в качестве картинки профиля",
+ "Details" : "Подробности",
"You are member of the following groups:" : "Вы являетесь членом следующих групп:",
+ "You are using <strong>%s</strong>" : "Вы используете <strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Вы используете <strong>%s</strong> из <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Полное имя",
"No display name set" : "Отображаемое имя не указано",
@@ -339,6 +343,7 @@ OC.L10N.register(
"Current password" : "Текущий пароль",
"New password" : "Новый пароль",
"Change password" : "Сменить пароль",
+ "Devices & sessions" : "Устройства и сеансы работы",
"Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.",
"Device" : "Устройство",
"Last activity" : "Последние действия",
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index 80e331ea786..6c43731ee17 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -59,7 +59,7 @@
"Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s",
"Password changed for %s" : "Пароль изменён для %s",
"If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.",
- "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес электронной почты на сервере %2$s.",
+ "%1$s changed your email address on %2$s." : "%1$s изменил(а) Ваш адрес электронной почты на сервере %2$s.",
"Your email address on %s was changed." : "На сервере %s был изменён адрес электронной почты Вашей учётной записи.",
"Your email address on %s was changed by an administrator." : "Ваш адрес электронной почты на сервере %s был изменён администратором.",
"Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s",
@@ -68,17 +68,17 @@
"Your %s account was created" : "Была создана ваша учётная запись %s ",
"Welcome aboard" : "Добро пожаловать",
"Welcome aboard %s" : "Добро пожаловать, %s!",
- "Welcome to your %s account, you can add, protect, and share your data." : "%s, добро пожаловать в вашу учётную запись. \nВы можете добавлять, настраивать права доступа и предоставлять общий доступ к вашим файлам.",
+ "Welcome to your %s account, you can add, protect, and share your data." : "%s, добро пожаловать в свою учётную запись!\nТеперь Вы можете добавить свои данные, а после настроить и открыть совместный доступ.",
"Your username is: %s" : "Ваше имя пользователя: %s",
- "Set your password" : "Установить свой пароль",
- "Go to %s" : "Передите к %s",
+ "Set your password" : "Задайте свой пароль",
+ "Go to %s" : "Перейти к %s",
"Install Client" : "Установить программу-клиент",
- "Logged in user must be a subadmin" : "Залогинившийся пользователь должен обладать правами суб-администратора",
+ "Logged in user must be a subadmin" : "Вошедший в систему пользователь должен обладать правами суб-администратора",
"Password confirmation is required" : "Требуется подтверждение пароля",
"Couldn't remove app." : "Не удалось удалить приложение.",
- "Couldn't update app." : "Невозможно обновить приложение.",
+ "Couldn't update app." : "Не удалось обновить приложение.",
"Migration in progress. Please wait until the migration is finished" : "Перенос выполняется, дождитесь завершения",
- "Migration started …" : "Начался перенос…",
+ "Migration started …" : "Перенос начат…",
"Not saved" : "Не сохранено",
"Sending…" : "Отправка…",
"Email sent" : "Письмо отправлено",
@@ -107,10 +107,10 @@
"Could not remove app" : "Не удалось удалить приложение.",
"Remove" : "Удалить",
"The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Приложение было включено, но нуждается в обновлении. В течении 5 секунд будет выполнено перенаправление на страницу обновления.",
- "App update" : "Обновить приложение",
+ "App update" : "Обновление приложения",
"Approved" : "Подтвержденное",
"Experimental" : "Экспериментальное",
- "No apps found for {query}" : "По запросу «{query}» приложений не найдено",
+ "No apps found for {query}" : "По запросу «{query}» не найдено ни одного приложения",
"Enable all" : "Включить все",
"Allow filesystem access" : "Разрешить доступ к файловой системе",
"Disconnect" : "Отключить",
@@ -126,13 +126,13 @@
"iOS Client" : "Клиент iOS",
"Android Client" : "Клиент Android",
"Sync client - {os}" : "Клиент синхронизации - {os}",
- "This session" : "Эта сессия",
+ "This session" : "Этот сеанс работы",
"Copy" : "Копировать",
"Copied!" : "Скопировано!",
"Not supported!" : "Не поддерживается!",
"Press ⌘-C to copy." : "Нажмите ⌘-C для копирования.",
"Press Ctrl-C to copy." : "Нажмите Ctrl-C для копирования.",
- "Error while loading browser sessions and device tokens" : "Ошибка при загрузке браузерных сессий и токенов устройств",
+ "Error while loading browser sessions and device tokens" : "Ошибка при загрузке сеансов работы браузера и токенов устройств",
"Error while creating device token" : "Ошибка при создании токена для устройства",
"Error while deleting the token" : "Ошибка при удалении токена устройства",
"An error occurred. Please upload an ASCII-encoded PEM certificate." : "Произошла ошибка. Пожалуйста загрузите сертификат PEM в ASCII кодировке.",
@@ -260,6 +260,8 @@
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Настойчиво рекомендуем установить требуемые пакеты для вашей системы для поддержки одного из следующих языков: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "В случае установки не в корне домена и использования системного планировщика Cron возможны проблемы с правильной генерацией URL. Для их избежания, установите настройке «overwrite.cli.url» в файле config.php значение, равное пути папки установки. (Предположительно: «%s».)",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Не удаётся запустить задачу планировщика с использованием CLI (интерфейса командной строки). Произошли следующие технические ошибки:",
+ "Last background job execution ran %s. Something seems wrong." : "Последняя фоновая задача была выполнена в %s. Похоже, что-то не в порядке.",
+ "Check the background job settings" : "Проверьте параметры выполнения фоновых задач",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Пожалуйста перечитайте <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\"> инструкции по установке</a> и проверьте <a href=\"%s\"> логи </a> на предмет наличия ошибок и предупреждений",
"All checks passed." : "Все проверки пройдены.",
"Version" : "Версия",
@@ -314,7 +316,9 @@
"Picture provided by original account" : "Картинка из исходной учетной записи",
"Cancel" : "Отмена",
"Choose as profile picture" : "Выбрать в качестве картинки профиля",
+ "Details" : "Подробности",
"You are member of the following groups:" : "Вы являетесь членом следующих групп:",
+ "You are using <strong>%s</strong>" : "Вы используете <strong>%s</strong>",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Вы используете <strong>%s</strong> из <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Полное имя",
"No display name set" : "Отображаемое имя не указано",
@@ -337,6 +341,7 @@
"Current password" : "Текущий пароль",
"New password" : "Новый пароль",
"Change password" : "Сменить пароль",
+ "Devices & sessions" : "Устройства и сеансы работы",
"Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.",
"Device" : "Устройство",
"Last activity" : "Последние действия",
diff --git a/settings/l10n/sk.js b/settings/l10n/sk.js
index 9c3c47b32a3..083b83f8945 100644
--- a/settings/l10n/sk.js
+++ b/settings/l10n/sk.js
@@ -392,4 +392,4 @@ OC.L10N.register(
"Create" : "Vytvoriť",
"Group name" : "Názov skupiny"
},
-"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
+"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);");
diff --git a/settings/l10n/sk.json b/settings/l10n/sk.json
index b55f6b5b719..701b828a054 100644
--- a/settings/l10n/sk.json
+++ b/settings/l10n/sk.json
@@ -389,5 +389,5 @@
"Send email to new user" : "Odoslať email novému používateľovi",
"Create" : "Vytvoriť",
"Group name" : "Názov skupiny"
-},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
+},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 ? 4: n==1 ? 1: n % 1 == 0 && n>=2 && n<=4 ? 3);"
} \ No newline at end of file
diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js
index 98e727f0bf1..fa5cc606ab0 100644
--- a/settings/l10n/sr.js
+++ b/settings/l10n/sr.js
@@ -262,6 +262,8 @@ OC.L10N.register(
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:",
+ "Last background job execution ran %s. Something seems wrong." : "Последњи извршени посао у позадини: %s. Нешто изгледа није у реду.",
+ "Check the background job settings" : "Проверите поставке послова у позадини",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Добро погледајте <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">инсталациону документацију ↗</a> и проверите за било какве грешке или упозорења у <a href=\"%s\">записнику</a>.",
"All checks passed." : "Све провере успешно прошле.",
"Version" : "Верзија",
@@ -341,6 +343,7 @@ OC.L10N.register(
"Current password" : "Тренутна лозинка",
"New password" : "Нова лозинка",
"Change password" : "Измени лозинку",
+ "Devices & sessions" : "Уређаји & сесије",
"Web, desktop and mobile clients currently logged in to your account." : "Веб, рачунарски и мобилни клијенти тренутно пријављени на Ваш налог.",
"Device" : "Уређај",
"Last activity" : "Последња активност",
diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json
index 703cf18fc0b..18b0884df27 100644
--- a/settings/l10n/sr.json
+++ b/settings/l10n/sr.json
@@ -260,6 +260,8 @@
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Препоручујемо да инсталирате потребне пакете да бисте подржали следеће локалитете: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:",
+ "Last background job execution ran %s. Something seems wrong." : "Последњи извршени посао у позадини: %s. Нешто изгледа није у реду.",
+ "Check the background job settings" : "Проверите поставке послова у позадини",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Добро погледајте <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">инсталациону документацију ↗</a> и проверите за било какве грешке или упозорења у <a href=\"%s\">записнику</a>.",
"All checks passed." : "Све провере успешно прошле.",
"Version" : "Верзија",
@@ -339,6 +341,7 @@
"Current password" : "Тренутна лозинка",
"New password" : "Нова лозинка",
"Change password" : "Измени лозинку",
+ "Devices & sessions" : "Уређаји & сесије",
"Web, desktop and mobile clients currently logged in to your account." : "Веб, рачунарски и мобилни клијенти тренутно пријављени на Ваш налог.",
"Device" : "Уређај",
"Last activity" : "Последња активност",
diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js
index 8eb32f9b55c..0b55e800366 100644
--- a/settings/l10n/tr.js
+++ b/settings/l10n/tr.js
@@ -262,6 +262,8 @@ OC.L10N.register(
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Şu dillerden birini desteklemesi için sisteminize gerekli paketleri kurmanız önemle önerilir: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Kurulumunuz etki alanının kök klasörüne yapılmamış ve sistem Zamanlanmış Görevini kullanıyorsa, İnternet adresi oluşturma sorunları oluşabilir. Bu sorunların önüne geçmek için, kurulumunuzun config.php dosyasındaki \"overwrite.cli.url\" seçeneğini web kök klasörü olarak ayarlayın (Önerilen: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Zamanlanmış görev CLI üzerinden çalıştırılamadı. Şu teknik sorunlar çıktı:",
+ "Last background job execution ran %s. Something seems wrong." : "Görevin art alanda son yürütülmesi: %s. Bir şeyler yanlış görünüyor.",
+ "Check the background job settings" : "Art alan görevi ayarlarını denetleyin",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Lütfen <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">kurulum rehberlerini↗</a> yeniden gözden geçirin ve <a href=\"%s\">günlük</a> kayıtlarındaki hata ve uyarılara bakın.",
"All checks passed." : "Tüm denetimlerden geçti.",
"Version" : "Sürüm",
@@ -316,7 +318,9 @@ OC.L10N.register(
"Picture provided by original account" : "Görsel özgün hesabınız tarafından sağlanıyor",
"Cancel" : "İptal",
"Choose as profile picture" : "Profil görseli olarak seç",
+ "Details" : "Ayrıntılar",
"You are member of the following groups:" : "Şu gruplara üyesiniz:",
+ "You are using <strong>%s</strong>" : "<strong>%s</strong> kullanıyorsunuz",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Kullandığınız: <strong>%s</strong> Kullanabileceğiniz: <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Tam ad",
"No display name set" : "Görüntülenecek ad belirtilmemiş",
@@ -339,6 +343,7 @@ OC.L10N.register(
"Current password" : "Geçerli parola",
"New password" : "Yeni parola",
"Change password" : "Parola değiştir",
+ "Devices & sessions" : "Aygıt ve oturumlar",
"Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza oturum açmış web, masaüstü ve mobil istemciler.",
"Device" : "Aygıt",
"Last activity" : "Son işlem",
diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json
index fbdf8693114..d973bbec1fc 100644
--- a/settings/l10n/tr.json
+++ b/settings/l10n/tr.json
@@ -260,6 +260,8 @@
"It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Şu dillerden birini desteklemesi için sisteminize gerekli paketleri kurmanız önemle önerilir: %s.",
"If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Kurulumunuz etki alanının kök klasörüne yapılmamış ve sistem Zamanlanmış Görevini kullanıyorsa, İnternet adresi oluşturma sorunları oluşabilir. Bu sorunların önüne geçmek için, kurulumunuzun config.php dosyasındaki \"overwrite.cli.url\" seçeneğini web kök klasörü olarak ayarlayın (Önerilen: \"%s\")",
"It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Zamanlanmış görev CLI üzerinden çalıştırılamadı. Şu teknik sorunlar çıktı:",
+ "Last background job execution ran %s. Something seems wrong." : "Görevin art alanda son yürütülmesi: %s. Bir şeyler yanlış görünüyor.",
+ "Check the background job settings" : "Art alan görevi ayarlarını denetleyin",
"Please double check the <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Lütfen <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"%s\">kurulum rehberlerini↗</a> yeniden gözden geçirin ve <a href=\"%s\">günlük</a> kayıtlarındaki hata ve uyarılara bakın.",
"All checks passed." : "Tüm denetimlerden geçti.",
"Version" : "Sürüm",
@@ -314,7 +316,9 @@
"Picture provided by original account" : "Görsel özgün hesabınız tarafından sağlanıyor",
"Cancel" : "İptal",
"Choose as profile picture" : "Profil görseli olarak seç",
+ "Details" : "Ayrıntılar",
"You are member of the following groups:" : "Şu gruplara üyesiniz:",
+ "You are using <strong>%s</strong>" : "<strong>%s</strong> kullanıyorsunuz",
"You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Kullandığınız: <strong>%s</strong> Kullanabileceğiniz: <strong>%s</strong> (<strong>%s %%</strong>)",
"Full name" : "Tam ad",
"No display name set" : "Görüntülenecek ad belirtilmemiş",
@@ -337,6 +341,7 @@
"Current password" : "Geçerli parola",
"New password" : "Yeni parola",
"Change password" : "Parola değiştir",
+ "Devices & sessions" : "Aygıt ve oturumlar",
"Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza oturum açmış web, masaüstü ve mobil istemciler.",
"Device" : "Aygıt",
"Last activity" : "Son işlem",
diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js
index d4c0917ccf0..4392ff6f431 100644
--- a/settings/l10n/uk.js
+++ b/settings/l10n/uk.js
@@ -182,4 +182,4 @@ OC.L10N.register(
"Send email to new user" : "Надіслати email новому користувачу",
"Create" : "Створити"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));");
diff --git a/settings/l10n/uk.json b/settings/l10n/uk.json
index 9cfeceadc3c..6ce4a155707 100644
--- a/settings/l10n/uk.json
+++ b/settings/l10n/uk.json
@@ -179,5 +179,5 @@
"Show email address" : "Показати адресу електронної пошти",
"Send email to new user" : "Надіслати email новому користувачу",
"Create" : "Створити"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=( n % 1 == 0 && n % 10 =1 && n % 100 != 11) ? 1 : ( n %1 == 0 && ( n >= 2 && n <=4) && ( n % 100 <12 || n % 100 > 14)) ? 3 : ( n % 1 ==0 && (n% 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14));"
} \ No newline at end of file
diff --git a/tests/Core/Controller/CssControllerTest.php b/tests/Core/Controller/CssControllerTest.php
index 8ec15f449a0..f4e6e83201e 100644
--- a/tests/Core/Controller/CssControllerTest.php
+++ b/tests/Core/Controller/CssControllerTest.php
@@ -23,6 +23,7 @@
namespace Tests\Core\Controller;
use OC\Core\Controller\CssController;
+use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\FileDisplayResponse;
@@ -51,7 +52,7 @@ class CssControllerTest extends TestCase {
/** @var Factory|\PHPUnit_Framework_MockObject_MockObject $factory */
$factory = $this->createMock(Factory::class);
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
$factory->expects($this->once())
->method('get')
->with('css')
diff --git a/tests/Core/Controller/JsControllerTest.php b/tests/Core/Controller/JsControllerTest.php
index 3910045276b..307ef837786 100644
--- a/tests/Core/Controller/JsControllerTest.php
+++ b/tests/Core/Controller/JsControllerTest.php
@@ -23,6 +23,7 @@
namespace Tests\Core\Controller;
use OC\Core\Controller\JsController;
+use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\FileDisplayResponse;
@@ -51,7 +52,7 @@ class JsControllerTest extends TestCase {
/** @var Factory|\PHPUnit_Framework_MockObject_MockObject $factory */
$factory = $this->createMock(Factory::class);
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
$factory->expects($this->once())
->method('get')
->with('js')
diff --git a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php
index 59dc7366cc0..1465e09d08b 100644
--- a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php
+++ b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php
@@ -23,6 +23,7 @@ namespace Test\App\AppStore\Fetcher;
use OC\App\AppStore\Fetcher\AppFetcher;
use OC\App\CompareVersion;
+use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Files\IAppData;
@@ -63,7 +64,7 @@ EOD;
/** @var Factory|PHPUnit_Framework_MockObject_MockObject $factory */
$factory = $this->createMock(Factory::class);
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
$factory->expects($this->once())
->method('get')
->with('appstore')
diff --git a/tests/lib/App/AppStore/Fetcher/FetcherBase.php b/tests/lib/App/AppStore/Fetcher/FetcherBase.php
index 90b7523d850..851773a6506 100644
--- a/tests/lib/App/AppStore/Fetcher/FetcherBase.php
+++ b/tests/lib/App/AppStore/Fetcher/FetcherBase.php
@@ -22,6 +22,7 @@
namespace Test\App\AppStore\Fetcher;
use OC\App\AppStore\Fetcher\Fetcher;
+use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Files\IAppData;
@@ -58,7 +59,7 @@ abstract class FetcherBase extends TestCase {
public function setUp() {
parent::setUp();
$this->appDataFactory = $this->createMock(Factory::class);
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
$this->appDataFactory->expects($this->once())
->method('get')
->with('appstore')
diff --git a/tests/lib/Authentication/Token/DefaultTokenProviderTest.php b/tests/lib/Authentication/Token/DefaultTokenProviderTest.php
index 08c74961c0d..95b5b928559 100644
--- a/tests/lib/Authentication/Token/DefaultTokenProviderTest.php
+++ b/tests/lib/Authentication/Token/DefaultTokenProviderTest.php
@@ -24,10 +24,11 @@ namespace Test\Authentication\Token;
use OC\Authentication\Exceptions\InvalidTokenException;
use OC\Authentication\Token\DefaultToken;
+use OC\Authentication\Token\DefaultTokenMapper;
use OC\Authentication\Token\DefaultTokenProvider;
+use OC\Authentication\Token\ExpiredTokenException;
use OC\Authentication\Token\IToken;
use OCP\AppFramework\Db\DoesNotExistException;
-use OCP\AppFramework\Db\Mapper;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IConfig;
use OCP\ILogger;
@@ -39,7 +40,7 @@ class DefaultTokenProviderTest extends TestCase {
/** @var DefaultTokenProvider|\PHPUnit_Framework_MockObject_MockObject */
private $tokenProvider;
- /** @var Mapper|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var DefaultTokenMapper|\PHPUnit_Framework_MockObject_MockObject */
private $mapper;
/** @var ICrypto|\PHPUnit_Framework_MockObject_MockObject */
private $crypto;
@@ -55,9 +56,7 @@ class DefaultTokenProviderTest extends TestCase {
protected function setUp() {
parent::setUp();
- $this->mapper = $this->getMockBuilder('\OC\Authentication\Token\DefaultTokenMapper')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->mapper = $this->createMock(DefaultTokenMapper::class);
$this->crypto = $this->createMock(ICrypto::class);
$this->config = $this->createMock(IConfig::class);
$this->logger = $this->createMock(ILogger::class);
@@ -397,6 +396,63 @@ class DefaultTokenProviderTest extends TestCase {
$this->tokenProvider->renewSessionToken('oldId', 'newId');
}
+ public function testGetToken() {
+ $token = new DefaultToken();
+
+ $this->config->method('getSystemValue')
+ ->with('secret')
+ ->willReturn('mysecret');
+
+ $this->mapper->method('getToken')
+ ->with(
+ $this->callback(function (string $token) {
+ return hash('sha512', 'unhashedTokenmysecret') === $token;
+ })
+ )->willReturn($token);
+
+ $this->assertSame($token, $this->tokenProvider->getToken('unhashedToken'));
+ }
+
+ public function testGetInvalidToken() {
+ $this->expectException(InvalidTokenException::class);
+
+ $this->config->method('getSystemValue')
+ ->with('secret')
+ ->willReturn('mysecret');
+
+ $this->mapper->method('getToken')
+ ->with(
+ $this->callback(function (string $token) {
+ return hash('sha512', 'unhashedTokenmysecret') === $token;
+ })
+ )->willThrowException(new InvalidTokenException());
+
+ $this->tokenProvider->getToken('unhashedToken');
+ }
+
+ public function testGetExpiredToken() {
+ $token = new DefaultToken();
+ $token->setExpires(42);
+
+ $this->config->method('getSystemValue')
+ ->with('secret')
+ ->willReturn('mysecret');
+
+ $this->mapper->method('getToken')
+ ->with(
+ $this->callback(function (string $token) {
+ return hash('sha512', 'unhashedTokenmysecret') === $token;
+ })
+ )->willReturn($token);
+
+ try {
+ $this->tokenProvider->getToken('unhashedToken');
+ } catch (ExpiredTokenException $e) {
+ $this->assertSame($token, $e->getToken());
+ }
+
+ }
+
public function testGetTokenById() {
$token = $this->createMock(DefaultToken::class);
@@ -418,4 +474,63 @@ class DefaultTokenProviderTest extends TestCase {
$this->tokenProvider->getTokenById(42);
}
+
+ public function testGetExpiredTokenById() {
+ $token = new DefaultToken();
+ $token->setExpires(42);
+
+ $this->mapper->expects($this->once())
+ ->method('getTokenById')
+ ->with($this->equalTo(42))
+ ->willReturn($token);
+
+ try {
+ $this->tokenProvider->getTokenById(42);
+ $this->fail();
+ } catch (ExpiredTokenException $e) {
+ $this->assertSame($token, $e->getToken());
+ }
+ }
+
+ public function testRotate() {
+ $token = new DefaultToken();
+ $token->setPassword('oldencryptedpassword');
+
+ $this->config->method('getSystemValue')
+ ->with('secret')
+ ->willReturn('mysecret');
+
+ $this->crypto->method('decrypt')
+ ->with('oldencryptedpassword', 'oldtokenmysecret')
+ ->willReturn('mypassword');
+ $this->crypto->method('encrypt')
+ ->with('mypassword', 'newtokenmysecret')
+ ->willReturn('newencryptedpassword');
+
+ $this->mapper->expects($this->once())
+ ->method('update')
+ ->with($this->callback(function (DefaultToken $token) {
+ return $token->getPassword() === 'newencryptedpassword' &&
+ $token->getToken() === hash('sha512', 'newtokenmysecret');
+ }));
+
+ $this->tokenProvider->rotate($token, 'oldtoken', 'newtoken');
+ }
+
+ public function testRotateNoPassword() {
+ $token = new DefaultToken();
+
+ $this->config->method('getSystemValue')
+ ->with('secret')
+ ->willReturn('mysecret');
+
+ $this->mapper->expects($this->once())
+ ->method('update')
+ ->with($this->callback(function (DefaultToken $token) {
+ return $token->getPassword() === null &&
+ $token->getToken() === hash('sha512', 'newtokenmysecret');
+ }));
+
+ $this->tokenProvider->rotate($token, 'oldtoken', 'newtoken');
+ }
}
diff --git a/tests/lib/Authentication/Token/DefaultTokenTest.php b/tests/lib/Authentication/Token/DefaultTokenTest.php
index f00c32ccaf5..76b976586a9 100644
--- a/tests/lib/Authentication/Token/DefaultTokenTest.php
+++ b/tests/lib/Authentication/Token/DefaultTokenTest.php
@@ -33,14 +33,6 @@ class DefaultTokenTest extends TestCase {
$this->assertEquals($scope, $token->getScopeAsArray());
}
- public function testSetScopeAsString() {
- $scope = ['filesystem' => false];
- $token = new DefaultToken();
- $token->setScope(json_encode($scope));
- $this->assertEquals(json_encode($scope), $token->getScope());
- $this->assertEquals($scope, $token->getScopeAsArray());
- }
-
public function testDefaultScope() {
$scope = ['filesystem' => true];
$token = new DefaultToken();
diff --git a/tests/lib/Preview/BackgroundCleanupJobTest.php b/tests/lib/Preview/BackgroundCleanupJobTest.php
new file mode 100644
index 00000000000..9d10da025dd
--- /dev/null
+++ b/tests/lib/Preview/BackgroundCleanupJobTest.php
@@ -0,0 +1,159 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018, Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\Preview;
+
+use OC\Files\AppData\Factory;
+use OC\Preview\BackgroundCleanupJob;
+use OC\PreviewManager;
+use OCP\Files\IRootFolder;
+use OCP\IDBConnection;
+use Test\Traits\MountProviderTrait;
+use Test\Traits\UserTrait;
+
+/**
+ * Class BackgroundCleanupJobTest
+ *
+ * @group DB
+ *
+ * @package Test\Preview
+ */
+class BackgroundCleanupJobTest extends \Test\TestCase {
+
+ use MountProviderTrait;
+ use UserTrait;
+
+ /** @var string */
+ private $userId;
+
+ /** @var bool */
+ private $trashEnabled;
+
+ /** @var Factory */
+ private $appDataFactory;
+
+ /** @var IDBConnection */
+ private $connection;
+
+ /** @var PreviewManager */
+ private $previewManager;
+
+ /** @var IRootFolder */
+ private $rootFolder;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->userId = $this->getUniqueID();
+ $this->createUser($this->userId, $this->userId);
+
+ $storage = new \OC\Files\Storage\Temporary([]);
+ $this->registerMount($this->userId, $storage, '');
+
+ $this->loginAsUser($this->userId);
+ $this->logout();
+ $this->loginAsUser($this->userId);
+
+ $appManager = \OC::$server->getAppManager();
+ $this->trashEnabled = $appManager->isEnabledForUser('files_trashbin', $this->userId);
+ $appManager->disableApp('files_trashbin');
+
+ $this->appDataFactory = \OC::$server->query(Factory::class);
+ $this->connection = \OC::$server->getDatabaseConnection();
+ $this->previewManager = \OC::$server->getPreviewManager();
+ $this->rootFolder = \OC::$server->getRootFolder();
+ }
+
+ public function tearDown() {
+ if ($this->trashEnabled) {
+ $appManager = \OC::$server->getAppManager();
+ $appManager->enableApp('files_trashbin');
+ }
+
+ $this->logout();
+
+ return parent::tearDown();
+ }
+
+ private function setup11Previews(): array {
+ $userFolder = $this->rootFolder->getUserFolder($this->userId);
+
+ $files = [];
+ for ($i = 0; $i < 11; $i++) {
+ $file = $userFolder->newFile($i.'.txt');
+ $file->putContent('hello world!');
+ $this->previewManager->getPreview($file);
+ $files[] = $file;
+ }
+
+ return $files;
+ }
+
+ public function testCleanupSystemCron() {
+ $files = $this->setup11Previews();
+
+ $preview = $this->appDataFactory->get('preview');
+
+ $previews = $preview->getDirectoryListing();
+ $this->assertCount(11, $previews);
+
+ $job = new BackgroundCleanupJob($this->connection, $this->appDataFactory, true);
+ $job->run([]);
+
+ foreach ($files as $file) {
+ $file->delete();
+ }
+
+ $this->assertCount(11, $previews);
+ $job->run([]);
+
+ $previews = $preview->getDirectoryListing();
+ $this->assertCount(0, $previews);
+ }
+
+ public function testCleanupAjax() {
+ $files = $this->setup11Previews();
+
+ $preview = $this->appDataFactory->get('preview');
+
+ $previews = $preview->getDirectoryListing();
+ $this->assertCount(11, $previews);
+
+ $job = new BackgroundCleanupJob($this->connection, $this->appDataFactory, false);
+ $job->run([]);
+
+ foreach ($files as $file) {
+ $file->delete();
+ }
+
+ $this->assertCount(11, $previews);
+ $job->run([]);
+
+ $previews = $preview->getDirectoryListing();
+ $this->assertCount(1, $previews);
+
+ $job->run([]);
+
+ $previews = $preview->getDirectoryListing();
+ $this->assertCount(0, $previews);
+ }
+}
diff --git a/tests/lib/Security/IdentityProof/ManagerTest.php b/tests/lib/Security/IdentityProof/ManagerTest.php
index 290e7be5c94..9d17182e52e 100644
--- a/tests/lib/Security/IdentityProof/ManagerTest.php
+++ b/tests/lib/Security/IdentityProof/ManagerTest.php
@@ -21,6 +21,7 @@
namespace Test\Security\IdentityProof;
+use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OC\Security\IdentityProof\Key;
use OC\Security\IdentityProof\Manager;
@@ -50,7 +51,7 @@ class ManagerTest extends TestCase {
/** @var Factory|\PHPUnit_Framework_MockObject_MockObject $factory */
$this->factory = $this->createMock(Factory::class);
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
$this->config = $this->createMock(IConfig::class);
$this->factory->expects($this->any())
->method('get')
diff --git a/tests/lib/Template/CSSResourceLocatorTest.php b/tests/lib/Template/CSSResourceLocatorTest.php
index 5e2c3705efa..a8b123b8d5b 100644
--- a/tests/lib/Template/CSSResourceLocatorTest.php
+++ b/tests/lib/Template/CSSResourceLocatorTest.php
@@ -23,6 +23,7 @@
namespace Test\Template;
+use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OCP\Files\IAppData;
use OCP\ICacheFactory;
@@ -51,7 +52,7 @@ class CSSResourceLocatorTest extends \Test\TestCase {
parent::setUp();
$this->logger = $this->createMock(ILogger::class);
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
$this->config = $this->createMock(IConfig::class);
$this->cacheFactory = $this->createMock(ICacheFactory::class);
diff --git a/tests/lib/Template/SCSSCacherTest.php b/tests/lib/Template/SCSSCacherTest.php
index a55ba30711b..5e3700477ff 100644
--- a/tests/lib/Template/SCSSCacherTest.php
+++ b/tests/lib/Template/SCSSCacherTest.php
@@ -23,6 +23,7 @@
namespace Test\Template;
+use OC\Files\AppData\AppData;
use OC\Files\AppData\Factory;
use OC\Template\SCSSCacher;
use OCA\Theming\ThemingDefaults;
@@ -58,7 +59,7 @@ class SCSSCacherTest extends \Test\TestCase {
protected function setUp() {
parent::setUp();
$this->logger = $this->createMock(ILogger::class);
- $this->appData = $this->createMock(IAppData::class);
+ $this->appData = $this->createMock(AppData::class);
/** @var Factory|\PHPUnit_Framework_MockObject_MockObject $factory */
$factory = $this->createMock(Factory::class);
diff --git a/tests/lib/User/SessionTest.php b/tests/lib/User/SessionTest.php
index 9a5a45c46c5..24677b57dd6 100644
--- a/tests/lib/User/SessionTest.php
+++ b/tests/lib/User/SessionTest.php
@@ -581,6 +581,8 @@ class SessionTest extends \Test\TestCase {
$tokenObject->expects($this->once())
->method('getLoginName')
->willReturn('foobar');
+ $tokenObject->method('getId')
+ ->willReturn(42);
$this->tokenProvider->expects($this->once())
->method('getToken')
->with($sessionId)
@@ -593,15 +595,22 @@ class SessionTest extends \Test\TestCase {
->method('setMagicInCookie');
$user->expects($this->once())
->method('updateLastLoginTimestamp');
- $session->expects($this->once())
+ $setUID = false;
+ $session
->method('set')
- ->with('user_id', 'foo');
+ ->will($this->returnCallback(function ($k, $v) use (&$setUID) {
+ if ($k === 'user_id' && $v === 'foo') {
+ $setUID = true;
+ }
+ }));
$userSession->expects($this->once())
->method('setLoginName')
->willReturn('foobar');
$granted = $userSession->loginWithCookie('foo', $token, $oldSessionId);
+ $this->assertTrue($setUID);
+
$this->assertTrue($granted);
}
diff --git a/version.php b/version.php
index bd0de81ff33..a7b0fdbcc67 100644
--- a/version.php
+++ b/version.php
@@ -29,7 +29,7 @@
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
// when updating major/minor version number.
-$OC_Version = array(14, 0, 0, 2);
+$OC_Version = array(14, 0, 0, 4);
// The human readable string
$OC_VersionString = '14.0.0 alpha';