aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.scrutinizer.yml4
m---------3rdparty0
-rw-r--r--apps/encryption/appinfo/application.php6
-rw-r--r--apps/encryption/controller/recoverycontroller.php100
-rw-r--r--apps/encryption/css/settings-admin.css23
-rw-r--r--apps/encryption/js/settings-admin.js93
-rw-r--r--apps/encryption/js/settings-personal.js50
-rw-r--r--apps/encryption/l10n/ar.js11
-rw-r--r--apps/encryption/l10n/ar.json11
-rw-r--r--apps/encryption/l10n/ast.js11
-rw-r--r--apps/encryption/l10n/ast.json11
-rw-r--r--apps/encryption/l10n/az.js11
-rw-r--r--apps/encryption/l10n/az.json11
-rw-r--r--apps/encryption/l10n/bg_BG.js11
-rw-r--r--apps/encryption/l10n/bg_BG.json11
-rw-r--r--apps/encryption/l10n/bn_BD.js10
-rw-r--r--apps/encryption/l10n/bn_BD.json10
-rw-r--r--apps/encryption/l10n/ca.js11
-rw-r--r--apps/encryption/l10n/ca.json11
-rw-r--r--apps/encryption/l10n/cs_CZ.js22
-rw-r--r--apps/encryption/l10n/cs_CZ.json22
-rw-r--r--apps/encryption/l10n/da.js13
-rw-r--r--apps/encryption/l10n/da.json13
-rw-r--r--apps/encryption/l10n/de.js22
-rw-r--r--apps/encryption/l10n/de.json22
-rw-r--r--apps/encryption/l10n/de_DE.js22
-rw-r--r--apps/encryption/l10n/de_DE.json22
-rw-r--r--apps/encryption/l10n/el.js22
-rw-r--r--apps/encryption/l10n/el.json22
-rw-r--r--apps/encryption/l10n/en_GB.js13
-rw-r--r--apps/encryption/l10n/en_GB.json13
-rw-r--r--apps/encryption/l10n/eo.js6
-rw-r--r--apps/encryption/l10n/eo.json6
-rw-r--r--apps/encryption/l10n/es.js29
-rw-r--r--apps/encryption/l10n/es.json29
-rw-r--r--apps/encryption/l10n/es_AR.js11
-rw-r--r--apps/encryption/l10n/es_AR.json11
-rw-r--r--apps/encryption/l10n/es_MX.js11
-rw-r--r--apps/encryption/l10n/es_MX.json11
-rw-r--r--apps/encryption/l10n/et_EE.js11
-rw-r--r--apps/encryption/l10n/et_EE.json11
-rw-r--r--apps/encryption/l10n/eu.js11
-rw-r--r--apps/encryption/l10n/eu.json11
-rw-r--r--apps/encryption/l10n/fa.js9
-rw-r--r--apps/encryption/l10n/fa.json9
-rw-r--r--apps/encryption/l10n/fi_FI.js22
-rw-r--r--apps/encryption/l10n/fi_FI.json22
-rw-r--r--apps/encryption/l10n/fr.js22
-rw-r--r--apps/encryption/l10n/fr.json22
-rw-r--r--apps/encryption/l10n/gl.js32
-rw-r--r--apps/encryption/l10n/gl.json32
-rw-r--r--apps/encryption/l10n/hr.js11
-rw-r--r--apps/encryption/l10n/hr.json11
-rw-r--r--apps/encryption/l10n/hu_HU.js11
-rw-r--r--apps/encryption/l10n/hu_HU.json11
-rw-r--r--apps/encryption/l10n/id.js23
-rw-r--r--apps/encryption/l10n/id.json23
-rw-r--r--apps/encryption/l10n/it.js22
-rw-r--r--apps/encryption/l10n/it.json22
-rw-r--r--apps/encryption/l10n/ja.js14
-rw-r--r--apps/encryption/l10n/ja.json14
-rw-r--r--apps/encryption/l10n/km.js4
-rw-r--r--apps/encryption/l10n/km.json4
-rw-r--r--apps/encryption/l10n/ko.js25
-rw-r--r--apps/encryption/l10n/ko.json25
-rw-r--r--apps/encryption/l10n/lb.js8
-rw-r--r--apps/encryption/l10n/lb.json6
-rw-r--r--apps/encryption/l10n/lt_LT.js11
-rw-r--r--apps/encryption/l10n/lt_LT.json11
-rw-r--r--apps/encryption/l10n/mk.js9
-rw-r--r--apps/encryption/l10n/mk.json9
-rw-r--r--apps/encryption/l10n/nb_NO.js11
-rw-r--r--apps/encryption/l10n/nb_NO.json11
-rw-r--r--apps/encryption/l10n/nl.js22
-rw-r--r--apps/encryption/l10n/nl.json22
-rw-r--r--apps/encryption/l10n/pl.js11
-rw-r--r--apps/encryption/l10n/pl.json11
-rw-r--r--apps/encryption/l10n/pt_BR.js22
-rw-r--r--apps/encryption/l10n/pt_BR.json22
-rw-r--r--apps/encryption/l10n/pt_PT.js13
-rw-r--r--apps/encryption/l10n/pt_PT.json13
-rw-r--r--apps/encryption/l10n/ro.js4
-rw-r--r--apps/encryption/l10n/ro.json4
-rw-r--r--apps/encryption/l10n/ru.js19
-rw-r--r--apps/encryption/l10n/ru.json19
-rw-r--r--apps/encryption/l10n/sk_SK.js11
-rw-r--r--apps/encryption/l10n/sk_SK.json11
-rw-r--r--apps/encryption/l10n/sl.js13
-rw-r--r--apps/encryption/l10n/sl.json13
-rw-r--r--apps/encryption/l10n/sr.js34
-rw-r--r--apps/encryption/l10n/sr.json34
-rw-r--r--apps/encryption/l10n/sv.js11
-rw-r--r--apps/encryption/l10n/sv.json11
-rw-r--r--apps/encryption/l10n/tr.js17
-rw-r--r--apps/encryption/l10n/tr.json17
-rw-r--r--apps/encryption/l10n/uk.js13
-rw-r--r--apps/encryption/l10n/uk.json13
-rw-r--r--apps/encryption/l10n/vi.js6
-rw-r--r--apps/encryption/l10n/vi.json6
-rw-r--r--apps/encryption/l10n/zh_CN.js11
-rw-r--r--apps/encryption/l10n/zh_CN.json11
-rw-r--r--apps/encryption/l10n/zh_HK.js4
-rw-r--r--apps/encryption/l10n/zh_HK.json4
-rw-r--r--apps/encryption/l10n/zh_TW.js11
-rw-r--r--apps/encryption/l10n/zh_TW.json11
-rw-r--r--apps/encryption/lib/crypto/encryption.php91
-rw-r--r--apps/encryption/lib/keymanager.php7
-rw-r--r--apps/encryption/lib/recovery.php28
-rw-r--r--apps/encryption/lib/util.php38
-rw-r--r--apps/encryption/settings/settings-personal.php5
-rw-r--r--apps/encryption/templates/settings-admin.php69
-rw-r--r--apps/encryption/templates/settings-personal.php2
-rw-r--r--apps/encryption/tests/controller/RecoveryControllerTest.php179
-rw-r--r--apps/encryption/tests/lib/KeyManagerTest.php59
-rw-r--r--apps/encryption/tests/lib/RecoveryTest.php3
-rw-r--r--apps/encryption/tests/lib/UtilTest.php22
-rw-r--r--apps/encryption/tests/lib/crypto/cryptTest.php2
-rw-r--r--apps/encryption/tests/lib/crypto/encryptionTest.php88
-rw-r--r--apps/encryption_dummy/appinfo/app.php8
-rw-r--r--apps/encryption_dummy/appinfo/info.xml20
-rw-r--r--apps/encryption_dummy/appinfo/version1
-rw-r--r--apps/encryption_dummy/img/app.svg51
-rw-r--r--apps/encryption_dummy/lib/dummymodule.php138
-rw-r--r--apps/files/appinfo/remote.php2
-rw-r--r--apps/files/js/filelist.js3
-rw-r--r--apps/files/l10n/da.js1
-rw-r--r--apps/files/l10n/da.json1
-rw-r--r--apps/files/l10n/de_AT.js6
-rw-r--r--apps/files/l10n/de_AT.json6
-rw-r--r--apps/files/l10n/es.js2
-rw-r--r--apps/files/l10n/es.json2
-rw-r--r--apps/files/l10n/is.js2
-rw-r--r--apps/files/l10n/is.json2
-rw-r--r--apps/files/l10n/ja.js2
-rw-r--r--apps/files/l10n/ja.json2
-rw-r--r--apps/files/l10n/ko.js4
-rw-r--r--apps/files/l10n/ko.json4
-rw-r--r--apps/files/l10n/lb.js2
-rw-r--r--apps/files/l10n/lb.json2
-rw-r--r--apps/files/l10n/mk.js1
-rw-r--r--apps/files/l10n/mk.json1
-rw-r--r--apps/files/l10n/pt_BR.js1
-rw-r--r--apps/files/l10n/pt_BR.json1
-rw-r--r--apps/files/l10n/pt_PT.js1
-rw-r--r--apps/files/l10n/pt_PT.json1
-rw-r--r--apps/files/l10n/ru.js10
-rw-r--r--apps/files/l10n/ru.json10
-rw-r--r--apps/files/l10n/sl.js1
-rw-r--r--apps/files/l10n/sl.json1
-rw-r--r--apps/files/l10n/uk.js1
-rw-r--r--apps/files/l10n/uk.json1
-rw-r--r--apps/files_external/l10n/de_AT.js2
-rw-r--r--apps/files_external/l10n/de_AT.json2
-rw-r--r--apps/files_external/l10n/id.js9
-rw-r--r--apps/files_external/l10n/id.json9
-rw-r--r--apps/files_external/l10n/is.js2
-rw-r--r--apps/files_external/l10n/is.json2
-rw-r--r--apps/files_external/l10n/ko.js7
-rw-r--r--apps/files_external/l10n/ko.json7
-rw-r--r--apps/files_external/l10n/lb.js1
-rw-r--r--apps/files_external/l10n/lb.json1
-rw-r--r--apps/files_external/l10n/ru.js2
-rw-r--r--apps/files_external/l10n/ru.json2
-rw-r--r--apps/files_external/l10n/sr.js6
-rw-r--r--apps/files_external/l10n/sr.json6
-rw-r--r--apps/files_external/l10n/th_TH.js1
-rw-r--r--apps/files_external/l10n/th_TH.json1
-rw-r--r--apps/files_sharing/api/local.php1
-rw-r--r--apps/files_sharing/css/public.css22
-rw-r--r--apps/files_sharing/js/public.js51
-rw-r--r--apps/files_sharing/js/sharedfilelist.js1
-rw-r--r--apps/files_sharing/l10n/es.js2
-rw-r--r--apps/files_sharing/l10n/es.json2
-rw-r--r--apps/files_sharing/l10n/id.js1
-rw-r--r--apps/files_sharing/l10n/id.json1
-rw-r--r--apps/files_sharing/l10n/is.js2
-rw-r--r--apps/files_sharing/l10n/is.json2
-rw-r--r--apps/files_sharing/l10n/ja.js3
-rw-r--r--apps/files_sharing/l10n/ja.json3
-rw-r--r--apps/files_sharing/l10n/ko.js1
-rw-r--r--apps/files_sharing/l10n/ko.json1
-rw-r--r--apps/files_sharing/l10n/lb.js7
-rw-r--r--apps/files_sharing/l10n/lb.json7
-rw-r--r--apps/files_sharing/l10n/ru.js3
-rw-r--r--apps/files_sharing/l10n/ru.json3
-rw-r--r--apps/files_sharing/l10n/sl.js1
-rw-r--r--apps/files_sharing/l10n/sl.json1
-rw-r--r--apps/files_sharing/l10n/uk.js1
-rw-r--r--apps/files_sharing/l10n/uk.json1
-rw-r--r--apps/files_sharing/lib/controllers/externalsharescontroller.php1
-rw-r--r--apps/files_sharing/lib/deleteorphanedsharesjob.php11
-rw-r--r--apps/files_sharing/lib/sharedstorage.php49
-rw-r--r--apps/files_sharing/lib/updater.php16
-rw-r--r--apps/files_sharing/tests/etagpropagation.php42
-rw-r--r--apps/files_sharing/tests/updater.php73
-rw-r--r--apps/files_trashbin/l10n/is.js2
-rw-r--r--apps/files_trashbin/l10n/is.json2
-rw-r--r--apps/files_trashbin/l10n/lb.js11
-rw-r--r--apps/files_trashbin/l10n/lb.json11
-rw-r--r--apps/files_trashbin/l10n/ru.js2
-rw-r--r--apps/files_trashbin/l10n/ru.json2
-rw-r--r--apps/files_trashbin/lib/storage.php35
-rw-r--r--apps/files_trashbin/lib/trashbin.php17
-rw-r--r--apps/files_trashbin/tests/storage.php179
-rw-r--r--apps/files_trashbin/tests/trashbin.php327
-rw-r--r--apps/files_versions/l10n/lb.js11
-rw-r--r--apps/files_versions/l10n/lb.json9
-rw-r--r--apps/files_versions/l10n/mk.js2
-rw-r--r--apps/files_versions/l10n/mk.json2
-rw-r--r--apps/files_versions/lib/storage.php108
-rw-r--r--apps/files_versions/tests/versions.php345
-rw-r--r--apps/provisioning_api/lib/users.php9
-rw-r--r--apps/provisioning_api/tests/userstest.php30
-rw-r--r--apps/user_ldap/ajax/getNewServerConfigPrefix.php1
-rw-r--r--apps/user_ldap/js/wizard/wizardTabAbstractFilter.js14
-rw-r--r--apps/user_ldap/js/wizard/wizardTabElementary.js1
-rw-r--r--apps/user_ldap/l10n/ast.js1
-rw-r--r--apps/user_ldap/l10n/ast.json1
-rw-r--r--apps/user_ldap/l10n/be.js2
-rw-r--r--apps/user_ldap/l10n/be.json2
-rw-r--r--apps/user_ldap/l10n/bg_BG.js1
-rw-r--r--apps/user_ldap/l10n/bg_BG.json1
-rw-r--r--apps/user_ldap/l10n/cs_CZ.js2
-rw-r--r--apps/user_ldap/l10n/cs_CZ.json2
-rw-r--r--apps/user_ldap/l10n/da.js6
-rw-r--r--apps/user_ldap/l10n/da.json6
-rw-r--r--apps/user_ldap/l10n/de.js12
-rw-r--r--apps/user_ldap/l10n/de.json12
-rw-r--r--apps/user_ldap/l10n/de_DE.js12
-rw-r--r--apps/user_ldap/l10n/de_DE.json12
-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.js1
-rw-r--r--apps/user_ldap/l10n/en_GB.json1
-rw-r--r--apps/user_ldap/l10n/es.js14
-rw-r--r--apps/user_ldap/l10n/es.json14
-rw-r--r--apps/user_ldap/l10n/et_EE.js1
-rw-r--r--apps/user_ldap/l10n/et_EE.json1
-rw-r--r--apps/user_ldap/l10n/eu.js1
-rw-r--r--apps/user_ldap/l10n/eu.json1
-rw-r--r--apps/user_ldap/l10n/fr.js4
-rw-r--r--apps/user_ldap/l10n/fr.json4
-rw-r--r--apps/user_ldap/l10n/gl.js2
-rw-r--r--apps/user_ldap/l10n/gl.json2
-rw-r--r--apps/user_ldap/l10n/hu_HU.js1
-rw-r--r--apps/user_ldap/l10n/hu_HU.json1
-rw-r--r--apps/user_ldap/l10n/id.js31
-rw-r--r--apps/user_ldap/l10n/id.json31
-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.js11
-rw-r--r--apps/user_ldap/l10n/ja.json11
-rw-r--r--apps/user_ldap/l10n/ko.js46
-rw-r--r--apps/user_ldap/l10n/ko.json46
-rw-r--r--apps/user_ldap/l10n/nb_NO.js1
-rw-r--r--apps/user_ldap/l10n/nb_NO.json1
-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.js1
-rw-r--r--apps/user_ldap/l10n/pl.json1
-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/pt_PT.js2
-rw-r--r--apps/user_ldap/l10n/pt_PT.json2
-rw-r--r--apps/user_ldap/l10n/ru.js7
-rw-r--r--apps/user_ldap/l10n/ru.json7
-rw-r--r--apps/user_ldap/l10n/sk_SK.js1
-rw-r--r--apps/user_ldap/l10n/sk_SK.json1
-rw-r--r--apps/user_ldap/l10n/sl.js13
-rw-r--r--apps/user_ldap/l10n/sl.json13
-rw-r--r--apps/user_ldap/l10n/sr.js10
-rw-r--r--apps/user_ldap/l10n/sr.json10
-rw-r--r--apps/user_ldap/l10n/sv.js1
-rw-r--r--apps/user_ldap/l10n/sv.json1
-rw-r--r--apps/user_ldap/l10n/tr.js1
-rw-r--r--apps/user_ldap/l10n/tr.json1
-rw-r--r--apps/user_ldap/l10n/uk.js1
-rw-r--r--apps/user_ldap/l10n/uk.json1
-rw-r--r--apps/user_ldap/lib/connection.php15
-rw-r--r--apps/user_ldap/lib/ldap.php4
-rw-r--r--apps/user_ldap/lib/wizard.php1
-rw-r--r--apps/user_ldap/templates/part.wizard-groupfilter.php3
-rw-r--r--apps/user_ldap/templates/part.wizard-loginfilter.php2
-rw-r--r--apps/user_ldap/tests/integration/exceptionOnLostConnection.php192
-rwxr-xr-xautotest-hhvm.sh217
-rwxr-xr-xautotest.sh52
-rw-r--r--config/ca-bundle.crt264
-rw-r--r--console.php8
-rw-r--r--core/ajax/share.php2
-rw-r--r--core/command/app/checkcode.php25
-rw-r--r--core/command/encryption/disable.php2
-rw-r--r--core/command/encryption/enable.php26
-rw-r--r--core/command/encryption/status.php56
-rw-r--r--core/command/upgrade.php3
-rw-r--r--core/css/apps.css6
-rw-r--r--core/css/multiselect.css3
-rw-r--r--core/css/styles.css4
-rw-r--r--core/js/jquery.ocdialog.js6
-rw-r--r--core/js/maintenance-check.js5
-rw-r--r--core/js/multiselect.js3
-rw-r--r--core/js/oc-dialogs.js3
-rw-r--r--core/js/share.js43
-rw-r--r--core/js/tests/specs/shareSpec.js158
-rw-r--r--core/js/update-notification.js30
-rw-r--r--core/l10n/af_ZA.js1
-rw-r--r--core/l10n/af_ZA.json1
-rw-r--r--core/l10n/ast.js1
-rw-r--r--core/l10n/ast.json1
-rw-r--r--core/l10n/be.js2
-rw-r--r--core/l10n/be.json2
-rw-r--r--core/l10n/bg_BG.js1
-rw-r--r--core/l10n/bg_BG.json1
-rw-r--r--core/l10n/bs.js1
-rw-r--r--core/l10n/bs.json1
-rw-r--r--core/l10n/ca.js1
-rw-r--r--core/l10n/ca.json1
-rw-r--r--core/l10n/cs_CZ.js2
-rw-r--r--core/l10n/cs_CZ.json2
-rw-r--r--core/l10n/cy_GB.js1
-rw-r--r--core/l10n/cy_GB.json1
-rw-r--r--core/l10n/da.js2
-rw-r--r--core/l10n/da.json2
-rw-r--r--core/l10n/de.js2
-rw-r--r--core/l10n/de.json2
-rw-r--r--core/l10n/de_AT.js7
-rw-r--r--core/l10n/de_AT.json7
-rw-r--r--core/l10n/de_DE.js2
-rw-r--r--core/l10n/de_DE.json2
-rw-r--r--core/l10n/el.js2
-rw-r--r--core/l10n/el.json2
-rw-r--r--core/l10n/en_GB.js1
-rw-r--r--core/l10n/en_GB.json1
-rw-r--r--core/l10n/eo.js1
-rw-r--r--core/l10n/eo.json1
-rw-r--r--core/l10n/es.js2
-rw-r--r--core/l10n/es.json2
-rw-r--r--core/l10n/es_AR.js1
-rw-r--r--core/l10n/es_AR.json1
-rw-r--r--core/l10n/es_MX.js1
-rw-r--r--core/l10n/es_MX.json1
-rw-r--r--core/l10n/et_EE.js1
-rw-r--r--core/l10n/et_EE.json1
-rw-r--r--core/l10n/eu.js1
-rw-r--r--core/l10n/eu.json1
-rw-r--r--core/l10n/fa.js1
-rw-r--r--core/l10n/fa.json1
-rw-r--r--core/l10n/fi_FI.js2
-rw-r--r--core/l10n/fi_FI.json2
-rw-r--r--core/l10n/fr.js2
-rw-r--r--core/l10n/fr.json2
-rw-r--r--core/l10n/gl.js4
-rw-r--r--core/l10n/gl.json4
-rw-r--r--core/l10n/he.js1
-rw-r--r--core/l10n/he.json1
-rw-r--r--core/l10n/hr.js1
-rw-r--r--core/l10n/hr.json1
-rw-r--r--core/l10n/hu_HU.js1
-rw-r--r--core/l10n/hu_HU.json1
-rw-r--r--core/l10n/id.js31
-rw-r--r--core/l10n/id.json31
-rw-r--r--core/l10n/is.js3
-rw-r--r--core/l10n/is.json3
-rw-r--r--core/l10n/it.js2
-rw-r--r--core/l10n/it.json2
-rw-r--r--core/l10n/ja.js7
-rw-r--r--core/l10n/ja.json7
-rw-r--r--core/l10n/kn.js1
-rw-r--r--core/l10n/kn.json1
-rw-r--r--core/l10n/ko.js29
-rw-r--r--core/l10n/ko.json29
-rw-r--r--core/l10n/lb.js1
-rw-r--r--core/l10n/lb.json1
-rw-r--r--core/l10n/lt_LT.js1
-rw-r--r--core/l10n/lt_LT.json1
-rw-r--r--core/l10n/lv.js1
-rw-r--r--core/l10n/lv.json1
-rw-r--r--core/l10n/mk.js37
-rw-r--r--core/l10n/mk.json37
-rw-r--r--core/l10n/nb_NO.js1
-rw-r--r--core/l10n/nb_NO.json1
-rw-r--r--core/l10n/nl.js2
-rw-r--r--core/l10n/nl.json2
-rw-r--r--core/l10n/nn_NO.js1
-rw-r--r--core/l10n/nn_NO.json1
-rw-r--r--core/l10n/pl.js1
-rw-r--r--core/l10n/pl.json1
-rw-r--r--core/l10n/pt_BR.js2
-rw-r--r--core/l10n/pt_BR.json2
-rw-r--r--core/l10n/pt_PT.js1
-rw-r--r--core/l10n/pt_PT.json1
-rw-r--r--core/l10n/ro.js1
-rw-r--r--core/l10n/ro.json1
-rw-r--r--core/l10n/ru.js9
-rw-r--r--core/l10n/ru.json9
-rw-r--r--core/l10n/sk_SK.js1
-rw-r--r--core/l10n/sk_SK.json1
-rw-r--r--core/l10n/sl.js1
-rw-r--r--core/l10n/sl.json1
-rw-r--r--core/l10n/sq.js1
-rw-r--r--core/l10n/sq.json1
-rw-r--r--core/l10n/sr.js24
-rw-r--r--core/l10n/sr.json24
-rw-r--r--core/l10n/sr@latin.js1
-rw-r--r--core/l10n/sr@latin.json1
-rw-r--r--core/l10n/sv.js4
-rw-r--r--core/l10n/sv.json4
-rw-r--r--core/l10n/tr.js13
-rw-r--r--core/l10n/tr.json13
-rw-r--r--core/l10n/uk.js2
-rw-r--r--core/l10n/uk.json2
-rw-r--r--core/l10n/ur_PK.js1
-rw-r--r--core/l10n/ur_PK.json1
-rw-r--r--core/l10n/vi.js1
-rw-r--r--core/l10n/vi.json1
-rw-r--r--core/l10n/zh_CN.js1
-rw-r--r--core/l10n/zh_CN.json1
-rw-r--r--core/l10n/zh_TW.js1
-rw-r--r--core/l10n/zh_TW.json1
-rw-r--r--core/register_command.php3
-rw-r--r--core/search/css/results.css10
-rw-r--r--core/templates/layout.user.php9
-rw-r--r--lib/base.php21
-rw-r--r--lib/l10n/ast.js1
-rw-r--r--lib/l10n/ast.json1
-rw-r--r--lib/l10n/be.js2
-rw-r--r--lib/l10n/be.json2
-rw-r--r--lib/l10n/bg_BG.js3
-rw-r--r--lib/l10n/bg_BG.json3
-rw-r--r--lib/l10n/ca.js1
-rw-r--r--lib/l10n/ca.json1
-rw-r--r--lib/l10n/cs_CZ.js5
-rw-r--r--lib/l10n/cs_CZ.json5
-rw-r--r--lib/l10n/da.js3
-rw-r--r--lib/l10n/da.json3
-rw-r--r--lib/l10n/de.js5
-rw-r--r--lib/l10n/de.json5
-rw-r--r--lib/l10n/de_AT.js3
-rw-r--r--lib/l10n/de_AT.json3
-rw-r--r--lib/l10n/de_DE.js5
-rw-r--r--lib/l10n/de_DE.json5
-rw-r--r--lib/l10n/el.js5
-rw-r--r--lib/l10n/el.json5
-rw-r--r--lib/l10n/en_GB.js3
-rw-r--r--lib/l10n/en_GB.json3
-rw-r--r--lib/l10n/es.js5
-rw-r--r--lib/l10n/es.json5
-rw-r--r--lib/l10n/et_EE.js1
-rw-r--r--lib/l10n/et_EE.json1
-rw-r--r--lib/l10n/eu.js2
-rw-r--r--lib/l10n/eu.json2
-rw-r--r--lib/l10n/fi_FI.js5
-rw-r--r--lib/l10n/fi_FI.json5
-rw-r--r--lib/l10n/fr.js5
-rw-r--r--lib/l10n/fr.json5
-rw-r--r--lib/l10n/gl.js5
-rw-r--r--lib/l10n/gl.json5
-rw-r--r--lib/l10n/hr.js1
-rw-r--r--lib/l10n/hr.json1
-rw-r--r--lib/l10n/hu_HU.js1
-rw-r--r--lib/l10n/hu_HU.json1
-rw-r--r--lib/l10n/id.js2
-rw-r--r--lib/l10n/id.json2
-rw-r--r--lib/l10n/is.js2
-rw-r--r--lib/l10n/is.json2
-rw-r--r--lib/l10n/it.js5
-rw-r--r--lib/l10n/it.json5
-rw-r--r--lib/l10n/ja.js9
-rw-r--r--lib/l10n/ja.json9
-rw-r--r--lib/l10n/ko.js22
-rw-r--r--lib/l10n/ko.json22
-rw-r--r--lib/l10n/nb_NO.js3
-rw-r--r--lib/l10n/nb_NO.json3
-rw-r--r--lib/l10n/nl.js5
-rw-r--r--lib/l10n/nl.json5
-rw-r--r--lib/l10n/pl.js1
-rw-r--r--lib/l10n/pl.json1
-rw-r--r--lib/l10n/pt_BR.js5
-rw-r--r--lib/l10n/pt_BR.json5
-rw-r--r--lib/l10n/pt_PT.js3
-rw-r--r--lib/l10n/pt_PT.json3
-rw-r--r--lib/l10n/ru.js15
-rw-r--r--lib/l10n/ru.json15
-rw-r--r--lib/l10n/sk_SK.js3
-rw-r--r--lib/l10n/sk_SK.json3
-rw-r--r--lib/l10n/sl.js1
-rw-r--r--lib/l10n/sl.json1
-rw-r--r--lib/l10n/sr.js27
-rw-r--r--lib/l10n/sr.json27
-rw-r--r--lib/l10n/sv.js1
-rw-r--r--lib/l10n/sv.json1
-rw-r--r--lib/l10n/tr.js3
-rw-r--r--lib/l10n/tr.json3
-rw-r--r--lib/l10n/uk.js3
-rw-r--r--lib/l10n/uk.json3
-rw-r--r--lib/l10n/zh_CN.js1
-rw-r--r--lib/l10n/zh_CN.json1
-rw-r--r--lib/l10n/zh_TW.js1
-rw-r--r--lib/l10n/zh_TW.json1
-rw-r--r--lib/private/app.php8
-rw-r--r--lib/private/app/codechecker.php3
-rw-r--r--lib/private/app/codecheckvisitor.php17
-rw-r--r--lib/private/appconfig.php27
-rw-r--r--lib/private/appframework/app.php25
-rw-r--r--lib/private/backgroundjob/job.php5
-rw-r--r--lib/private/backgroundjob/queuedjob.php5
-rw-r--r--lib/private/backgroundjob/timedjob.php5
-rw-r--r--lib/private/connector/sabre/dummygetresponseplugin.php18
-rw-r--r--lib/private/connector/sabre/file.php54
-rw-r--r--lib/private/connector/sabre/quotaplugin.php3
-rw-r--r--lib/private/defaults.php2
-rw-r--r--lib/private/encryption/exceptions/decryptionfailedexception.php11
-rw-r--r--lib/private/encryption/hookmanager.php8
-rw-r--r--lib/private/encryption/keys/storage.php14
-rw-r--r--lib/private/encryption/update.php58
-rw-r--r--lib/private/encryption/util.php2
-rw-r--r--lib/private/files.php88
-rw-r--r--lib/private/files/cache/cache.php112
-rw-r--r--lib/private/files/cache/storage.php26
-rw-r--r--lib/private/files/cache/updater.php30
-rw-r--r--lib/private/files/storage/common.php5
-rw-r--r--lib/private/files/storage/dav.php8
-rw-r--r--lib/private/files/storage/wrapper/encryption.php208
-rw-r--r--lib/private/helper.php5
-rw-r--r--lib/private/l10n.php11
-rw-r--r--lib/private/lock/memcachelockingprovider.php86
-rw-r--r--lib/private/log/errorhandler.php6
-rw-r--r--lib/private/memcache/apc.php60
-rw-r--r--lib/private/memcache/arraycache.php72
-rw-r--r--lib/private/memcache/castrait.php56
-rw-r--r--lib/private/memcache/memcached.php41
-rw-r--r--lib/private/memcache/redis.php55
-rw-r--r--lib/private/memcache/xcache.php70
-rw-r--r--lib/private/share/mailnotifications.php5
-rw-r--r--lib/private/share/searchresultsorter.php6
-rw-r--r--lib/private/share/share.php16
-rw-r--r--lib/private/tags.php1
-rw-r--r--lib/private/templatelayout.php1
-rw-r--r--lib/private/updater.php7
-rw-r--r--lib/private/util.php34
-rw-r--r--lib/public/backgroundjob/ijob.php5
-rw-r--r--lib/public/encryption/exceptions/genericencryptionexception.php11
-rw-r--r--lib/public/encryption/iencryptionmodule.php12
-rw-r--r--lib/public/encryption/keys/istorage.php3
-rw-r--r--lib/public/files/storage.php1
-rw-r--r--lib/public/imemcache.php78
-rw-r--r--lib/public/lock/ilockingprovider.php47
-rw-r--r--lib/public/lock/lockedexception.php46
-rw-r--r--settings/admin.php10
-rw-r--r--settings/changepassword/controller.php11
-rw-r--r--settings/controller/certificatecontroller.php6
-rw-r--r--settings/controller/userscontroller.php13
-rw-r--r--settings/css/settings.css20
-rw-r--r--settings/help.php4
-rw-r--r--settings/js/admin.js19
-rw-r--r--settings/js/personal.js18
-rw-r--r--settings/l10n/az.js1
-rw-r--r--settings/l10n/az.json1
-rw-r--r--settings/l10n/bg_BG.js1
-rw-r--r--settings/l10n/bg_BG.json1
-rw-r--r--settings/l10n/bs.js1
-rw-r--r--settings/l10n/bs.json1
-rw-r--r--settings/l10n/ca.js1
-rw-r--r--settings/l10n/ca.json1
-rw-r--r--settings/l10n/cs_CZ.js11
-rw-r--r--settings/l10n/cs_CZ.json11
-rw-r--r--settings/l10n/da.js3
-rw-r--r--settings/l10n/da.json3
-rw-r--r--settings/l10n/de.js11
-rw-r--r--settings/l10n/de.json11
-rw-r--r--settings/l10n/de_AT.js3
-rw-r--r--settings/l10n/de_AT.json3
-rw-r--r--settings/l10n/de_DE.js11
-rw-r--r--settings/l10n/de_DE.json11
-rw-r--r--settings/l10n/el.js11
-rw-r--r--settings/l10n/el.json11
-rw-r--r--settings/l10n/en_GB.js5
-rw-r--r--settings/l10n/en_GB.json5
-rw-r--r--settings/l10n/es.js19
-rw-r--r--settings/l10n/es.json19
-rw-r--r--settings/l10n/et_EE.js1
-rw-r--r--settings/l10n/et_EE.json1
-rw-r--r--settings/l10n/eu.js1
-rw-r--r--settings/l10n/eu.json1
-rw-r--r--settings/l10n/fi_FI.js10
-rw-r--r--settings/l10n/fi_FI.json10
-rw-r--r--settings/l10n/fr.js11
-rw-r--r--settings/l10n/fr.json11
-rw-r--r--settings/l10n/gl.js11
-rw-r--r--settings/l10n/gl.json11
-rw-r--r--settings/l10n/he.js1
-rw-r--r--settings/l10n/he.json1
-rw-r--r--settings/l10n/id.js65
-rw-r--r--settings/l10n/id.json65
-rw-r--r--settings/l10n/is.js2
-rw-r--r--settings/l10n/is.json2
-rw-r--r--settings/l10n/it.js11
-rw-r--r--settings/l10n/it.json11
-rw-r--r--settings/l10n/ja.js20
-rw-r--r--settings/l10n/ja.json20
-rw-r--r--settings/l10n/ko.js60
-rw-r--r--settings/l10n/ko.json60
-rw-r--r--settings/l10n/lb.js6
-rw-r--r--settings/l10n/lb.json6
-rw-r--r--settings/l10n/lt_LT.js1
-rw-r--r--settings/l10n/lt_LT.json1
-rw-r--r--settings/l10n/lv.js1
-rw-r--r--settings/l10n/lv.json1
-rw-r--r--settings/l10n/mk.js17
-rw-r--r--settings/l10n/mk.json17
-rw-r--r--settings/l10n/nb_NO.js1
-rw-r--r--settings/l10n/nb_NO.json1
-rw-r--r--settings/l10n/nl.js11
-rw-r--r--settings/l10n/nl.json11
-rw-r--r--settings/l10n/pl.js3
-rw-r--r--settings/l10n/pl.json3
-rw-r--r--settings/l10n/pt_BR.js11
-rw-r--r--settings/l10n/pt_BR.json11
-rw-r--r--settings/l10n/pt_PT.js3
-rw-r--r--settings/l10n/pt_PT.json3
-rw-r--r--settings/l10n/ru.js7
-rw-r--r--settings/l10n/ru.json7
-rw-r--r--settings/l10n/sk_SK.js1
-rw-r--r--settings/l10n/sk_SK.json1
-rw-r--r--settings/l10n/sl.js49
-rw-r--r--settings/l10n/sl.json49
-rw-r--r--settings/l10n/sr.js11
-rw-r--r--settings/l10n/sr.json11
-rw-r--r--settings/l10n/sv.js1
-rw-r--r--settings/l10n/sv.json1
-rw-r--r--settings/l10n/th_TH.js1
-rw-r--r--settings/l10n/th_TH.json1
-rw-r--r--settings/l10n/tr.js12
-rw-r--r--settings/l10n/tr.json12
-rw-r--r--settings/l10n/uk.js5
-rw-r--r--settings/l10n/uk.json5
-rw-r--r--settings/l10n/zh_CN.js1
-rw-r--r--settings/l10n/zh_CN.json1
-rw-r--r--settings/l10n/zh_HK.js1
-rw-r--r--settings/l10n/zh_HK.json1
-rw-r--r--settings/l10n/zh_TW.js1
-rw-r--r--settings/l10n/zh_TW.json1
-rw-r--r--settings/templates/admin.php41
-rw-r--r--settings/templates/apps.php21
-rw-r--r--tests/apps.php3
-rw-r--r--tests/core/command/encryption/disabletest.php2
-rw-r--r--tests/core/command/encryption/enabletest.php50
-rw-r--r--tests/data/app/code-checker/test-equal.php11
-rw-r--r--tests/data/app/code-checker/test-identical-operator.php13
-rw-r--r--tests/data/app/code-checker/test-not-equal.php11
-rw-r--r--tests/lib/app/codechecker.php25
-rw-r--r--tests/lib/appconfig.php225
-rw-r--r--tests/lib/connector/sabre/DummyGetResponsePluginTest.php65
-rw-r--r--tests/lib/connector/sabre/copyetagheaderplugintest.php2
-rw-r--r--tests/lib/connector/sabre/file.php232
-rw-r--r--tests/lib/connector/sabre/quotaplugin.php5
-rw-r--r--tests/lib/encryption/updatetest.php115
-rw-r--r--tests/lib/encryption/utiltest.php1
-rw-r--r--tests/lib/files/storage/wrapper/encryption.php140
-rw-r--r--tests/lib/files/stream/encryption.php3
-rw-r--r--tests/lib/helper.php23
-rw-r--r--tests/lib/hookhelper.php112
-rw-r--r--tests/lib/lock/lockingprovider.php137
-rw-r--r--tests/lib/lock/memcachelockingprovider.php45
-rw-r--r--tests/lib/memcache/cache.php48
-rw-r--r--tests/lib/memcache/castrait.php73
-rw-r--r--tests/lib/share/share.php33
-rw-r--r--tests/lib/testcase.php2
-rw-r--r--tests/settings/controller/userscontrollertest.php88
-rw-r--r--version.php4
671 files changed, 7454 insertions, 2927 deletions
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
index 78e878a42a4..0185adab870 100644
--- a/.scrutinizer.yml
+++ b/.scrutinizer.yml
@@ -18,3 +18,7 @@ filter:
imports:
- javascript
- php
+
+tools:
+ external_code_coverage:
+ timeout: 1200 # Timeout in seconds. 20 minutes
diff --git a/3rdparty b/3rdparty
-Subproject 0f862d433ad146ebca97e356c703369777c2a30
+Subproject a79a7ee86b70db60fee8caa7caaad11be9fd004
diff --git a/apps/encryption/appinfo/application.php b/apps/encryption/appinfo/application.php
index 0c9dcb76fbc..79b2ad3abaf 100644
--- a/apps/encryption/appinfo/application.php
+++ b/apps/encryption/appinfo/application.php
@@ -94,10 +94,12 @@ class Application extends \OCP\AppFramework\App {
public function registerEncryptionModule() {
$container = $this->getContainer();
+
$this->encryptionManager->registerEncryptionModule(
Encryption::ID,
Encryption::DISPLAY_NAME,
function() use ($container) {
+
return new Encryption(
$container->query('Crypt'),
$container->query('KeyManager'),
@@ -105,6 +107,7 @@ class Application extends \OCP\AppFramework\App {
$container->getServer()->getLogger()
);
});
+
}
public function registerServices() {
@@ -206,7 +209,8 @@ class Application extends \OCP\AppFramework\App {
$c->query('Crypt'),
$server->getLogger(),
$server->getUserSession(),
- $server->getConfig());
+ $server->getConfig(),
+ $server->getUserManager());
});
}
diff --git a/apps/encryption/controller/recoverycontroller.php b/apps/encryption/controller/recoverycontroller.php
index 9c07bda62e4..f1a2651443e 100644
--- a/apps/encryption/controller/recoverycontroller.php
+++ b/apps/encryption/controller/recoverycontroller.php
@@ -26,6 +26,7 @@ namespace OCA\Encryption\Controller;
use OCA\Encryption\Recovery;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
@@ -72,31 +73,36 @@ class RecoveryController extends Controller {
public function adminRecovery($recoveryPassword, $confirmPassword, $adminEnableRecovery) {
// Check if both passwords are the same
if (empty($recoveryPassword)) {
- $errorMessage = (string) $this->l->t('Missing recovery key password');
- return new DataResponse(['data' => ['message' => $errorMessage]], 500);
+ $errorMessage = (string)$this->l->t('Missing recovery key password');
+ return new DataResponse(['data' => ['message' => $errorMessage]],
+ Http::STATUS_BAD_REQUEST);
}
if (empty($confirmPassword)) {
- $errorMessage = (string) $this->l->t('Please repeat the recovery key password');
- return new DataResponse(['data' => ['message' => $errorMessage]], 500);
+ $errorMessage = (string)$this->l->t('Please repeat the recovery key password');
+ return new DataResponse(['data' => ['message' => $errorMessage]],
+ Http::STATUS_BAD_REQUEST);
}
if ($recoveryPassword !== $confirmPassword) {
- $errorMessage = (string) $this->l->t('Repeated recovery key password does not match the provided recovery key password');
- return new DataResponse(['data' => ['message' => $errorMessage]], 500);
+ $errorMessage = (string)$this->l->t('Repeated recovery key password does not match the provided recovery key password');
+ return new DataResponse(['data' => ['message' => $errorMessage]],
+ Http::STATUS_BAD_REQUEST);
}
if (isset($adminEnableRecovery) && $adminEnableRecovery === '1') {
if ($this->recovery->enableAdminRecovery($recoveryPassword)) {
- return new DataResponse(['status' =>'success', 'data' => array('message' => (string) $this->l->t('Recovery key successfully enabled'))]);
+ return new DataResponse(['data' => ['message' => (string)$this->l->t('Recovery key successfully enabled')]]);
}
- return new DataResponse(['data' => array('message' => (string) $this->l->t('Could not enable recovery key. Please check your recovery key password!'))]);
+ return new DataResponse(['data' => ['message' => (string)$this->l->t('Could not enable recovery key. Please check your recovery key password!')]], Http::STATUS_BAD_REQUEST);
} elseif (isset($adminEnableRecovery) && $adminEnableRecovery === '0') {
if ($this->recovery->disableAdminRecovery($recoveryPassword)) {
- return new DataResponse(['data' => array('message' => (string) $this->l->t('Recovery key successfully disabled'))]);
+ return new DataResponse(['data' => ['message' => (string)$this->l->t('Recovery key successfully disabled')]]);
}
- return new DataResponse(['data' => array('message' => (string) $this->l->t('Could not disable recovery key. Please check your recovery key password!'))]);
+ return new DataResponse(['data' => ['message' => (string)$this->l->t('Could not disable recovery key. Please check your recovery key password!')]], Http::STATUS_BAD_REQUEST);
}
+ // this response should never be sent but just in case.
+ return new DataResponse(['data' => ['message' => (string)$this->l->t('Missing parameters')]], Http::STATUS_BAD_REQUEST);
}
/**
@@ -108,43 +114,42 @@ class RecoveryController extends Controller {
public function changeRecoveryPassword($newPassword, $oldPassword, $confirmPassword) {
//check if both passwords are the same
if (empty($oldPassword)) {
- $errorMessage = (string) $this->l->t('Please provide the old recovery password');
- return new DataResponse(array('data' => array('message' => $errorMessage)));
+ $errorMessage = (string)$this->l->t('Please provide the old recovery password');
+ return new DataResponse(['data' => ['message' => $errorMessage]], Http::STATUS_BAD_REQUEST);
}
if (empty($newPassword)) {
- $errorMessage = (string) $this->l->t('Please provide a new recovery password');
- return new DataResponse (array('data' => array('message' => $errorMessage)));
+ $errorMessage = (string)$this->l->t('Please provide a new recovery password');
+ return new DataResponse (['data' => ['message' => $errorMessage]], Http::STATUS_BAD_REQUEST);
}
if (empty($confirmPassword)) {
- $errorMessage = (string) $this->l->t('Please repeat the new recovery password');
- return new DataResponse(array('data' => array('message' => $errorMessage)));
+ $errorMessage = (string)$this->l->t('Please repeat the new recovery password');
+ return new DataResponse(['data' => ['message' => $errorMessage]], Http::STATUS_BAD_REQUEST);
}
if ($newPassword !== $confirmPassword) {
- $errorMessage = (string) $this->l->t('Repeated recovery key password does not match the provided recovery key password');
- return new DataResponse(array('data' => array('message' => $errorMessage)));
+ $errorMessage = (string)$this->l->t('Repeated recovery key password does not match the provided recovery key password');
+ return new DataResponse(['data' => ['message' => $errorMessage]], Http::STATUS_BAD_REQUEST);
}
- $result = $this->recovery->changeRecoveryKeyPassword($newPassword, $oldPassword);
+ $result = $this->recovery->changeRecoveryKeyPassword($newPassword,
+ $oldPassword);
if ($result) {
return new DataResponse(
- array(
- 'status' => 'success' ,
- 'data' => array(
- 'message' => (string) $this->l->t('Password successfully changed.'))
- )
- );
- } else {
- return new DataResponse(
- array(
- 'data' => array
- ('message' => (string) $this->l->t('Could not change the password. Maybe the old password was not correct.'))
- )
- );
+ [
+ 'data' => [
+ 'message' => (string)$this->l->t('Password successfully changed.')]
+ ]
+ );
}
+ return new DataResponse(
+ [
+ 'data' => [
+ 'message' => (string)$this->l->t('Could not change the password. Maybe the old password was not correct.')
+ ]
+ ], Http::STATUS_BAD_REQUEST);
}
/**
@@ -159,22 +164,29 @@ class RecoveryController extends Controller {
$result = $this->recovery->setRecoveryForUser($userEnableRecovery);
if ($result) {
+ if ($userEnableRecovery === '0') {
+ return new DataResponse(
+ [
+ 'data' => [
+ 'message' => (string)$this->l->t('Recovery Key disabled')]
+ ]
+ );
+ }
return new DataResponse(
- array(
- 'status' => 'success',
- 'data' => array(
- 'message' => (string) $this->l->t('Recovery Key enabled'))
- )
- );
- } else {
- return new DataResponse(
- array(
- 'data' => array
- ('message' => (string) $this->l->t('Could not enable the recovery key, please try again or contact your administrator'))
- )
+ [
+ 'data' => [
+ 'message' => (string)$this->l->t('Recovery Key enabled')]
+ ]
);
}
+
}
+ return new DataResponse(
+ [
+ 'data' => [
+ 'message' => (string)$this->l->t('Could not enable the recovery key, please try again or contact your administrator')
+ ]
+ ], Http::STATUS_BAD_REQUEST);
}
}
diff --git a/apps/encryption/css/settings-admin.css b/apps/encryption/css/settings-admin.css
new file mode 100644
index 00000000000..47360e6bcf6
--- /dev/null
+++ b/apps/encryption/css/settings-admin.css
@@ -0,0 +1,23 @@
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#encryptionAPI input[type=password] {
+ width: 300px;
+}
diff --git a/apps/encryption/js/settings-admin.js b/apps/encryption/js/settings-admin.js
index bb539f6a4e2..39923718c21 100644
--- a/apps/encryption/js/settings-admin.js
+++ b/apps/encryption/js/settings-admin.js
@@ -7,52 +7,73 @@
* See the COPYING-README file.
*/
-$(document).ready(function(){
-
- $( 'input:radio[name="adminEnableRecovery"]' ).change(
- function() {
- var recoveryStatus = $( this ).val();
- var oldStatus = (1+parseInt(recoveryStatus, 10)) % 2;
- var recoveryPassword = $( '#encryptionRecoveryPassword' ).val();
- var confirmPassword = $( '#repeatEncryptionRecoveryPassword' ).val();
- OC.msg.startSaving('#encryptionSetRecoveryKey .msg');
- $.post(
- OC.generateUrl('/apps/encryption/ajax/adminRecovery'),
- { adminEnableRecovery: recoveryStatus,
- recoveryPassword: recoveryPassword,
- confirmPassword: confirmPassword },
- function( result ) {
- OC.msg.finishedSaving('#encryptionSetRecoveryKey .msg', result);
- if (result.status === "error") {
- $('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]')
- .attr("checked", "true");
- } else {
- if (recoveryStatus === "0") {
- $('p[name="changeRecoveryPasswordBlock"]').addClass("hidden");
- } else {
- $('input:password[name="changeRecoveryPassword"]').val("");
- $('p[name="changeRecoveryPasswordBlock"]').removeClass("hidden");
- }
- }
+$(document).ready(function () {
+
+ $('input:button[name="enableRecoveryKey"]').click(function () {
+
+ var recoveryStatus = $(this).attr('status');
+ var newRecoveryStatus = (1 + parseInt(recoveryStatus)) % 2;
+ var buttonValue = $(this).attr('value');
+
+ var recoveryPassword = $('#encryptionRecoveryPassword').val();
+ var confirmPassword = $('#repeatEncryptionRecoveryPassword').val();
+ OC.msg.startSaving('#encryptionSetRecoveryKey .msg');
+ $.post(
+ OC.generateUrl('/apps/encryption/ajax/adminRecovery'),
+ {
+ adminEnableRecovery: newRecoveryStatus,
+ recoveryPassword: recoveryPassword,
+ confirmPassword: confirmPassword
+ }
+ ).done(function (data) {
+ OC.msg.finishedSuccess('#encryptionSetRecoveryKey .msg', data.data.message);
+
+ if (newRecoveryStatus === 0) {
+ $('p[name="changeRecoveryPasswordBlock"]').addClass("hidden");
+ $('input:button[name="enableRecoveryKey"]').attr('value', 'Enable recovery key');
+ $('input:button[name="enableRecoveryKey"]').attr('status', '0');
+ } else {
+ $('input:password[name="changeRecoveryPassword"]').val("");
+ $('p[name="changeRecoveryPasswordBlock"]').removeClass("hidden");
+ $('input:button[name="enableRecoveryKey"]').attr('value', 'Disable recovery key');
+ $('input:button[name="enableRecoveryKey"]').attr('status', '1');
}
- );
+ })
+ .fail(function (jqXHR) {
+ $('input:button[name="enableRecoveryKey"]').attr('value', buttonValue);
+ $('input:button[name="enableRecoveryKey"]').attr('status', recoveryStatus);
+ OC.msg.finishedError('#encryptionSetRecoveryKey .msg', JSON.parse(jqXHR.responseText).data.message);
+ });
+
+
+ });
+
+ $("#repeatEncryptionRecoveryPassword").keyup(function (event) {
+ if (event.keyCode == 13) {
+ $("#enableRecoveryKey").click();
}
- );
+ });
// change recovery password
- $('button:button[name="submitChangeRecoveryKey"]').click(function() {
+ $('button:button[name="submitChangeRecoveryKey"]').click(function () {
var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
var confirmNewPassword = $('#repeatedNewEncryptionRecoveryPassword').val();
OC.msg.startSaving('#encryptionChangeRecoveryKey .msg');
$.post(
- OC.generateUrl('/apps/encryption/ajax/changeRecoveryPassword'),
- { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword, confirmPassword: confirmNewPassword },
- function( data ) {
- OC.msg.finishedSaving('#encryptionChangeRecoveryKey .msg', data);
- }
- );
+ OC.generateUrl('/apps/encryption/ajax/changeRecoveryPassword'),
+ {
+ oldPassword: oldRecoveryPassword,
+ newPassword: newRecoveryPassword,
+ confirmPassword: confirmNewPassword
+ }
+ ).done(function (data) {
+ OC.msg.finishedSuccess('#encryptionChangeRecoveryKey .msg', data.data.message);
+ })
+ .fail(function (jqXHR) {
+ OC.msg.finishedError('#encryptionChangeRecoveryKey .msg', JSON.parse(jqXHR.responseText).data.message);
+ });
});
});
diff --git a/apps/encryption/js/settings-personal.js b/apps/encryption/js/settings-personal.js
index e36f10a244e..fa94bea6bc5 100644
--- a/apps/encryption/js/settings-personal.js
+++ b/apps/encryption/js/settings-personal.js
@@ -9,35 +9,43 @@ if (!OC.Encryption) {
}
OC.Encryption = {
- updatePrivateKeyPassword: function() {
+ updatePrivateKeyPassword: function () {
var oldPrivateKeyPassword = $('input:password[id="oldPrivateKeyPassword"]').val();
var newPrivateKeyPassword = $('input:password[id="newPrivateKeyPassword"]').val();
- OC.msg.startSaving('#encryption .msg');
+ OC.msg.startSaving('#ocDefaultEncryptionModule .msg');
$.post(
OC.generateUrl('/apps/encryption/ajax/updatePrivateKeyPassword'),
- {oldPassword: oldPrivateKeyPassword, newPassword: newPrivateKeyPassword}
- ).success(function (response) {
- OC.msg.finishedSuccess('#encryption .msg', response.message);
- }).fail(function (response) {
- OC.msg.finishedError('#encryption .msg', response.responseJSON.message);
- });
+ {
+ oldPassword: oldPrivateKeyPassword,
+ newPassword: newPrivateKeyPassword
+ }
+ ).done(function (data) {
+ OC.msg.finishedSuccess('#ocDefaultEncryptionModule .msg', data.message);
+ })
+ .fail(function (jqXHR) {
+ OC.msg.finishedError('#ocDefaultEncryptionModule .msg', JSON.parse(jqXHR.responseText).message);
+ });
}
};
-$(document).ready(function(){
+$(document).ready(function () {
// Trigger ajax on recoveryAdmin status change
- $( 'input:radio[name="userEnableRecovery"]' ).change(
- function() {
- var recoveryStatus = $( this ).val();
+ $('input:radio[name="userEnableRecovery"]').change(
+ function () {
+ var recoveryStatus = $(this).val();
OC.msg.startAction('#userEnableRecovery .msg', 'Updating recovery keys. This can take some time...');
$.post(
- OC.generateUrl('/apps/encryption/ajax/userSetRecovery'),
- { userEnableRecovery: recoveryStatus },
- function( data ) {
- OC.msg.finishedAction('#userEnableRecovery .msg', data);
+ OC.generateUrl('/apps/encryption/ajax/userSetRecovery'),
+ {
+ userEnableRecovery: recoveryStatus
}
- );
+ ).done(function (data) {
+ OC.msg.finishedSuccess('#userEnableRecovery .msg', data.data.message);
+ })
+ .fail(function (jqXHR) {
+ OC.msg.finishedError('#userEnableRecovery .msg', JSON.parse(jqXHR.responseText).data.message);
+ });
// Ensure page is not reloaded on form submit
return false;
}
@@ -45,12 +53,12 @@ $(document).ready(function(){
// update private key password
- $('input:password[name="changePrivateKeyPassword"]').keyup(function(event) {
+ $('input:password[name="changePrivateKeyPassword"]').keyup(function (event) {
var oldPrivateKeyPassword = $('input:password[id="oldPrivateKeyPassword"]').val();
var newPrivateKeyPassword = $('input:password[id="newPrivateKeyPassword"]').val();
- if (newPrivateKeyPassword !== '' && oldPrivateKeyPassword !== '' ) {
+ if (newPrivateKeyPassword !== '' && oldPrivateKeyPassword !== '') {
$('button:button[name="submitChangePrivateKeyPassword"]').removeAttr("disabled");
- if(event.which === 13) {
+ if (event.which === 13) {
OC.Encryption.updatePrivateKeyPassword();
}
} else {
@@ -58,7 +66,7 @@ $(document).ready(function(){
}
});
- $('button:button[name="submitChangePrivateKeyPassword"]').click(function() {
+ $('button:button[name="submitChangePrivateKeyPassword"]').click(function () {
OC.Encryption.updatePrivateKeyPassword();
});
diff --git a/apps/encryption/l10n/ar.js b/apps/encryption/l10n/ar.js
index 7f2dcb55c02..3e3d73ead26 100644
--- a/apps/encryption/l10n/ar.js
+++ b/apps/encryption/l10n/ar.js
@@ -10,21 +10,16 @@ OC.L10N.register(
"Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):",
"Recovery key password" : "استعادة كلمة مرور المفتاح",
- "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح",
- "Enabled" : "مفعلة",
- "Disabled" : "معطلة",
"Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:",
- "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح",
- "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح",
- "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد",
"Change Password" : "عدل كلمة السر",
" If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.",
"Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول",
"Current log-in password" : "كلمة المرور الحالية الخاصة بالدخول",
"Update Private Key Password" : "تحديث كلمة المرور لـ المفتاح الخاص",
"Enable password recovery:" : "تفعيل استعادة كلمة المرور:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور",
+ "Enabled" : "مفعلة",
+ "Disabled" : "معطلة"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/apps/encryption/l10n/ar.json b/apps/encryption/l10n/ar.json
index 3808eeb9e76..8cb0aa2e3a5 100644
--- a/apps/encryption/l10n/ar.json
+++ b/apps/encryption/l10n/ar.json
@@ -8,21 +8,16 @@
"Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):",
"Recovery key password" : "استعادة كلمة مرور المفتاح",
- "Repeat Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح",
- "Enabled" : "مفعلة",
- "Disabled" : "معطلة",
"Change recovery key password:" : "تعديل كلمة المرور استعادة المفتاح:",
- "Old Recovery key password" : "كلمة المرور القديمة لـ استعامة المفتاح",
- "New Recovery key password" : "تعيين كلمة مرور جديدة لـ استعادة المفتاح",
- "Repeat New Recovery key password" : "كرر كلمة المرور لـ استعادة المفتاح من جديد",
"Change Password" : "عدل كلمة السر",
" If you don't remember your old password you can ask your administrator to recover your files." : "اذا كنت لاتتذكر كلمة السر تستطيع ان تطلب من المدير ان يستعيد ملفاتك.",
"Old log-in password" : "كلمة المرور القديمة الخاصة بالدخول",
"Current log-in password" : "كلمة المرور الحالية الخاصة بالدخول",
"Update Private Key Password" : "تحديث كلمة المرور لـ المفتاح الخاص",
"Enable password recovery:" : "تفعيل استعادة كلمة المرور:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور",
+ "Enabled" : "مفعلة",
+ "Disabled" : "معطلة"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ast.js b/apps/encryption/l10n/ast.js
index 7316c5b6651..637a66d178c 100644
--- a/apps/encryption/l10n/ast.js
+++ b/apps/encryption/l10n/ast.js
@@ -10,15 +10,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
- "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitáu",
"Change recovery key password:" : "Camudar la contraseña de la clave de recuperación",
- "Old Recovery key password" : "Clave de recuperación vieya",
- "New Recovery key password" : "Clave de recuperación nueva",
- "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva",
"Change Password" : "Camudar contraseña",
"Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.",
@@ -26,6 +19,8 @@ OC.L10N.register(
"Current log-in password" : "Contraseña d'accesu actual",
"Update Private Key Password" : "Anovar Contraseña de Clave Privada",
"Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña",
+ "Enabled" : "Habilitar",
+ "Disabled" : "Deshabilitáu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/ast.json b/apps/encryption/l10n/ast.json
index 6639d1341ca..30f3c70aab8 100644
--- a/apps/encryption/l10n/ast.json
+++ b/apps/encryption/l10n/ast.json
@@ -8,15 +8,8 @@
"Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
- "Repeat Recovery key password" : "Repeti la contraseña de clave de recuperación",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitáu",
"Change recovery key password:" : "Camudar la contraseña de la clave de recuperación",
- "Old Recovery key password" : "Clave de recuperación vieya",
- "New Recovery key password" : "Clave de recuperación nueva",
- "Repeat New Recovery key password" : "Repetir la clave de recuperación nueva",
"Change Password" : "Camudar contraseña",
"Set your old private key password to your current log-in password:" : "Afita la contraseña de clave privada vieya pa la to contraseña d'aniciu de sesión actual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si nun recuerdes la contraseña vieya, pues pidir a alministrador que te recupere los ficheros.",
@@ -24,6 +17,8 @@
"Current log-in password" : "Contraseña d'accesu actual",
"Update Private Key Password" : "Anovar Contraseña de Clave Privada",
"Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña",
+ "Enabled" : "Habilitar",
+ "Disabled" : "Deshabilitáu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/az.js b/apps/encryption/l10n/az.js
index bbb3e72ce95..b82034083e9 100644
--- a/apps/encryption/l10n/az.js
+++ b/apps/encryption/l10n/az.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Bərpa açarını aktivləşdir(şifrə itirilməsi hadısələrində, istifadəçi fayllarının bərpasına izin verir)",
"Recovery key password" : "Açar şifrənin bərpa edilməsi",
- "Repeat Recovery key password" : "Bərpa açarın şifrəsini təkrar edin",
- "Enabled" : "İşə salınıb",
- "Disabled" : "Dayandırılıb",
"Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:",
- "Old Recovery key password" : "Köhnə bərpa açarı şifrəsi",
- "New Recovery key password" : "Yeni bərpa açarı şifrəsi",
- "Repeat New Recovery key password" : "Yeni bərpa açarı şifrəsini təkrar edin",
"Change Password" : "Şifrəni dəyişdir",
"Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.",
"Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Hal-hazırki giriş şifrəsi",
"Update Private Key Password" : "Gizli açar şifrəsini yenilə",
"Enable password recovery:" : "Şifrə bərpasını işə sal:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq",
+ "Enabled" : "İşə salınıb",
+ "Disabled" : "Dayandırılıb"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/az.json b/apps/encryption/l10n/az.json
index 78bedc365b1..32f59791733 100644
--- a/apps/encryption/l10n/az.json
+++ b/apps/encryption/l10n/az.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Bərpa açarını aktivləşdir(şifrə itirilməsi hadısələrində, istifadəçi fayllarının bərpasına izin verir)",
"Recovery key password" : "Açar şifrənin bərpa edilməsi",
- "Repeat Recovery key password" : "Bərpa açarın şifrəsini təkrar edin",
- "Enabled" : "İşə salınıb",
- "Disabled" : "Dayandırılıb",
"Change recovery key password:" : "Bərpa açarın şifrəsini dəyişdir:",
- "Old Recovery key password" : "Köhnə bərpa açarı şifrəsi",
- "New Recovery key password" : "Yeni bərpa açarı şifrəsi",
- "Repeat New Recovery key password" : "Yeni bərpa açarı şifrəsini təkrar edin",
"Change Password" : "Şifrəni dəyişdir",
"Your private key password no longer matches your log-in password." : "Sizin gizli açar şifrəsi, artıq giriş adınızla uyğun gəlmir.",
"Set your old private key password to your current log-in password:" : "Köhnə açar şifrənizi, sizin hal-hazırki giriş şifrənizə təyin edin: ",
@@ -34,6 +27,8 @@
"Current log-in password" : "Hal-hazırki giriş şifrəsi",
"Update Private Key Password" : "Gizli açar şifrəsini yenilə",
"Enable password recovery:" : "Şifrə bərpasını işə sal:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu opsiyanın aktiv edilməsi sizə, şifrənin itdiyi hallarda bütün şifrələnmiş fayllarınıza yetkinin yenidən əldə edilməsinə şərait yaradacaq",
+ "Enabled" : "İşə salınıb",
+ "Disabled" : "Dayandırılıb"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/bg_BG.js b/apps/encryption/l10n/bg_BG.js
index f809545a6b9..4683f2c05bc 100644
--- a/apps/encryption/l10n/bg_BG.js
+++ b/apps/encryption/l10n/bg_BG.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Успешно променена тайната парола за ключа.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):",
"Recovery key password" : "Парола за възстановяане на ключа",
- "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа",
- "Enabled" : "Включено",
- "Disabled" : "Изключено",
"Change recovery key password:" : "Промени паролата за въстановяване на ключа:",
- "Old Recovery key password" : "Старата парола за въстановяване на ключа",
- "New Recovery key password" : "Новата парола за възстановяване на ключа",
- "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа",
"Change Password" : "Промени Паролата",
"Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.",
"Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Текуща парола за вписване",
"Update Private Key Password" : "Промени Тайната Парола за Ключа",
"Enable password recovery:" : "Включи опцията възстановяване на паролата:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола.",
+ "Enabled" : "Включено",
+ "Disabled" : "Изключено"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/bg_BG.json b/apps/encryption/l10n/bg_BG.json
index ca285bfff49..562dd0d2af5 100644
--- a/apps/encryption/l10n/bg_BG.json
+++ b/apps/encryption/l10n/bg_BG.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Успешно променена тайната парола за ключа.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):",
"Recovery key password" : "Парола за възстановяане на ключа",
- "Repeat Recovery key password" : "Повтори паролата за възстановяване на ключа",
- "Enabled" : "Включено",
- "Disabled" : "Изключено",
"Change recovery key password:" : "Промени паролата за въстановяване на ключа:",
- "Old Recovery key password" : "Старата парола за въстановяване на ключа",
- "New Recovery key password" : "Новата парола за възстановяване на ключа",
- "Repeat New Recovery key password" : "Повтори новата паролза за възстановяване на ключа",
"Change Password" : "Промени Паролата",
"Your private key password no longer matches your log-in password." : "Личният ти ключ не съвпада с паролата за вписване.",
"Set your old private key password to your current log-in password:" : "Промени паролата за тайния ти включ на паролата за вписване:",
@@ -34,6 +27,8 @@
"Current log-in password" : "Текуща парола за вписване",
"Update Private Key Password" : "Промени Тайната Парола за Ключа",
"Enable password recovery:" : "Включи опцията възстановяване на паролата:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола.",
+ "Enabled" : "Включено",
+ "Disabled" : "Изключено"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/bn_BD.js b/apps/encryption/l10n/bn_BD.js
index be81f44796f..f91008e2408 100644
--- a/apps/encryption/l10n/bn_BD.js
+++ b/apps/encryption/l10n/bn_BD.js
@@ -4,13 +4,9 @@ OC.L10N.register(
"Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে",
"Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে",
"Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ",
- "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন",
- "Enabled" : "কার্যকর",
- "Disabled" : "অকার্যকর",
"Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:",
- "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ",
- "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ",
- "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন",
- "Change Password" : "কূটশব্দ পরিবর্তন করুন"
+ "Change Password" : "কূটশব্দ পরিবর্তন করুন",
+ "Enabled" : "কার্যকর",
+ "Disabled" : "অকার্যকর"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/bn_BD.json b/apps/encryption/l10n/bn_BD.json
index 2b4de7e4e66..375bbd517a7 100644
--- a/apps/encryption/l10n/bn_BD.json
+++ b/apps/encryption/l10n/bn_BD.json
@@ -2,13 +2,9 @@
"Recovery key successfully enabled" : "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে",
"Recovery key successfully disabled" : "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে",
"Password successfully changed." : "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ",
- "Repeat Recovery key password" : "পূণরূদ্ধার কি এর কুটশব্দ পূণরায় দিন",
- "Enabled" : "কার্যকর",
- "Disabled" : "অকার্যকর",
"Change recovery key password:" : "পূণরূদ্ধার কি এর কুটশব্দ পরিবর্তন করুন:",
- "Old Recovery key password" : "পূণরূদ্ধার কি এর পুরাতন কুটশব্দ",
- "New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ",
- "Repeat New Recovery key password" : "পূণরূদ্ধার কি এর নতুন কুটশব্দ পূণরায় দিন",
- "Change Password" : "কূটশব্দ পরিবর্তন করুন"
+ "Change Password" : "কূটশব্দ পরিবর্তন করুন",
+ "Enabled" : "কার্যকর",
+ "Disabled" : "অকার্যকর"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ca.js b/apps/encryption/l10n/ca.js
index c81840fae7d..d1eff280140 100644
--- a/apps/encryption/l10n/ca.js
+++ b/apps/encryption/l10n/ca.js
@@ -10,15 +10,8 @@ OC.L10N.register(
"Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):",
"Recovery key password" : "Clau de recuperació de la contrasenya",
- "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya",
- "Enabled" : "Activat",
- "Disabled" : "Desactivat",
"Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:",
- "Old Recovery key password" : "Antiga clau de recuperació de contrasenya",
- "New Recovery key password" : "Nova clau de recuperació de contrasenya",
- "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya",
"Change Password" : "Canvia la contrasenya",
"Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:",
"Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:",
@@ -27,6 +20,8 @@ OC.L10N.register(
"Current log-in password" : "Contrasenya d'accés actual",
"Update Private Key Password" : "Actualitza la contrasenya de clau privada",
"Enable password recovery:" : "Habilita la recuperació de contrasenya:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya",
+ "Enabled" : "Activat",
+ "Disabled" : "Desactivat"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/ca.json b/apps/encryption/l10n/ca.json
index 5309fafa2d6..0bb29d59c5a 100644
--- a/apps/encryption/l10n/ca.json
+++ b/apps/encryption/l10n/ca.json
@@ -8,15 +8,8 @@
"Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):",
"Recovery key password" : "Clau de recuperació de la contrasenya",
- "Repeat Recovery key password" : "Repetiu la clau de recuperació de contrasenya",
- "Enabled" : "Activat",
- "Disabled" : "Desactivat",
"Change recovery key password:" : "Canvia la clau de recuperació de contrasenya:",
- "Old Recovery key password" : "Antiga clau de recuperació de contrasenya",
- "New Recovery key password" : "Nova clau de recuperació de contrasenya",
- "Repeat New Recovery key password" : "Repetiu la nova clau de recuperació de contrasenya",
"Change Password" : "Canvia la contrasenya",
"Your private key password no longer matches your log-in password." : "La clau privada ja no es correspon amb la contrasenya d'accés:",
"Set your old private key password to your current log-in password:" : "Establiu la vostra antiga clau privada a l'actual contrasenya d'accés:",
@@ -25,6 +18,8 @@
"Current log-in password" : "Contrasenya d'accés actual",
"Update Private Key Password" : "Actualitza la contrasenya de clau privada",
"Enable password recovery:" : "Habilita la recuperació de contrasenya:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya",
+ "Enabled" : "Activat",
+ "Disabled" : "Desactivat"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/cs_CZ.js b/apps/encryption/l10n/cs_CZ.js
index e433bad6b97..4aeae1741de 100644
--- a/apps/encryption/l10n/cs_CZ.js
+++ b/apps/encryption/l10n/cs_CZ.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Nepodařilo se povolit záchranný klíč. Zkontrolujte prosím vaše heslo záchranného klíče!",
"Recovery key successfully disabled" : "Záchranný klíč byl úspěšně zakázán",
"Could not disable recovery key. Please check your recovery key password!" : "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo svého záchranného klíče!",
+ "Missing parameters" : "Chybějící parametry",
"Please provide the old recovery password" : "Zadejte prosím staré heslo pro obnovu",
"Please provide a new recovery password" : "Zadejte prosím nové heslo pro obnovu",
"Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu",
"Password successfully changed." : "Heslo bylo úspěšně změněno.",
"Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.",
+ "Recovery Key disabled" : "Záchranný klíč není povolen",
"Recovery Key enabled" : "Záchranný klíč povolen",
"Could not enable the recovery key, please try again or contact your administrator" : "Nelze povolit záchranný klíč. Zkuste to prosím znovu nebo kontaktujte svého správce.",
"Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste",
- "ownCloud basic encryption module" : "ownCloud základní šifrovací modul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)",
+ "Enable recovery key" : "Povolit záchranný klíč",
+ "Disable recovery key" : "Vypnout záchranný klíč",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Záchranný klíč je dodatečný šifrovací klíč použitý pro\nšifrování souborů. S jeho pomocí lze obnovit soubory uživatele při zapomenutí hesla.",
"Recovery key password" : "Heslo klíče pro obnovu",
- "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu",
- "Enabled" : "Povoleno",
- "Disabled" : "Zakázáno",
+ "Repeat recovery key password" : "Zopakovat heslo záchranného klíče",
"Change recovery key password:" : "Změna hesla klíče pro obnovu:",
- "Old Recovery key password" : "Původní heslo klíče pro obnovu",
- "New Recovery key password" : "Nové heslo klíče pro obnovu",
- "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu",
+ "Old recovery key password" : "Staré heslo záchranného klíče",
+ "New recovery key password" : "Nové heslo záchranného klíče",
+ "Repeat new recovery key password" : "Zopakujte nové heslo záchranného klíče",
"Change Password" : "Změnit heslo",
+ "ownCloud basic encryption module" : "ownCloud základní šifrovací modul",
"Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.",
"Set your old private key password to your current log-in password:" : "Změňte své staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete své původní heslo, můžete požádat správce o obnovu vašich souborů.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Aktuální přihlašovací heslo",
"Update Private Key Password" : "Změnit heslo soukromého klíče",
"Enable password recovery:" : "Povolit obnovu hesla:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo",
+ "Enabled" : "Povoleno",
+ "Disabled" : "Zakázáno"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/encryption/l10n/cs_CZ.json b/apps/encryption/l10n/cs_CZ.json
index 164d7ac7354..bea25e846c1 100644
--- a/apps/encryption/l10n/cs_CZ.json
+++ b/apps/encryption/l10n/cs_CZ.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Nepodařilo se povolit záchranný klíč. Zkontrolujte prosím vaše heslo záchranného klíče!",
"Recovery key successfully disabled" : "Záchranný klíč byl úspěšně zakázán",
"Could not disable recovery key. Please check your recovery key password!" : "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo svého záchranného klíče!",
+ "Missing parameters" : "Chybějící parametry",
"Please provide the old recovery password" : "Zadejte prosím staré heslo pro obnovu",
"Please provide a new recovery password" : "Zadejte prosím nové heslo pro obnovu",
"Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu",
"Password successfully changed." : "Heslo bylo úspěšně změněno.",
"Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.",
+ "Recovery Key disabled" : "Záchranný klíč není povolen",
"Recovery Key enabled" : "Záchranný klíč povolen",
"Could not enable the recovery key, please try again or contact your administrator" : "Nelze povolit záchranný klíč. Zkuste to prosím znovu nebo kontaktujte svého správce.",
"Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste",
- "ownCloud basic encryption module" : "ownCloud základní šifrovací modul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)",
+ "Enable recovery key" : "Povolit záchranný klíč",
+ "Disable recovery key" : "Vypnout záchranný klíč",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Záchranný klíč je dodatečný šifrovací klíč použitý pro\nšifrování souborů. S jeho pomocí lze obnovit soubory uživatele při zapomenutí hesla.",
"Recovery key password" : "Heslo klíče pro obnovu",
- "Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu",
- "Enabled" : "Povoleno",
- "Disabled" : "Zakázáno",
+ "Repeat recovery key password" : "Zopakovat heslo záchranného klíče",
"Change recovery key password:" : "Změna hesla klíče pro obnovu:",
- "Old Recovery key password" : "Původní heslo klíče pro obnovu",
- "New Recovery key password" : "Nové heslo klíče pro obnovu",
- "Repeat New Recovery key password" : "Zopakujte nové heslo klíče pro obnovu",
+ "Old recovery key password" : "Staré heslo záchranného klíče",
+ "New recovery key password" : "Nové heslo záchranného klíče",
+ "Repeat new recovery key password" : "Zopakujte nové heslo záchranného klíče",
"Change Password" : "Změnit heslo",
+ "ownCloud basic encryption module" : "ownCloud základní šifrovací modul",
"Your private key password no longer matches your log-in password." : "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem.",
"Set your old private key password to your current log-in password:" : "Změňte své staré heslo soukromého klíče na stejné, jako je vaše současné přihlašovací heslo:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Pokud si nepamatujete své původní heslo, můžete požádat správce o obnovu vašich souborů.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Aktuální přihlašovací heslo",
"Update Private Key Password" : "Změnit heslo soukromého klíče",
"Enable password recovery:" : "Povolit obnovu hesla:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo",
+ "Enabled" : "Povoleno",
+ "Disabled" : "Zakázáno"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/da.js b/apps/encryption/l10n/da.js
index 18c8e22bc61..233c3b7ae68 100644
--- a/apps/encryption/l10n/da.js
+++ b/apps/encryption/l10n/da.js
@@ -21,17 +21,10 @@ OC.L10N.register(
"Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.",
- "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):",
"Recovery key password" : "Gendannelsesnøgle kodeord",
- "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden",
- "Enabled" : "Aktiveret",
- "Disabled" : "Deaktiveret",
"Change recovery key password:" : "Skift gendannelsesnøgle kodeord:",
- "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord",
- "New Recovery key password" : "Ny Gendannelsesnøgle kodeord",
- "Repeat New Recovery key password" : "Gentag det nye gendannaleses nøglekodeord",
"Change Password" : "Skift Kodeord",
+ "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
"Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.",
"Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ",
" If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.",
@@ -39,6 +32,8 @@ OC.L10N.register(
"Current log-in password" : "Nuvrende login kodeord",
"Update Private Key Password" : "Opdater Privat Nøgle Kodeord",
"Enable password recovery:" : "Aktiver kodeord gendannelse:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord",
+ "Enabled" : "Aktiveret",
+ "Disabled" : "Deaktiveret"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/da.json b/apps/encryption/l10n/da.json
index baf52f14508..a3c69c46a09 100644
--- a/apps/encryption/l10n/da.json
+++ b/apps/encryption/l10n/da.json
@@ -19,17 +19,10 @@
"Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.",
- "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):",
"Recovery key password" : "Gendannelsesnøgle kodeord",
- "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden",
- "Enabled" : "Aktiveret",
- "Disabled" : "Deaktiveret",
"Change recovery key password:" : "Skift gendannelsesnøgle kodeord:",
- "Old Recovery key password" : "Gammel Gendannelsesnøgle kodeord",
- "New Recovery key password" : "Ny Gendannelsesnøgle kodeord",
- "Repeat New Recovery key password" : "Gentag det nye gendannaleses nøglekodeord",
"Change Password" : "Skift Kodeord",
+ "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
"Your private key password no longer matches your log-in password." : "Dit private nøglekodeord stemmer ikke længere overens med dit login-kodeord.",
"Set your old private key password to your current log-in password:" : "Sæt dit gamle, private nøglekodeord til at være dit nuværende login-kodeord. ",
" If you don't remember your old password you can ask your administrator to recover your files." : "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.",
@@ -37,6 +30,8 @@
"Current log-in password" : "Nuvrende login kodeord",
"Update Private Key Password" : "Opdater Privat Nøgle Kodeord",
"Enable password recovery:" : "Aktiver kodeord gendannelse:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord",
+ "Enabled" : "Aktiveret",
+ "Disabled" : "Deaktiveret"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js
index c248b481cf1..5dc4453fd74 100644
--- a/apps/encryption/l10n/de.js
+++ b/apps/encryption/l10n/de.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
"Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
+ "Missing parameters" : "Fehlende Parameter",
"Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben",
"Please provide a new recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben",
"Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen",
"Password successfully changed." : "Dein Passwort wurde geändert.",
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.",
+ "Recovery Key disabled" : "Wiederherstellungsschlüssel deaktiviert",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuche es noch einmal oder kontaktiere Deinen Administrator",
"Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.",
- "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):",
+ "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
+ "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
"Recovery key password" : "Wiederherstellungsschlüssel-Passwort",
- "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen",
- "Enabled" : "Aktiviert",
- "Disabled" : "Deaktiviert",
+ "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:",
- "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort",
- "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort",
- "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen",
+ "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel",
+ "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel",
+ "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change Password" : "Passwort ändern",
+ "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Your private key password no longer matches your log-in password." : "Dein Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein.",
"Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Aktuelles Passwort",
"Update Private Key Password" : "Passwort für den privaten Schlüssel aktualisieren",
"Enable password recovery:" : "Passwortwiederherstellung aktivieren:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst",
+ "Enabled" : "Aktiviert",
+ "Disabled" : "Deaktiviert"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json
index 74c591fb632..abccb4016d1 100644
--- a/apps/encryption/l10n/de.json
+++ b/apps/encryption/l10n/de.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
"Recovery key successfully disabled" : "Wiederherstellungsschlüssel deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
+ "Missing parameters" : "Fehlende Parameter",
"Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben",
"Please provide a new recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben",
"Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen",
"Password successfully changed." : "Dein Passwort wurde geändert.",
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.",
+ "Recovery Key disabled" : "Wiederherstellungsschlüssel deaktiviert",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuche es noch einmal oder kontaktiere Deinen Administrator",
"Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.",
- "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):",
+ "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
+ "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
"Recovery key password" : "Wiederherstellungsschlüssel-Passwort",
- "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen",
- "Enabled" : "Aktiviert",
- "Disabled" : "Deaktiviert",
+ "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change recovery key password:" : "Wiederherstellungsschlüssel-Passwort ändern:",
- "Old Recovery key password" : "Altes Wiederherstellungsschlüssel-Passwort",
- "New Recovery key password" : "Neues Wiederherstellungsschlüssel-Passwort",
- "Repeat New Recovery key password" : "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen",
+ "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel",
+ "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel",
+ "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change Password" : "Passwort ändern",
+ "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Your private key password no longer matches your log-in password." : "Dein Passwort für Deinen privaten Schlüssel stimmt nicht mehr mit Deinem Loginpasswort überein.",
"Set your old private key password to your current log-in password:" : "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Aktuelles Passwort",
"Update Private Key Password" : "Passwort für den privaten Schlüssel aktualisieren",
"Enable password recovery:" : "Passwortwiederherstellung aktivieren:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst",
+ "Enabled" : "Aktiviert",
+ "Disabled" : "Deaktiviert"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js
index 695937fc6c5..9b8e571518a 100644
--- a/apps/encryption/l10n/de_DE.js
+++ b/apps/encryption/l10n/de_DE.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
"Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
+ "Missing parameters" : "Fehlende Parameter",
"Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben",
"Please provide a new recovery password" : "Bitte das neue Passwort zur Wiederherstellung eingeben",
"Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen",
"Password successfully changed." : "Das Passwort wurde erfolgreich geändert.",
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
+ "Recovery Key disabled" : "Wiederherstellungsschlüssel deaktiviert",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuchen Sie es noch einmal oder kontaktieren Sie Ihren Administrator",
"Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.",
- "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht):",
+ "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
+ "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
"Recovery key password" : "Wiederherstellungschlüsselpasswort",
- "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen",
- "Enabled" : "Aktiviert",
- "Disabled" : "Deaktiviert",
+ "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern",
- "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort",
- "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ",
- "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen",
+ "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel",
+ "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel",
+ "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change Password" : "Passwort ändern",
+ "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.",
"Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Aktuelles Anmeldepasswort",
"Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren",
"Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.",
+ "Enabled" : "Aktiviert",
+ "Disabled" : "Deaktiviert"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json
index 66e7d6f9772..aee9e551163 100644
--- a/apps/encryption/l10n/de_DE.json
+++ b/apps/encryption/l10n/de_DE.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
"Recovery key successfully disabled" : "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" : "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
+ "Missing parameters" : "Fehlende Parameter",
"Please provide the old recovery password" : "Bitte das alte Passwort zur Wiederherstellung eingeben",
"Please provide a new recovery password" : "Bitte das neue Passwort zur Wiederherstellung eingeben",
"Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen",
"Password successfully changed." : "Das Passwort wurde erfolgreich geändert.",
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
+ "Recovery Key disabled" : "Wiederherstellungsschlüssel deaktiviert",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuchen Sie es noch einmal oder kontaktieren Sie Ihren Administrator",
"Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.",
- "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht):",
+ "Enable recovery key" : "Wiederherstellungsschlüssel aktivieren",
+ "Disable recovery key" : "Wiederherstellungsschlüssel deaktivieren",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Der Wiederherstellungsschlüssel ist ein zusätzlicher Verschlüsselungsschlüssel, der zum Verschlüsseln von Dateien benutzt wird. Er erlaubt die Wiederherstellung von Benutzerdateien auch dann, wenn der Benutzer sein oder ihr Passwort vergessen hat.",
"Recovery key password" : "Wiederherstellungschlüsselpasswort",
- "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen",
- "Enabled" : "Aktiviert",
- "Disabled" : "Deaktiviert",
+ "Repeat recovery key password" : "Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change recovery key password:" : "Wiederherstellungsschlüsselpasswort ändern",
- "Old Recovery key password" : "Altes Wiederherstellungsschlüsselpasswort",
- "New Recovery key password" : "Neues Wiederherstellungsschlüsselpasswort ",
- "Repeat New Recovery key password" : "Neues Schlüsselpasswort zur Wiederherstellung wiederholen",
+ "Old recovery key password" : "Altes Passwort für den Wiederherstellungsschlüssel",
+ "New recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel",
+ "Repeat new recovery key password" : "Neues Passwort für den Wiederherstellungsschlüssel wiederholen",
"Change Password" : "Passwort ändern",
+ "ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Your private key password no longer matches your log-in password." : "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.",
"Set your old private key password to your current log-in password:" : "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Aktuelles Anmeldepasswort",
"Update Private Key Password" : "Das Passwort des privaten Schlüssels aktualisieren",
"Enable password recovery:" : "Die Passwort-Wiederherstellung aktivieren:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.",
+ "Enabled" : "Aktiviert",
+ "Disabled" : "Deaktiviert"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js
index 4b8ebdc2f7f..ec6491dc055 100644
--- a/apps/encryption/l10n/el.js
+++ b/apps/encryption/l10n/el.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Αποτυχία ενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
"Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης",
"Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
+ "Missing parameters" : "Ελλιπείς παράμετροι",
"Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς",
"Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς",
"Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς",
"Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.",
"Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
+ "Recovery Key disabled" : "Κλειδί ανάκτησης απενεργοποιημένο",
"Recovery Key enabled" : "Κλειδί ανάκτησης ενεργοποιημένο",
"Could not enable the recovery key, please try again or contact your administrator" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας",
"Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.",
- "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):",
+ "Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης",
+ "Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.",
"Recovery key password" : "Επαναφορά κωδικού κλειδιού",
- "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού",
- "Enabled" : "Ενεργοποιημένο",
- "Disabled" : "Απενεργοποιημένο",
+ "Repeat recovery key password" : "Επαναλάβετε τον κωδικό του κλειδιού ανάκτησης",
"Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:",
- "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού",
- "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού",
- "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού",
+ "Old recovery key password" : "Παλιός κωδικός κλειδιού ανάκτησης",
+ "New recovery key password" : "Νέος κωδικός κλειδιού ανάκτησης",
+ "Repeat new recovery key password" : "Επαναλάβετε το νέο κωδικό κλειδιού ανάκτησης",
"Change Password" : "Αλλαγή Κωδικού Πρόσβασης",
+ "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ",
"Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.",
"Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.",
" If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Τρέχον συνθηματικό πρόσβασης",
"Update Private Key Password" : "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης",
"Enable password recovery:" : "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας",
+ "Enabled" : "Ενεργοποιημένο",
+ "Disabled" : "Απενεργοποιημένο"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json
index b75921da40c..a94eac410da 100644
--- a/apps/encryption/l10n/el.json
+++ b/apps/encryption/l10n/el.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Αποτυχία ενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
"Recovery key successfully disabled" : "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης",
"Could not disable recovery key. Please check your recovery key password!" : "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
+ "Missing parameters" : "Ελλιπείς παράμετροι",
"Please provide the old recovery password" : "Παρακαλώ παρέχετε τον παλιό κωδικό επαναφοράς",
"Please provide a new recovery password" : "Παρακαλώ παρέχετε ένα νέο κωδικό επαναφοράς",
"Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς",
"Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.",
"Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
+ "Recovery Key disabled" : "Κλειδί ανάκτησης απενεργοποιημένο",
"Recovery Key enabled" : "Κλειδί ανάκτησης ενεργοποιημένο",
"Could not enable the recovery key, please try again or contact your administrator" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας",
"Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.",
- "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):",
+ "Enable recovery key" : "Ενεργοποίηση κλειδιού ανάκτησης",
+ "Disable recovery key" : "Απενεργοποίηση κλειδιού ανάκτησης",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Το κλειδί ανάκτησης είναι ένα επιπλέον κλειδί κρυπτογράφησης που χρησιμοποιείται για να κρυπτογραφήσει αρχεία. Επιτρέπει την ανάκτηση των αρχείων ενός χρήστη αν αυτός/αυτή ξεχάσει τον κωδικό πρόσβασης.",
"Recovery key password" : "Επαναφορά κωδικού κλειδιού",
- "Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού",
- "Enabled" : "Ενεργοποιημένο",
- "Disabled" : "Απενεργοποιημένο",
+ "Repeat recovery key password" : "Επαναλάβετε τον κωδικό του κλειδιού ανάκτησης",
"Change recovery key password:" : "Αλλαγή κλειδιού επαναφοράς κωδικού:",
- "Old Recovery key password" : "Παλιό κλειδί επαναφοράς κωδικού",
- "New Recovery key password" : "Νέο κλειδί επαναφοράς κωδικού",
- "Repeat New Recovery key password" : "Επαναλάβετε νέο κλειδί επαναφοράς κωδικού",
+ "Old recovery key password" : "Παλιός κωδικός κλειδιού ανάκτησης",
+ "New recovery key password" : "Νέος κωδικός κλειδιού ανάκτησης",
+ "Repeat new recovery key password" : "Επαναλάβετε το νέο κωδικό κλειδιού ανάκτησης",
"Change Password" : "Αλλαγή Κωδικού Πρόσβασης",
+ "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ",
"Your private key password no longer matches your log-in password." : "Ο κωδικός του ιδιωτικού κλειδιού σας δεν ταιριάζει πλέον με τον κωδικό σύνδεσής σας.",
"Set your old private key password to your current log-in password:" : "Ορίστε τον παλιό σας κωδικό ιδιωτικού κλειδιού στον τρέχοντα κωδικό σύνδεσης.",
" If you don't remember your old password you can ask your administrator to recover your files." : "Εάν δεν θυμάστε τον παλιό σας κωδικό μπορείτε να ζητήσετε από τον διαχειριστή σας να επανακτήσει τα αρχεία σας.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Τρέχον συνθηματικό πρόσβασης",
"Update Private Key Password" : "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης",
"Enable password recovery:" : "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας",
+ "Enabled" : "Ενεργοποιημένο",
+ "Disabled" : "Απενεργοποιημένο"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/en_GB.js b/apps/encryption/l10n/en_GB.js
index 518897fbbed..678c62f982d 100644
--- a/apps/encryption/l10n/en_GB.js
+++ b/apps/encryption/l10n/en_GB.js
@@ -21,17 +21,10 @@ OC.L10N.register(
"Private key password successfully updated." : "Private key password updated successfully.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again",
- "ownCloud basic encryption module" : "ownCloud basic encryption module",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):",
"Recovery key password" : "Recovery key password",
- "Repeat Recovery key password" : "Repeat recovery key password",
- "Enabled" : "Enabled",
- "Disabled" : "Disabled",
"Change recovery key password:" : "Change recovery key password:",
- "Old Recovery key password" : "Old recovery key password",
- "New Recovery key password" : "New recovery key password",
- "Repeat New Recovery key password" : "Repeat new recovery key password",
"Change Password" : "Change Password",
+ "ownCloud basic encryption module" : "ownCloud basic encryption module",
"Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.",
"Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:",
" If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.",
@@ -39,6 +32,8 @@ OC.L10N.register(
"Current log-in password" : "Current login password",
"Update Private Key Password" : "Update Private Key Password",
"Enable password recovery:" : "Enable password recovery:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss",
+ "Enabled" : "Enabled",
+ "Disabled" : "Disabled"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json
index 19575b67aff..6132868f396 100644
--- a/apps/encryption/l10n/en_GB.json
+++ b/apps/encryption/l10n/en_GB.json
@@ -19,17 +19,10 @@
"Private key password successfully updated." : "Private key password updated successfully.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again",
- "ownCloud basic encryption module" : "ownCloud basic encryption module",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):",
"Recovery key password" : "Recovery key password",
- "Repeat Recovery key password" : "Repeat recovery key password",
- "Enabled" : "Enabled",
- "Disabled" : "Disabled",
"Change recovery key password:" : "Change recovery key password:",
- "Old Recovery key password" : "Old recovery key password",
- "New Recovery key password" : "New recovery key password",
- "Repeat New Recovery key password" : "Repeat new recovery key password",
"Change Password" : "Change Password",
+ "ownCloud basic encryption module" : "ownCloud basic encryption module",
"Your private key password no longer matches your log-in password." : "Your private key password no longer matches your log-in password.",
"Set your old private key password to your current log-in password:" : "Set your old private key password to your current log-in password:",
" If you don't remember your old password you can ask your administrator to recover your files." : " If you don't remember your old password you can ask your administrator to recover your files.",
@@ -37,6 +30,8 @@
"Current log-in password" : "Current login password",
"Update Private Key Password" : "Update Private Key Password",
"Enable password recovery:" : "Enable password recovery:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss",
+ "Enabled" : "Enabled",
+ "Disabled" : "Disabled"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/eo.js b/apps/encryption/l10n/eo.js
index b547556342c..c575db5569b 100644
--- a/apps/encryption/l10n/eo.js
+++ b/apps/encryption/l10n/eo.js
@@ -4,12 +4,12 @@ OC.L10N.register(
"Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.",
"Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.",
"Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.",
- "Enabled" : "Kapabligita",
- "Disabled" : "Malkapabligita",
"Change Password" : "Ŝarĝi pasvorton",
"Old log-in password" : "Malnova ensaluta pasvorto",
"Current log-in password" : "Nuna ensaluta pasvorto",
"Update Private Key Password" : "Ĝisdatigi la pasvorton de la malpublika klavo",
- "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:"
+ "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:",
+ "Enabled" : "Kapabligita",
+ "Disabled" : "Malkapabligita"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/eo.json b/apps/encryption/l10n/eo.json
index d907cc2a493..8a79a2be564 100644
--- a/apps/encryption/l10n/eo.json
+++ b/apps/encryption/l10n/eo.json
@@ -2,12 +2,12 @@
"Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.",
"Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.",
"Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.",
- "Enabled" : "Kapabligita",
- "Disabled" : "Malkapabligita",
"Change Password" : "Ŝarĝi pasvorton",
"Old log-in password" : "Malnova ensaluta pasvorto",
"Current log-in password" : "Nuna ensaluta pasvorto",
"Update Private Key Password" : "Ĝisdatigi la pasvorton de la malpublika klavo",
- "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:"
+ "Enable password recovery:" : "Kapabligi restaŭron de pasvorto:",
+ "Enabled" : "Kapabligita",
+ "Disabled" : "Malkapabligita"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/es.js b/apps/encryption/l10n/es.js
index 6a682d1a209..dd49810f03a 100644
--- a/apps/encryption/l10n/es.js
+++ b/apps/encryption/l10n/es.js
@@ -5,33 +5,34 @@ OC.L10N.register(
"Please repeat the recovery key password" : "Por favor, repita la contraseña de recuperación",
"Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada",
"Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos",
- "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor compruebe su contraseña de recuperación!",
+ "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor, ¡compruebe su contraseña de recuperación!",
"Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!",
+ "Missing parameters" : "Faltan parámetros",
"Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación",
- "Please provide a new recovery password" : "Por favor, ingrese una nueva contraseña de recuperación",
+ "Please provide a new recovery password" : "Por favor, provea una nueva contraseña de recuperación",
"Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación",
"Password successfully changed." : "Su contraseña ha sido cambiada",
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
+ "Recovery Key disabled" : "Desactivada la clave de recuperación",
"Recovery Key enabled" : "Recuperación de clave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador",
"Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.",
- "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.",
- "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.",
+ "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor inténtelo de nuevo.",
+ "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcta, por favor inténtelo de nuevo.",
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
- "ownCloud basic encryption module" : "Módulo básico de encriptación ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);",
+ "Enable recovery key" : "Activa la clave de recuperación",
+ "Disable recovery key" : "Desactiva la clave de recuperación",
"Recovery key password" : "Contraseña de clave de recuperación",
- "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitado",
+ "Repeat recovery key password" : "Repita la contraseña de recuperación",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
- "Old Recovery key password" : "Antigua clave de recuperación",
- "New Recovery key password" : "Nueva clave de recuperación",
- "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación",
+ "Old recovery key password" : "Antigua contraseña de recuperación",
+ "New recovery key password" : "Nueva contraseña de recuperación",
+ "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación.",
"Change Password" : "Cambiar contraseña",
+ "ownCloud basic encryption module" : "Módulo básico de cifrado ownCloud",
"Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.",
"Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.",
@@ -39,6 +40,8 @@ OC.L10N.register(
"Current log-in password" : "Contraseña de acceso actual",
"Update Private Key Password" : "Actualizar contraseña de clave privada",
"Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña",
+ "Enabled" : "Habilitar",
+ "Disabled" : "Deshabilitado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/es.json b/apps/encryption/l10n/es.json
index 9aaedac1f10..54811d078c9 100644
--- a/apps/encryption/l10n/es.json
+++ b/apps/encryption/l10n/es.json
@@ -3,33 +3,34 @@
"Please repeat the recovery key password" : "Por favor, repita la contraseña de recuperación",
"Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada",
"Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos",
- "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor compruebe su contraseña de recuperación!",
+ "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor, ¡compruebe su contraseña de recuperación!",
"Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!",
+ "Missing parameters" : "Faltan parámetros",
"Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación",
- "Please provide a new recovery password" : "Por favor, ingrese una nueva contraseña de recuperación",
+ "Please provide a new recovery password" : "Por favor, provea una nueva contraseña de recuperación",
"Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación",
"Password successfully changed." : "Su contraseña ha sido cambiada",
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
+ "Recovery Key disabled" : "Desactivada la clave de recuperación",
"Recovery Key enabled" : "Recuperación de clave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador",
"Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.",
- "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.",
- "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.",
+ "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor inténtelo de nuevo.",
+ "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcta, por favor inténtelo de nuevo.",
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
- "ownCloud basic encryption module" : "Módulo básico de encriptación ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);",
+ "Enable recovery key" : "Activa la clave de recuperación",
+ "Disable recovery key" : "Desactiva la clave de recuperación",
"Recovery key password" : "Contraseña de clave de recuperación",
- "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitado",
+ "Repeat recovery key password" : "Repita la contraseña de recuperación",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
- "Old Recovery key password" : "Antigua clave de recuperación",
- "New Recovery key password" : "Nueva clave de recuperación",
- "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación",
+ "Old recovery key password" : "Antigua contraseña de recuperación",
+ "New recovery key password" : "Nueva contraseña de recuperación",
+ "Repeat new recovery key password" : "Repita la nueva contraseña de recuperación.",
"Change Password" : "Cambiar contraseña",
+ "ownCloud basic encryption module" : "Módulo básico de cifrado ownCloud",
"Your private key password no longer matches your log-in password." : "Su contraseña de clave privada ya no coincide con su contraseña de acceso.",
"Set your old private key password to your current log-in password:" : "Establezca la contraseña de clave privada antigua para su contraseña de inicio de sesión actual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus ficheros.",
@@ -37,6 +38,8 @@
"Current log-in password" : "Contraseña de acceso actual",
"Update Private Key Password" : "Actualizar contraseña de clave privada",
"Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña",
+ "Enabled" : "Habilitar",
+ "Disabled" : "Deshabilitado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/es_AR.js b/apps/encryption/l10n/es_AR.js
index 527536b26fb..4b47a49e629 100644
--- a/apps/encryption/l10n/es_AR.js
+++ b/apps/encryption/l10n/es_AR.js
@@ -10,21 +10,16 @@ OC.L10N.register(
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):",
"Recovery key password" : "Contraseña de recuperación de clave",
- "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación",
- "Enabled" : "Habilitado",
- "Disabled" : "Deshabilitado",
"Change recovery key password:" : "Cambiar contraseña para recuperar la clave:",
- "Old Recovery key password" : "Contraseña antigua de recuperación de clave",
- "New Recovery key password" : "Nueva contraseña de recuperación de clave",
- "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación",
"Change Password" : "Cambiar contraseña",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos",
"Old log-in password" : "Contraseña anterior",
"Current log-in password" : "Contraseña actual",
"Update Private Key Password" : "Actualizar contraseña de la clave privada",
"Enable password recovery:" : "Habilitar recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña",
+ "Enabled" : "Habilitado",
+ "Disabled" : "Deshabilitado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/es_AR.json b/apps/encryption/l10n/es_AR.json
index 7b154b351e7..9c5d2519333 100644
--- a/apps/encryption/l10n/es_AR.json
+++ b/apps/encryption/l10n/es_AR.json
@@ -8,21 +8,16 @@
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):",
"Recovery key password" : "Contraseña de recuperación de clave",
- "Repeat Recovery key password" : "Repetir la contraseña de la clave de recuperación",
- "Enabled" : "Habilitado",
- "Disabled" : "Deshabilitado",
"Change recovery key password:" : "Cambiar contraseña para recuperar la clave:",
- "Old Recovery key password" : "Contraseña antigua de recuperación de clave",
- "New Recovery key password" : "Nueva contraseña de recuperación de clave",
- "Repeat New Recovery key password" : "Repetir Nueva contraseña para la clave de recuperación",
"Change Password" : "Cambiar contraseña",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si no te acordás de tu contraseña antigua, pedile al administrador que recupere tus archivos",
"Old log-in password" : "Contraseña anterior",
"Current log-in password" : "Contraseña actual",
"Update Private Key Password" : "Actualizar contraseña de la clave privada",
"Enable password recovery:" : "Habilitar recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña",
+ "Enabled" : "Habilitado",
+ "Disabled" : "Deshabilitado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/es_MX.js b/apps/encryption/l10n/es_MX.js
index a3b4645040d..64bfc291f82 100644
--- a/apps/encryption/l10n/es_MX.js
+++ b/apps/encryption/l10n/es_MX.js
@@ -10,21 +10,16 @@ OC.L10N.register(
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
- "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitado",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
- "Old Recovery key password" : "Antigua clave de recuperación",
- "New Recovery key password" : "Nueva clave de recuperación",
- "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación",
"Change Password" : "Cambiar contraseña",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.",
"Old log-in password" : "Contraseña de acceso antigua",
"Current log-in password" : "Contraseña de acceso actual",
"Update Private Key Password" : "Actualizar Contraseña de Clave Privada",
"Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña",
+ "Enabled" : "Habilitar",
+ "Disabled" : "Deshabilitado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/es_MX.json b/apps/encryption/l10n/es_MX.json
index 96d745e8f0d..9115513d7b1 100644
--- a/apps/encryption/l10n/es_MX.json
+++ b/apps/encryption/l10n/es_MX.json
@@ -8,21 +8,16 @@
"Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
- "Repeat Recovery key password" : "Repite la contraseña de clave de recuperación",
- "Enabled" : "Habilitar",
- "Disabled" : "Deshabilitado",
"Change recovery key password:" : "Cambiar la contraseña de la clave de recuperación",
- "Old Recovery key password" : "Antigua clave de recuperación",
- "New Recovery key password" : "Nueva clave de recuperación",
- "Repeat New Recovery key password" : "Repetir la nueva clave de recuperación",
"Change Password" : "Cambiar contraseña",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerda su antigua contraseña puede pedir a su administrador que le recupere sus archivos.",
"Old log-in password" : "Contraseña de acceso antigua",
"Current log-in password" : "Contraseña de acceso actual",
"Update Private Key Password" : "Actualizar Contraseña de Clave Privada",
"Enable password recovery:" : "Habilitar la recuperación de contraseña:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña",
+ "Enabled" : "Habilitar",
+ "Disabled" : "Deshabilitado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/et_EE.js b/apps/encryption/l10n/et_EE.js
index 67e7993cdd6..6e2684058fe 100644
--- a/apps/encryption/l10n/et_EE.js
+++ b/apps/encryption/l10n/et_EE.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):",
"Recovery key password" : "Taastevõtme parool",
- "Repeat Recovery key password" : "Korda taastevõtme parooli",
- "Enabled" : "Sisse lülitatud",
- "Disabled" : "Väljalülitatud",
"Change recovery key password:" : "Muuda taastevõtme parooli:",
- "Old Recovery key password" : "Vana taastevõtme parool",
- "New Recovery key password" : "Uus taastevõtme parool",
- "Repeat New Recovery key password" : "Korda uut taastevõtme parooli",
"Change Password" : "Muuda parooli",
"Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.",
"Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Praegune sisselogimise parool",
"Update Private Key Password" : "Uuenda privaatse võtme parooli",
"Enable password recovery:" : "Luba parooli taaste:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul",
+ "Enabled" : "Sisse lülitatud",
+ "Disabled" : "Väljalülitatud"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/et_EE.json b/apps/encryption/l10n/et_EE.json
index 00991bb6c88..66839779f67 100644
--- a/apps/encryption/l10n/et_EE.json
+++ b/apps/encryption/l10n/et_EE.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):",
"Recovery key password" : "Taastevõtme parool",
- "Repeat Recovery key password" : "Korda taastevõtme parooli",
- "Enabled" : "Sisse lülitatud",
- "Disabled" : "Väljalülitatud",
"Change recovery key password:" : "Muuda taastevõtme parooli:",
- "Old Recovery key password" : "Vana taastevõtme parool",
- "New Recovery key password" : "Uus taastevõtme parool",
- "Repeat New Recovery key password" : "Korda uut taastevõtme parooli",
"Change Password" : "Muuda parooli",
"Your private key password no longer matches your log-in password." : "Sinu provaatvõtme parool ei kattu enam sinu sisselogimise parooliga.",
"Set your old private key password to your current log-in password:" : "Pane oma vana privaatvõtme parooliks oma praegune sisselogimise parool.",
@@ -34,6 +27,8 @@
"Current log-in password" : "Praegune sisselogimise parool",
"Update Private Key Password" : "Uuenda privaatse võtme parooli",
"Enable password recovery:" : "Luba parooli taaste:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul",
+ "Enabled" : "Sisse lülitatud",
+ "Disabled" : "Väljalülitatud"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/eu.js b/apps/encryption/l10n/eu.js
index c8942314d38..083bd125ba9 100644
--- a/apps/encryption/l10n/eu.js
+++ b/apps/encryption/l10n/eu.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):",
"Recovery key password" : "Berreskuratze gako pasahitza",
- "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza",
- "Enabled" : "Gaitua",
- "Disabled" : "Ez-gaitua",
"Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:",
- "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra",
- "New Recovery key password" : "Berreskuratze gako pasahitz berria",
- "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza",
"Change Password" : "Aldatu Pasahitza",
"Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.",
"Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Sartzeko oraingo pasahitza",
"Update Private Key Password" : "Eguneratu gako pasahitza pribatua",
"Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan",
+ "Enabled" : "Gaitua",
+ "Disabled" : "Ez-gaitua"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/eu.json b/apps/encryption/l10n/eu.json
index 4c83627f8df..88639331be4 100644
--- a/apps/encryption/l10n/eu.json
+++ b/apps/encryption/l10n/eu.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):",
"Recovery key password" : "Berreskuratze gako pasahitza",
- "Repeat Recovery key password" : "Errepikatu berreskuratze gakoaren pasahitza",
- "Enabled" : "Gaitua",
- "Disabled" : "Ez-gaitua",
"Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:",
- "Old Recovery key password" : "Berreskuratze gako pasahitz zaharra",
- "New Recovery key password" : "Berreskuratze gako pasahitz berria",
- "Repeat New Recovery key password" : "Errepikatu berreskuratze gako berriaren pasahitza",
"Change Password" : "Aldatu Pasahitza",
"Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.",
"Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:",
@@ -34,6 +27,8 @@
"Current log-in password" : "Sartzeko oraingo pasahitza",
"Update Private Key Password" : "Eguneratu gako pasahitza pribatua",
"Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan",
+ "Enabled" : "Gaitua",
+ "Disabled" : "Ez-gaitua"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/fa.js b/apps/encryption/l10n/fa.js
index 24e91656aed..493b3992a62 100644
--- a/apps/encryption/l10n/fa.js
+++ b/apps/encryption/l10n/fa.js
@@ -8,19 +8,16 @@ OC.L10N.register(
"Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.",
"Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.",
"Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):",
"Recovery key password" : "رمزعبور کلید بازیابی",
- "Enabled" : "فعال شده",
- "Disabled" : "غیرفعال شده",
"Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:",
- "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ",
- "New Recovery key password" : "رمزعبور جدید کلید بازیابی",
"Change Password" : "تغییر رمزعبور",
" If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.",
"Old log-in password" : "رمزعبور قدیمی",
"Current log-in password" : "رمزعبور فعلی",
"Update Private Key Password" : "به روز رسانی رمزعبور کلید خصوصی",
"Enable password recovery:" : "فعال سازی بازیابی رمزعبور:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید.",
+ "Enabled" : "فعال شده",
+ "Disabled" : "غیرفعال شده"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/fa.json b/apps/encryption/l10n/fa.json
index ad046fcda2b..ccb7949e7e5 100644
--- a/apps/encryption/l10n/fa.json
+++ b/apps/encryption/l10n/fa.json
@@ -6,19 +6,16 @@
"Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.",
"Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.",
"Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):",
"Recovery key password" : "رمزعبور کلید بازیابی",
- "Enabled" : "فعال شده",
- "Disabled" : "غیرفعال شده",
"Change recovery key password:" : "تغییر رمزعبور کلید بازیابی:",
- "Old Recovery key password" : "رمزعبور قدیمی کلید بازیابی ",
- "New Recovery key password" : "رمزعبور جدید کلید بازیابی",
"Change Password" : "تغییر رمزعبور",
" If you don't remember your old password you can ask your administrator to recover your files." : "اگر رمزعبور قدیمی را فراموش کرده اید میتوانید از مدیر خود برای بازیابی فایل هایتان درخواست نمایید.",
"Old log-in password" : "رمزعبور قدیمی",
"Current log-in password" : "رمزعبور فعلی",
"Update Private Key Password" : "به روز رسانی رمزعبور کلید خصوصی",
"Enable password recovery:" : "فعال سازی بازیابی رمزعبور:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید.",
+ "Enabled" : "فعال شده",
+ "Disabled" : "غیرفعال شده"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/fi_FI.js b/apps/encryption/l10n/fi_FI.js
index 6589c4aa4c7..54b43463199 100644
--- a/apps/encryption/l10n/fi_FI.js
+++ b/apps/encryption/l10n/fi_FI.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Palautusavaimen käyttöönotto epäonnistui. Tarkista palautusavaimesi salasana!",
"Recovery key successfully disabled" : "Palautusavain poistettu onnistuneesti käytöstä",
"Could not disable recovery key. Please check your recovery key password!" : "Palautusavaimen poistaminen käytöstä ei onnistunut. Tarkista palautusavaimesi salasana!",
+ "Missing parameters" : "Puuttuvat parametrit",
"Please provide the old recovery password" : "Anna vanha palautussalasana",
"Please provide a new recovery password" : "Anna uusi palautussalasana",
"Please repeat the new recovery password" : "Toista uusi palautussalasana",
"Password successfully changed." : "Salasana vaihdettiin onnistuneesti.",
"Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.",
+ "Recovery Key disabled" : "Palautusavain poistettu käytöstä",
"Recovery Key enabled" : "Palautusavain käytössä",
"Could not enable the recovery key, please try again or contact your administrator" : "Palautusavaimen käyttöönotto epäonnistui, yritä myöhemmin uudelleen tai ota yhteys ylläpitäjään",
"Could not update the private key password." : "Yksityisen avaimen salasanaa ei voitu päivittää.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.",
- "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):",
+ "Enable recovery key" : "Ota palautusavain käyttöön",
+ "Disable recovery key" : "Poista palautusavain käytöstä",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Palautusavain on ylimääräinen salausavain, jota käytetään tiedostojen salaamiseen. Sen avulla on mahdollista palauttaa käyttäjien tiedostot, vaikka käyttäjä unohtaisi oman salasanansa.",
"Recovery key password" : "Palautusavaimen salasana",
- "Repeat Recovery key password" : "Toista palautusavaimen salasana",
- "Enabled" : "Käytössä",
- "Disabled" : "Ei käytössä",
+ "Repeat recovery key password" : "Toista salausavaimen salasana",
"Change recovery key password:" : "Vaihda palautusavaimen salasana:",
- "Old Recovery key password" : "Vanha palautusavaimen salasana",
- "New Recovery key password" : "Uusi palautusavaimen salasana",
- "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana",
+ "Old recovery key password" : "Vanha salausavaimen salasana",
+ "New recovery key password" : "Uusi salausavaimen salasana",
+ "Repeat new recovery key password" : "Toista uusi salausavaimen salasana",
"Change Password" : "Vaihda salasana",
+ "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli",
"Your private key password no longer matches your log-in password." : "Salaisen avaimesi salasana ei enää vastaa kirjautumissalasanaasi.",
"Set your old private key password to your current log-in password:" : "Aseta yksityisen avaimen vanha salasana vastaamaan nykyistä kirjautumissalasanaasi:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Nykyinen kirjautumissalasana",
"Update Private Key Password" : "Päivitä yksityisen avaimen salasana",
"Enable password recovery:" : "Ota salasanan palautus käyttöön:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tämän valinnan käyttäminen mahdollistaa pääsyn salattuihin tiedostoihisi, jos salasana unohtuu"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tämän valinnan käyttäminen mahdollistaa pääsyn salattuihin tiedostoihisi, jos salasana unohtuu",
+ "Enabled" : "Käytössä",
+ "Disabled" : "Ei käytössä"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/fi_FI.json b/apps/encryption/l10n/fi_FI.json
index de8159a61b2..c42f9928c6b 100644
--- a/apps/encryption/l10n/fi_FI.json
+++ b/apps/encryption/l10n/fi_FI.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Palautusavaimen käyttöönotto epäonnistui. Tarkista palautusavaimesi salasana!",
"Recovery key successfully disabled" : "Palautusavain poistettu onnistuneesti käytöstä",
"Could not disable recovery key. Please check your recovery key password!" : "Palautusavaimen poistaminen käytöstä ei onnistunut. Tarkista palautusavaimesi salasana!",
+ "Missing parameters" : "Puuttuvat parametrit",
"Please provide the old recovery password" : "Anna vanha palautussalasana",
"Please provide a new recovery password" : "Anna uusi palautussalasana",
"Please repeat the new recovery password" : "Toista uusi palautussalasana",
"Password successfully changed." : "Salasana vaihdettiin onnistuneesti.",
"Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.",
+ "Recovery Key disabled" : "Palautusavain poistettu käytöstä",
"Recovery Key enabled" : "Palautusavain käytössä",
"Could not enable the recovery key, please try again or contact your administrator" : "Palautusavaimen käyttöönotto epäonnistui, yritä myöhemmin uudelleen tai ota yhteys ylläpitäjään",
"Could not update the private key password." : "Yksityisen avaimen salasanaa ei voitu päivittää.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.",
- "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):",
+ "Enable recovery key" : "Ota palautusavain käyttöön",
+ "Disable recovery key" : "Poista palautusavain käytöstä",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Palautusavain on ylimääräinen salausavain, jota käytetään tiedostojen salaamiseen. Sen avulla on mahdollista palauttaa käyttäjien tiedostot, vaikka käyttäjä unohtaisi oman salasanansa.",
"Recovery key password" : "Palautusavaimen salasana",
- "Repeat Recovery key password" : "Toista palautusavaimen salasana",
- "Enabled" : "Käytössä",
- "Disabled" : "Ei käytössä",
+ "Repeat recovery key password" : "Toista salausavaimen salasana",
"Change recovery key password:" : "Vaihda palautusavaimen salasana:",
- "Old Recovery key password" : "Vanha palautusavaimen salasana",
- "New Recovery key password" : "Uusi palautusavaimen salasana",
- "Repeat New Recovery key password" : "Toista uusi palautusavaimen salasana",
+ "Old recovery key password" : "Vanha salausavaimen salasana",
+ "New recovery key password" : "Uusi salausavaimen salasana",
+ "Repeat new recovery key password" : "Toista uusi salausavaimen salasana",
"Change Password" : "Vaihda salasana",
+ "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli",
"Your private key password no longer matches your log-in password." : "Salaisen avaimesi salasana ei enää vastaa kirjautumissalasanaasi.",
"Set your old private key password to your current log-in password:" : "Aseta yksityisen avaimen vanha salasana vastaamaan nykyistä kirjautumissalasanaasi:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Jos et muista vanhaa salasanaasi, voit pyytää ylläpitäjää palauttamaan tiedostosi.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Nykyinen kirjautumissalasana",
"Update Private Key Password" : "Päivitä yksityisen avaimen salasana",
"Enable password recovery:" : "Ota salasanan palautus käyttöön:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tämän valinnan käyttäminen mahdollistaa pääsyn salattuihin tiedostoihisi, jos salasana unohtuu"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tämän valinnan käyttäminen mahdollistaa pääsyn salattuihin tiedostoihisi, jos salasana unohtuu",
+ "Enabled" : "Käytössä",
+ "Disabled" : "Ei käytössä"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js
index 44e571d88c0..293626e95da 100644
--- a/apps/encryption/l10n/fr.js
+++ b/apps/encryption/l10n/fr.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clef de récupération. Veuillez vérifier le mot de passe de votre clé de récupération !",
"Recovery key successfully disabled" : "Clef de récupération désactivée avec succès",
"Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !",
+ "Missing parameters" : "Paramètres manquants",
"Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération",
"Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération",
"Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération",
"Password successfully changed." : "Mot de passe changé avec succès.",
"Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.",
+ "Recovery Key disabled" : "Clé de récupération désactivée",
"Recovery Key enabled" : "Clef de récupération activée",
"Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clef de récupération. Veuillez essayer à nouveau ou contacter votre administrateur",
"Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.",
- "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).",
+ "Enable recovery key" : "Activer la clé de récupération",
+ "Disable recovery key" : "Désactiver la clé de récupération",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs en cas d'oubli de leur mot de passe.",
"Recovery key password" : "Mot de passe de la clef de récupération",
- "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération",
- "Enabled" : "Activé",
- "Disabled" : "Désactivé",
+ "Repeat recovery key password" : "Répétez le mot de passe de la clé de récupération",
"Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :",
- "Old Recovery key password" : "Ancien mot de passe de la clef de récupération",
- "New Recovery key password" : "Nouveau mot de passe de la clef de récupération",
- "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clef de récupération",
+ "Old recovery key password" : "Ancien mot de passe de la clé de récupération",
+ "New recovery key password" : "Nouveau mot de passe de la clé de récupération",
+ "Repeat new recovery key password" : "Répétez le nouveau mot de passe de la clé de récupération",
"Change Password" : "Changer de mot de passe",
+ "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud",
"Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.",
"Set your old private key password to your current log-in password:" : "Faites de votre mot de passe de connexion le mot de passe de votre clef privée :",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Actuel mot de passe de connexion",
"Update Private Key Password" : "Mettre à jour le mot de passe de votre clef privée",
"Enable password recovery:" : "Activer la récupération du mot de passe :",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe",
+ "Enabled" : "Activé",
+ "Disabled" : "Désactivé"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json
index 9f8f41ad80f..c35d5d31296 100644
--- a/apps/encryption/l10n/fr.json
+++ b/apps/encryption/l10n/fr.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clef de récupération. Veuillez vérifier le mot de passe de votre clé de récupération !",
"Recovery key successfully disabled" : "Clef de récupération désactivée avec succès",
"Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !",
+ "Missing parameters" : "Paramètres manquants",
"Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération",
"Please provide a new recovery password" : "Veuillez entrer un nouveau mot de passe de récupération",
"Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération",
"Password successfully changed." : "Mot de passe changé avec succès.",
"Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.",
+ "Recovery Key disabled" : "Clé de récupération désactivée",
"Recovery Key enabled" : "Clef de récupération activée",
"Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clef de récupération. Veuillez essayer à nouveau ou contacter votre administrateur",
"Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.",
- "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).",
+ "Enable recovery key" : "Activer la clé de récupération",
+ "Disable recovery key" : "Désactiver la clé de récupération",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La clé de récupération est une clé supplémentaire utilisée pour chiffrer les fichiers. Elle permet de récupérer les fichiers des utilisateurs en cas d'oubli de leur mot de passe.",
"Recovery key password" : "Mot de passe de la clef de récupération",
- "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération",
- "Enabled" : "Activé",
- "Disabled" : "Désactivé",
+ "Repeat recovery key password" : "Répétez le mot de passe de la clé de récupération",
"Change recovery key password:" : "Modifier le mot de passe de la clef de récupération :",
- "Old Recovery key password" : "Ancien mot de passe de la clef de récupération",
- "New Recovery key password" : "Nouveau mot de passe de la clef de récupération",
- "Repeat New Recovery key password" : "Répétez le nouveau mot de passe de la clef de récupération",
+ "Old recovery key password" : "Ancien mot de passe de la clé de récupération",
+ "New recovery key password" : "Nouveau mot de passe de la clé de récupération",
+ "Repeat new recovery key password" : "Répétez le nouveau mot de passe de la clé de récupération",
"Change Password" : "Changer de mot de passe",
+ "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud",
"Your private key password no longer matches your log-in password." : "Le mot de passe de votre clef privée ne correspond plus à votre mot de passe de connexion.",
"Set your old private key password to your current log-in password:" : "Faites de votre mot de passe de connexion le mot de passe de votre clef privée :",
" If you don't remember your old password you can ask your administrator to recover your files." : "Si vous ne vous souvenez plus de votre ancien mot de passe, vous pouvez demander à votre administrateur de récupérer vos fichiers.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Actuel mot de passe de connexion",
"Update Private Key Password" : "Mettre à jour le mot de passe de votre clef privée",
"Enable password recovery:" : "Activer la récupération du mot de passe :",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe",
+ "Enabled" : "Activé",
+ "Disabled" : "Désactivé"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/gl.js b/apps/encryption/l10n/gl.js
index b4598ecbb19..6cc14cc80e4 100644
--- a/apps/encryption/l10n/gl.js
+++ b/apps/encryption/l10n/gl.js
@@ -1,18 +1,20 @@
OC.L10N.register(
"encryption",
{
- "Missing recovery key password" : "Falta a chave de recuperación",
- "Please repeat the recovery key password" : "Repita a chave de recuperación",
- "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación estabelecida",
+ "Missing recovery key password" : "Falta o contrasinal da chave de recuperación",
+ "Please repeat the recovery key password" : "Repita o contrasinal da chave de recuperación",
+ "Repeated recovery key password does not match the provided recovery key password" : "A repetición do contrasinal da chave de recuperación non coincide co contrasinal da chave de recuperación fornecido",
"Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación",
"Could not enable recovery key. Please check your recovery key password!" : "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
"Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación",
"Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
- "Please provide the old recovery password" : "Introduza a chave de recuperación antiga",
+ "Missing parameters" : "Faltan os parámetros",
+ "Please provide the old recovery password" : "Introduza o antigo contrasinal de recuperación",
"Please provide a new recovery password" : "Introduza a nova chave de recuperación",
- "Please repeat the new recovery password" : "Repita a nova chave de recuperación",
+ "Please repeat the new recovery password" : "Repita o novo contrasinal de recuperación",
"Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente",
"Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.",
+ "Recovery Key disabled" : "Desactivada a chave de recuperación",
"Recovery Key enabled" : "Activada a chave de recuperación",
"Could not enable the recovery key, please try again or contact your administrator" : "Non foi posíbel activar a chave de recuperación, ténteo de novo ou póñase en contacto co administrador.",
"Could not update the private key password." : "Non foi posíbel actualizar o contrasinal da chave privada.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "A chave privada foi actualizada correctamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo",
- "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):",
+ "Enable recovery key" : "Activar a chave de recuperación",
+ "Disable recovery key" : "Desactivar a chave de recuperación",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperación é unha chave de cifrado adicional que se utiliza para cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se o usuario esquece o seu contrasinal.",
"Recovery key password" : "Contrasinal da chave de recuperación",
- "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación",
- "Enabled" : "Activado",
- "Disabled" : "Desactivado",
+ "Repeat recovery key password" : "Repita o contrasinal da chave de recuperación",
"Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:",
- "Old Recovery key password" : "Antigo contrasinal da chave de recuperación",
- "New Recovery key password" : "Novo contrasinal da chave de recuperación",
- "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación",
+ "Old recovery key password" : "Contrasinal antigo da chave de recuperación",
+ "New recovery key password" : "Novo contrasinal da chave de recuperación",
+ "Repeat new recovery key password" : "Repita o novo contrasinal da chave de recuperación",
"Change Password" : "Cambiar o contrasinal",
+ "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud",
"Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.",
"Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Contrasinal actual de acceso",
"Update Private Key Password" : "Actualizar o contrasinal da chave privada",
"Enable password recovery:" : "Activar o contrasinal de recuperación:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal",
+ "Enabled" : "Activado",
+ "Disabled" : "Desactivado"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/gl.json b/apps/encryption/l10n/gl.json
index 64033763059..df89a75eecd 100644
--- a/apps/encryption/l10n/gl.json
+++ b/apps/encryption/l10n/gl.json
@@ -1,16 +1,18 @@
{ "translations": {
- "Missing recovery key password" : "Falta a chave de recuperación",
- "Please repeat the recovery key password" : "Repita a chave de recuperación",
- "Repeated recovery key password does not match the provided recovery key password" : "A repetición da chave de recuperación non coincide coa chave de recuperación estabelecida",
+ "Missing recovery key password" : "Falta o contrasinal da chave de recuperación",
+ "Please repeat the recovery key password" : "Repita o contrasinal da chave de recuperación",
+ "Repeated recovery key password does not match the provided recovery key password" : "A repetición do contrasinal da chave de recuperación non coincide co contrasinal da chave de recuperación fornecido",
"Recovery key successfully enabled" : "Activada satisfactoriamente a chave de recuperación",
"Could not enable recovery key. Please check your recovery key password!" : "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
"Recovery key successfully disabled" : "Desactivada satisfactoriamente a chave de recuperación",
"Could not disable recovery key. Please check your recovery key password!" : "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
- "Please provide the old recovery password" : "Introduza a chave de recuperación antiga",
+ "Missing parameters" : "Faltan os parámetros",
+ "Please provide the old recovery password" : "Introduza o antigo contrasinal de recuperación",
"Please provide a new recovery password" : "Introduza a nova chave de recuperación",
- "Please repeat the new recovery password" : "Repita a nova chave de recuperación",
+ "Please repeat the new recovery password" : "Repita o novo contrasinal de recuperación",
"Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente",
"Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.",
+ "Recovery Key disabled" : "Desactivada a chave de recuperación",
"Recovery Key enabled" : "Activada a chave de recuperación",
"Could not enable the recovery key, please try again or contact your administrator" : "Non foi posíbel activar a chave de recuperación, ténteo de novo ou póñase en contacto co administrador.",
"Could not update the private key password." : "Non foi posíbel actualizar o contrasinal da chave privada.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "A chave privada foi actualizada correctamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo",
- "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):",
+ "Enable recovery key" : "Activar a chave de recuperación",
+ "Disable recovery key" : "Desactivar a chave de recuperación",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperación é unha chave de cifrado adicional que se utiliza para cifrar ficheiros. Permite a recuperación de ficheiros dun usuario se o usuario esquece o seu contrasinal.",
"Recovery key password" : "Contrasinal da chave de recuperación",
- "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación",
- "Enabled" : "Activado",
- "Disabled" : "Desactivado",
+ "Repeat recovery key password" : "Repita o contrasinal da chave de recuperación",
"Change recovery key password:" : "Cambiar o contrasinal da chave de la recuperación:",
- "Old Recovery key password" : "Antigo contrasinal da chave de recuperación",
- "New Recovery key password" : "Novo contrasinal da chave de recuperación",
- "Repeat New Recovery key password" : "Repita o novo contrasinal da chave de recuperación",
+ "Old recovery key password" : "Contrasinal antigo da chave de recuperación",
+ "New recovery key password" : "Novo contrasinal da chave de recuperación",
+ "Repeat new recovery key password" : "Repita o novo contrasinal da chave de recuperación",
"Change Password" : "Cambiar o contrasinal",
+ "ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud",
"Your private key password no longer matches your log-in password." : "O seu contrasinal da chave privada non coincide co seu contrasinal de acceso.",
"Set your old private key password to your current log-in password:" : "Estabeleza o seu contrasinal antigo da chave de recuperación ao seu contrasinal de acceso actual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se non lembra o seu antigo contrasinal pode pedírllelo ao seu administrador para recuperar os seus ficheiros.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Contrasinal actual de acceso",
"Update Private Key Password" : "Actualizar o contrasinal da chave privada",
"Enable password recovery:" : "Activar o contrasinal de recuperación:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal",
+ "Enabled" : "Activado",
+ "Disabled" : "Desactivado"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/hr.js b/apps/encryption/l10n/hr.js
index 18e4ae65ddd..40ad26f9daa 100644
--- a/apps/encryption/l10n/hr.js
+++ b/apps/encryption/l10n/hr.js
@@ -10,15 +10,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):",
"Recovery key password" : "Lozinka ključa za oporavak",
- "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak",
- "Enabled" : "Aktivirano",
- "Disabled" : "Onemogućeno",
"Change recovery key password:" : "Promijenite lozinku ključa za oporavak",
- "Old Recovery key password" : "Stara lozinka ključa za oporavak",
- "New Recovery key password" : "Nova lozinka ključa za oporavak",
- "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak",
"Change Password" : "Promijenite lozinku",
"Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.",
"Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.",
@@ -27,6 +20,8 @@ OC.L10N.register(
"Current log-in password" : "Aktualna lozinka za prijavu",
"Update Private Key Password" : "Ažurirajte lozinku privatnog ključa",
"Enable password recovery:" : "Omogućite oporavak lozinke:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama",
+ "Enabled" : "Aktivirano",
+ "Disabled" : "Onemogućeno"
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/encryption/l10n/hr.json b/apps/encryption/l10n/hr.json
index 20b45588c7e..71f83db1bdf 100644
--- a/apps/encryption/l10n/hr.json
+++ b/apps/encryption/l10n/hr.json
@@ -8,15 +8,8 @@
"Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):",
"Recovery key password" : "Lozinka ključa za oporavak",
- "Repeat Recovery key password" : "Ponovite lozinku ključa za oporavak",
- "Enabled" : "Aktivirano",
- "Disabled" : "Onemogućeno",
"Change recovery key password:" : "Promijenite lozinku ključa za oporavak",
- "Old Recovery key password" : "Stara lozinka ključa za oporavak",
- "New Recovery key password" : "Nova lozinka ključa za oporavak",
- "Repeat New Recovery key password" : "Ponovite novu lozinku ključa za oporavak",
"Change Password" : "Promijenite lozinku",
"Your private key password no longer matches your log-in password." : "Lozinka vašeg privatnog ključa više se ne slaže s vašom lozinkom za prijavu.",
"Set your old private key password to your current log-in password:" : "Postavite svoju staru lozinku privatnog ključa u svoju postojeću lozinku za prijavu.",
@@ -25,6 +18,8 @@
"Current log-in password" : "Aktualna lozinka za prijavu",
"Update Private Key Password" : "Ažurirajte lozinku privatnog ključa",
"Enable password recovery:" : "Omogućite oporavak lozinke:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama",
+ "Enabled" : "Aktivirano",
+ "Disabled" : "Onemogućeno"
},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/hu_HU.js b/apps/encryption/l10n/hu_HU.js
index 3895af355b9..be4df724ef8 100644
--- a/apps/encryption/l10n/hu_HU.js
+++ b/apps/encryption/l10n/hu_HU.js
@@ -10,21 +10,16 @@ OC.L10N.register(
"Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!",
- "Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):",
"Recovery key password" : "A helyreállítási kulcs jelszava",
- "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát",
- "Enabled" : "Bekapcsolva",
- "Disabled" : "Kikapcsolva",
"Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:",
- "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava",
- "New Recovery key password" : "Új Helyreállítási kulcs jelszava",
- "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát",
"Change Password" : "Jelszó megváltoztatása",
" If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.",
"Old log-in password" : "Régi bejelentkezési jelszó",
"Current log-in password" : "Jelenlegi bejelentkezési jelszó",
"Update Private Key Password" : "A személyest kulcs jelszó frissítése",
"Enable password recovery:" : "Jelszó-visszaállítás bekapcsolása",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát",
+ "Enabled" : "Bekapcsolva",
+ "Disabled" : "Kikapcsolva"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/hu_HU.json b/apps/encryption/l10n/hu_HU.json
index f7b04188138..260a6ae3342 100644
--- a/apps/encryption/l10n/hu_HU.json
+++ b/apps/encryption/l10n/hu_HU.json
@@ -8,21 +8,16 @@
"Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!",
- "Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):",
"Recovery key password" : "A helyreállítási kulcs jelszava",
- "Repeat Recovery key password" : "Ismételje meg a helyreállítási kulcs jelszavát",
- "Enabled" : "Bekapcsolva",
- "Disabled" : "Kikapcsolva",
"Change recovery key password:" : "A helyreállítási kulcs jelszavának módosítása:",
- "Old Recovery key password" : "Régi Helyreállítási Kulcs Jelszava",
- "New Recovery key password" : "Új Helyreállítási kulcs jelszava",
- "Repeat New Recovery key password" : "Ismételje meg az új helyreállítási kulcs jelszavát",
"Change Password" : "Jelszó megváltoztatása",
" If you don't remember your old password you can ask your administrator to recover your files." : "Ha nem emlékszik a régi jelszavára akkor megkérheti a rendszergazdát, hogy állítsa vissza az állományait.",
"Old log-in password" : "Régi bejelentkezési jelszó",
"Current log-in password" : "Jelenlegi bejelentkezési jelszó",
"Update Private Key Password" : "A személyest kulcs jelszó frissítése",
"Enable password recovery:" : "Jelszó-visszaállítás bekapcsolása",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát",
+ "Enabled" : "Bekapcsolva",
+ "Disabled" : "Kikapcsolva"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/id.js b/apps/encryption/l10n/id.js
index fe4b8bb139b..4feb1de4186 100644
--- a/apps/encryption/l10n/id.js
+++ b/apps/encryption/l10n/id.js
@@ -8,27 +8,32 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
"Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan",
"Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
+ "Missing parameters" : "Parameter salah",
"Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama",
"Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru",
"Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru",
"Password successfully changed." : "Sandi berhasil diubah",
"Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.",
+ "Recovery Key disabled" : "Kunci Pemulihan dinonaktifkan",
+ "Recovery Key enabled" : "Kunci Pemulihan diaktifkan",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Tidak dapat mengaktifkan kunci pemulihan, silakan coba lagi atau hubungi administrator Anda",
"Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.",
"The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.",
"The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.",
"Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):",
+ "Enable recovery key" : "Aktifkan kunci pemulihan",
+ "Disable recovery key" : "Nonaktifkan kunci pemulihan",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Kunci pemulihan adalah kunci enkripsi tambahan yang digunakan untuk mengenkripsi berkas. Kunci pemulihan memungkinkan untuk memulihkan berkas-berkas pengguna ketika pengguna tersebut melupakan sandi mereka.",
"Recovery key password" : "Sandi kunci pemulihan",
- "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan",
- "Enabled" : "Diaktifkan",
- "Disabled" : "Dinonaktifkan",
+ "Repeat recovery key password" : "Ulangi sandi kunci pemulihan",
"Change recovery key password:" : "Ubah sandi kunci pemulihan:",
- "Old Recovery key password" : "Sandi kunci Pemulihan Lama",
- "New Recovery key password" : "Sandi kunci Pemulihan Baru",
- "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru",
+ "Old recovery key password" : "Sandi kunci pemulihan lama",
+ "New recovery key password" : "Sandi kunci pemulihan baru",
+ "Repeat new recovery key password" : "Ulangi sandi kunci pemulihan baru",
"Change Password" : "Ubah Sandi",
+ "ownCloud basic encryption module" : "Modul enkripsi dasar ownCloud",
"Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.",
"Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.",
@@ -36,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Sandi masuk saat ini",
"Update Private Key Password" : "Perbarui Sandi Kunci Private",
"Enable password recovery:" : "Aktifkan sandi pemulihan:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi",
+ "Enabled" : "Diaktifkan",
+ "Disabled" : "Dinonaktifkan"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/id.json b/apps/encryption/l10n/id.json
index dcbe7c1cdf0..da2bf575939 100644
--- a/apps/encryption/l10n/id.json
+++ b/apps/encryption/l10n/id.json
@@ -6,27 +6,32 @@
"Could not enable recovery key. Please check your recovery key password!" : "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
"Recovery key successfully disabled" : "Kunci pemulihan berhasil dinonaktifkan",
"Could not disable recovery key. Please check your recovery key password!" : "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
+ "Missing parameters" : "Parameter salah",
"Please provide the old recovery password" : "Mohon berikan sandi pemulihan lama",
"Please provide a new recovery password" : "Mohon berikan sandi pemulihan baru",
"Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru",
"Password successfully changed." : "Sandi berhasil diubah",
"Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.",
+ "Recovery Key disabled" : "Kunci Pemulihan dinonaktifkan",
+ "Recovery Key enabled" : "Kunci Pemulihan diaktifkan",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Tidak dapat mengaktifkan kunci pemulihan, silakan coba lagi atau hubungi administrator Anda",
"Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.",
"The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.",
"The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.",
"Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):",
+ "Enable recovery key" : "Aktifkan kunci pemulihan",
+ "Disable recovery key" : "Nonaktifkan kunci pemulihan",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Kunci pemulihan adalah kunci enkripsi tambahan yang digunakan untuk mengenkripsi berkas. Kunci pemulihan memungkinkan untuk memulihkan berkas-berkas pengguna ketika pengguna tersebut melupakan sandi mereka.",
"Recovery key password" : "Sandi kunci pemulihan",
- "Repeat Recovery key password" : "Ulangi sandi kunci Pemulihan",
- "Enabled" : "Diaktifkan",
- "Disabled" : "Dinonaktifkan",
+ "Repeat recovery key password" : "Ulangi sandi kunci pemulihan",
"Change recovery key password:" : "Ubah sandi kunci pemulihan:",
- "Old Recovery key password" : "Sandi kunci Pemulihan Lama",
- "New Recovery key password" : "Sandi kunci Pemulihan Baru",
- "Repeat New Recovery key password" : "Ulangi sandi kunci Pemulihan baru",
+ "Old recovery key password" : "Sandi kunci pemulihan lama",
+ "New recovery key password" : "Sandi kunci pemulihan baru",
+ "Repeat new recovery key password" : "Ulangi sandi kunci pemulihan baru",
"Change Password" : "Ubah Sandi",
+ "ownCloud basic encryption module" : "Modul enkripsi dasar ownCloud",
"Your private key password no longer matches your log-in password." : "Sandi kunci private Anda tidak lagi cocok dengan sandi masuk Anda.",
"Set your old private key password to your current log-in password:" : "Setel sandi kunci private Anda untuk sandi masuk Anda saat ini:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.",
@@ -34,6 +39,8 @@
"Current log-in password" : "Sandi masuk saat ini",
"Update Private Key Password" : "Perbarui Sandi Kunci Private",
"Enable password recovery:" : "Aktifkan sandi pemulihan:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi",
+ "Enabled" : "Diaktifkan",
+ "Disabled" : "Dinonaktifkan"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/it.js b/apps/encryption/l10n/it.js
index efcc6cd4564..23b62b6d544 100644
--- a/apps/encryption/l10n/it.js
+++ b/apps/encryption/l10n/it.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Impossibile abilitare la chiave di ripristino. Verifica la password della chiave di ripristino.",
"Recovery key successfully disabled" : "Chiave di recupero disabilitata correttamente",
"Could not disable recovery key. Please check your recovery key password!" : "Impossibile disabilitare la chiave di recupero. Verifica la password della chiave di recupero.",
+ "Missing parameters" : "Parametri mancanti",
"Please provide the old recovery password" : "Fornisci la vecchia password di recupero",
"Please provide a new recovery password" : "Fornisci una nuova password di recupero",
"Please repeat the new recovery password" : "Ripeti la nuova password di recupero",
"Password successfully changed." : "Password modificata correttamente.",
"Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.",
+ "Recovery Key disabled" : "Chiave di ripristino disabilitata",
"Recovery Key enabled" : "Chiave di ripristino abilitata",
"Could not enable the recovery key, please try again or contact your administrator" : "Impossibile abilitare la chiave di ripristino, prova ancora o contatta il tuo amministratore",
"Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
- "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):",
+ "Enable recovery key" : "Abilita chiave di ripristino",
+ "Disable recovery key" : "Disabilita chiave di ripristino",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La chiave di ripristino è una chiave di cifratura aggiuntiva utilizzata per cifrare i file. Consente di ripristinare i file di un utente se l'utente dimentica la propria password.",
"Recovery key password" : "Password della chiave di recupero",
- "Repeat Recovery key password" : "Ripeti la password della chiave di recupero",
- "Enabled" : "Abilitata",
- "Disabled" : "Disabilitata",
+ "Repeat recovery key password" : "Ripeti la password della chiave di ripristino",
"Change recovery key password:" : "Cambia la password della chiave di recupero:",
- "Old Recovery key password" : "Vecchia password della chiave di recupero",
- "New Recovery key password" : "Nuova password della chiave di recupero",
- "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero",
+ "Old recovery key password" : "Vecchia password della chiave di ripristino",
+ "New recovery key password" : "Nuova password della chiave di ripristino",
+ "Repeat new recovery key password" : "Ripeti la nuova password della chiave di ripristino",
"Change Password" : "Modifica password",
+ "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud",
"Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.",
"Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Password di accesso attuale",
"Update Private Key Password" : "Aggiorna la password della chiave privata",
"Enable password recovery:" : "Abilita il ripristino della password:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password",
+ "Enabled" : "Abilitata",
+ "Disabled" : "Disabilitata"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/it.json b/apps/encryption/l10n/it.json
index e93035b88df..f4a5b12ff6f 100644
--- a/apps/encryption/l10n/it.json
+++ b/apps/encryption/l10n/it.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Impossibile abilitare la chiave di ripristino. Verifica la password della chiave di ripristino.",
"Recovery key successfully disabled" : "Chiave di recupero disabilitata correttamente",
"Could not disable recovery key. Please check your recovery key password!" : "Impossibile disabilitare la chiave di recupero. Verifica la password della chiave di recupero.",
+ "Missing parameters" : "Parametri mancanti",
"Please provide the old recovery password" : "Fornisci la vecchia password di recupero",
"Please provide a new recovery password" : "Fornisci una nuova password di recupero",
"Please repeat the new recovery password" : "Ripeti la nuova password di recupero",
"Password successfully changed." : "Password modificata correttamente.",
"Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.",
+ "Recovery Key disabled" : "Chiave di ripristino disabilitata",
"Recovery Key enabled" : "Chiave di ripristino abilitata",
"Could not enable the recovery key, please try again or contact your administrator" : "Impossibile abilitare la chiave di ripristino, prova ancora o contatta il tuo amministratore",
"Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
- "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):",
+ "Enable recovery key" : "Abilita chiave di ripristino",
+ "Disable recovery key" : "Disabilita chiave di ripristino",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La chiave di ripristino è una chiave di cifratura aggiuntiva utilizzata per cifrare i file. Consente di ripristinare i file di un utente se l'utente dimentica la propria password.",
"Recovery key password" : "Password della chiave di recupero",
- "Repeat Recovery key password" : "Ripeti la password della chiave di recupero",
- "Enabled" : "Abilitata",
- "Disabled" : "Disabilitata",
+ "Repeat recovery key password" : "Ripeti la password della chiave di ripristino",
"Change recovery key password:" : "Cambia la password della chiave di recupero:",
- "Old Recovery key password" : "Vecchia password della chiave di recupero",
- "New Recovery key password" : "Nuova password della chiave di recupero",
- "Repeat New Recovery key password" : "Ripeti la nuova password della chiave di recupero",
+ "Old recovery key password" : "Vecchia password della chiave di ripristino",
+ "New recovery key password" : "Nuova password della chiave di ripristino",
+ "Repeat new recovery key password" : "Ripeti la nuova password della chiave di ripristino",
"Change Password" : "Modifica password",
+ "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud",
"Your private key password no longer matches your log-in password." : "La password della chiave privata non corrisponde più alla password di accesso.",
"Set your old private key password to your current log-in password:" : "Imposta la vecchia password della chiave privata sull'attuale password di accesso:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se non ricordi la vecchia password puoi chiedere al tuo amministratore di recuperare i file.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Password di accesso attuale",
"Update Private Key Password" : "Aggiorna la password della chiave privata",
"Enable password recovery:" : "Abilita il ripristino della password:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password",
+ "Enabled" : "Abilitata",
+ "Disabled" : "Disabilitata"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ja.js b/apps/encryption/l10n/ja.js
index c4e2443c1fb..1f2cf3cf49d 100644
--- a/apps/encryption/l10n/ja.js
+++ b/apps/encryption/l10n/ja.js
@@ -13,22 +13,18 @@ OC.L10N.register(
"Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力",
"Password successfully changed." : "パスワードを変更できました。",
"Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。",
+ "Recovery Key enabled" : "リカバリー鍵が有効になりました。",
+ "Could not enable the recovery key, please try again or contact your administrator" : "リカバリー鍵を有効化できませんでした。もう一度試してみるか、管理者に連絡してください。",
"Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。",
"The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。",
"The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。",
"Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
- "Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):",
"Recovery key password" : "リカバリキーのパスワード",
- "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力",
- "Enabled" : "有効",
- "Disabled" : "無効",
"Change recovery key password:" : "リカバリキーのパスワードを変更:",
- "Old Recovery key password" : "古いリカバリキーのパスワード",
- "New Recovery key password" : "新しいリカバリキーのパスワード",
- "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力",
"Change Password" : "パスワードを変更",
+ "ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール",
"Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。",
"Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:",
" If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。",
@@ -36,6 +32,8 @@ OC.L10N.register(
"Current log-in password" : "現在のログインパスワード",
"Update Private Key Password" : "秘密鍵のパスワードを更新",
"Enable password recovery:" : "パスワードリカバリを有効に:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。",
+ "Enabled" : "有効",
+ "Disabled" : "無効"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/ja.json b/apps/encryption/l10n/ja.json
index 622bf9bc42d..38f8a84d8c7 100644
--- a/apps/encryption/l10n/ja.json
+++ b/apps/encryption/l10n/ja.json
@@ -11,22 +11,18 @@
"Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力",
"Password successfully changed." : "パスワードを変更できました。",
"Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。",
+ "Recovery Key enabled" : "リカバリー鍵が有効になりました。",
+ "Could not enable the recovery key, please try again or contact your administrator" : "リカバリー鍵を有効化できませんでした。もう一度試してみるか、管理者に連絡してください。",
"Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。",
"The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。",
"The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。",
"Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
- "Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):",
"Recovery key password" : "リカバリキーのパスワード",
- "Repeat Recovery key password" : "リカバリキーのパスワードをもう一度入力",
- "Enabled" : "有効",
- "Disabled" : "無効",
"Change recovery key password:" : "リカバリキーのパスワードを変更:",
- "Old Recovery key password" : "古いリカバリキーのパスワード",
- "New Recovery key password" : "新しいリカバリキーのパスワード",
- "Repeat New Recovery key password" : "新しいリカバリキーのパスワードをもう一度入力",
"Change Password" : "パスワードを変更",
+ "ownCloud basic encryption module" : "ownCloud 基本暗号化モジュール",
"Your private key password no longer matches your log-in password." : "もはや秘密鍵はログインパスワードと一致しません。",
"Set your old private key password to your current log-in password:" : "古い秘密鍵のパスワードを現在のログインパスワードに設定:",
" If you don't remember your old password you can ask your administrator to recover your files." : "古いパスワードを覚えていない場合、管理者に尋ねてファイルを回復することができます。",
@@ -34,6 +30,8 @@
"Current log-in password" : "現在のログインパスワード",
"Update Private Key Password" : "秘密鍵のパスワードを更新",
"Enable password recovery:" : "パスワードリカバリを有効に:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。",
+ "Enabled" : "有効",
+ "Disabled" : "無効"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/km.js b/apps/encryption/l10n/km.js
index d0ab537f5b9..2d925c91819 100644
--- a/apps/encryption/l10n/km.js
+++ b/apps/encryption/l10n/km.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។",
"Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។",
+ "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់",
"Enabled" : "បាន​បើក",
- "Disabled" : "បាន​បិទ",
- "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់"
+ "Disabled" : "បាន​បិទ"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/km.json b/apps/encryption/l10n/km.json
index 40df66ca4a2..0beaa6b8a2f 100644
--- a/apps/encryption/l10n/km.json
+++ b/apps/encryption/l10n/km.json
@@ -1,8 +1,8 @@
{ "translations": {
"Password successfully changed." : "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។",
"Could not change the password. Maybe the old password was not correct." : "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។",
+ "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់",
"Enabled" : "បាន​បើក",
- "Disabled" : "បាន​បិទ",
- "Change Password" : "ប្ដូរ​ពាក្យ​សម្ងាត់"
+ "Disabled" : "បាន​បិទ"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ko.js b/apps/encryption/l10n/ko.js
index 80281648a9a..b4f9049082d 100644
--- a/apps/encryption/l10n/ko.js
+++ b/apps/encryption/l10n/ko.js
@@ -5,30 +5,35 @@ OC.L10N.register(
"Please repeat the recovery key password" : "복구 키 암호를 다시 입력하십시오",
"Repeated recovery key password does not match the provided recovery key password" : "입력한 복구 키 암호가 서로 다릅니다",
"Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다",
- "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주세요!",
+ "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!",
"Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다",
"Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!",
+ "Missing parameters" : "인자 부족함",
"Please provide the old recovery password" : "이전 복구 암호를 입력하십시오",
"Please provide a new recovery password" : "새 복구 암호를 입력하십시오",
"Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오",
"Password successfully changed." : "암호가 성공적으로 변경되었습니다",
"Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.",
+ "Recovery Key disabled" : "복구 키가 비활성화됨",
+ "Recovery Key enabled" : "복구 키가 활성화됨",
+ "Could not enable the recovery key, please try again or contact your administrator" : "복구 키를 활성화할 수 없습니다. 다시 시도하거나 관리자에게 연락하십시오",
"Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다",
"The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.",
"The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.",
"Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오",
- "Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):",
+ "Enable recovery key" : "복구 키 활성화",
+ "Disable recovery key" : "복구 키 비활성화",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.",
"Recovery key password" : "복구 키 암호",
- "Repeat Recovery key password" : "복구 키 암호 재입력",
- "Enabled" : "활성화",
- "Disabled" : "비활성화",
+ "Repeat recovery key password" : "복구 키 암호 확인",
"Change recovery key password:" : "복구 키 암호 변경:",
- "Old Recovery key password" : "이전 복구 키 암호",
- "New Recovery key password" : "새 복구 키 암호",
- "Repeat New Recovery key password" : "새 복구 키 암호 재입력",
+ "Old recovery key password" : "이전 복구 키 암호",
+ "New recovery key password" : "새 복구 키 암호",
+ "Repeat new recovery key password" : "새 복구 키 암호 확인",
"Change Password" : "암호 변경",
+ "ownCloud basic encryption module" : "ownCloud 기본 암호화 모듈",
"Your private key password no longer matches your log-in password." : "개인 키 암호와 로그인 암호가 일치하지 않습니다.",
"Set your old private key password to your current log-in password:" : "기존 개인 키 암호를 로그인 암호와 동일하게 설정하십시오:",
" If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.",
@@ -36,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "현재 로그인 암호",
"Update Private Key Password" : "개인 키 암호 업데이트",
"Enable password recovery:" : "암호 복구 사용:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다",
+ "Enabled" : "활성화",
+ "Disabled" : "비활성화"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/ko.json b/apps/encryption/l10n/ko.json
index 3b0bb40460b..4cb2f35540c 100644
--- a/apps/encryption/l10n/ko.json
+++ b/apps/encryption/l10n/ko.json
@@ -3,30 +3,35 @@
"Please repeat the recovery key password" : "복구 키 암호를 다시 입력하십시오",
"Repeated recovery key password does not match the provided recovery key password" : "입력한 복구 키 암호가 서로 다릅니다",
"Recovery key successfully enabled" : "복구 키가 성공적으로 활성화되었습니다",
- "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주세요!",
+ "Could not enable recovery key. Please check your recovery key password!" : "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!",
"Recovery key successfully disabled" : "복구 키가 성공적으로 비활성화 되었습니다",
"Could not disable recovery key. Please check your recovery key password!" : "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해 주십시오!",
+ "Missing parameters" : "인자 부족함",
"Please provide the old recovery password" : "이전 복구 암호를 입력하십시오",
"Please provide a new recovery password" : "새 복구 암호를 입력하십시오",
"Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오",
"Password successfully changed." : "암호가 성공적으로 변경되었습니다",
"Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.",
+ "Recovery Key disabled" : "복구 키가 비활성화됨",
+ "Recovery Key enabled" : "복구 키가 활성화됨",
+ "Could not enable the recovery key, please try again or contact your administrator" : "복구 키를 활성화할 수 없습니다. 다시 시도하거나 관리자에게 연락하십시오",
"Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다",
"The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.",
"The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.",
"Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오",
- "Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):",
+ "Enable recovery key" : "복구 키 활성화",
+ "Disable recovery key" : "복구 키 비활성화",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "복구 키는 파일을 암호화하는 추가 키입니다. 사용자가 암호를 잊었을 때 복구할 수 있도록 해 줍니다.",
"Recovery key password" : "복구 키 암호",
- "Repeat Recovery key password" : "복구 키 암호 재입력",
- "Enabled" : "활성화",
- "Disabled" : "비활성화",
+ "Repeat recovery key password" : "복구 키 암호 확인",
"Change recovery key password:" : "복구 키 암호 변경:",
- "Old Recovery key password" : "이전 복구 키 암호",
- "New Recovery key password" : "새 복구 키 암호",
- "Repeat New Recovery key password" : "새 복구 키 암호 재입력",
+ "Old recovery key password" : "이전 복구 키 암호",
+ "New recovery key password" : "새 복구 키 암호",
+ "Repeat new recovery key password" : "새 복구 키 암호 확인",
"Change Password" : "암호 변경",
+ "ownCloud basic encryption module" : "ownCloud 기본 암호화 모듈",
"Your private key password no longer matches your log-in password." : "개인 키 암호와 로그인 암호가 일치하지 않습니다.",
"Set your old private key password to your current log-in password:" : "기존 개인 키 암호를 로그인 암호와 동일하게 설정하십시오:",
" If you don't remember your old password you can ask your administrator to recover your files." : " 이전 암호가 기억나지 않으면 시스템 관리자에게 파일 복구를 요청하십시오.",
@@ -34,6 +39,8 @@
"Current log-in password" : "현재 로그인 암호",
"Update Private Key Password" : "개인 키 암호 업데이트",
"Enable password recovery:" : "암호 복구 사용:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다",
+ "Enabled" : "활성화",
+ "Disabled" : "비활성화"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/lb.js b/apps/encryption/l10n/lb.js
new file mode 100644
index 00000000000..0e57555bb19
--- /dev/null
+++ b/apps/encryption/l10n/lb.js
@@ -0,0 +1,8 @@
+OC.L10N.register(
+ "encryption",
+ {
+ "Change Password" : "Passwuert änneren",
+ "Enabled" : "Aktivéiert",
+ "Disabled" : "Deaktivéiert"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/lb.json b/apps/encryption/l10n/lb.json
new file mode 100644
index 00000000000..08afbc43c83
--- /dev/null
+++ b/apps/encryption/l10n/lb.json
@@ -0,0 +1,6 @@
+{ "translations": {
+ "Change Password" : "Passwuert änneren",
+ "Enabled" : "Aktivéiert",
+ "Disabled" : "Deaktivéiert"
+},"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 06d6478a572..2fd29ca7788 100644
--- a/apps/encryption/l10n/lt_LT.js
+++ b/apps/encryption/l10n/lt_LT.js
@@ -10,21 +10,16 @@ OC.L10N.register(
"Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):",
"Recovery key password" : "Atkūrimo rakto slaptažodis",
- "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį",
- "Enabled" : "Įjungta",
- "Disabled" : "Išjungta",
"Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:",
- "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis",
- "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis",
- "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį",
"Change Password" : "Pakeisti slaptažodį",
" If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.",
"Old log-in password" : "Senas prisijungimo slaptažodis",
"Current log-in password" : "Dabartinis prisijungimo slaptažodis",
"Update Private Key Password" : "Atnaujinti privataus rakto slaptažodį",
"Enable password recovery:" : "Įjungti slaptažodžio atkūrimą:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį.",
+ "Enabled" : "Įjungta",
+ "Disabled" : "Išjungta"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/encryption/l10n/lt_LT.json b/apps/encryption/l10n/lt_LT.json
index 2e6a199121f..3e97937d60d 100644
--- a/apps/encryption/l10n/lt_LT.json
+++ b/apps/encryption/l10n/lt_LT.json
@@ -8,21 +8,16 @@
"Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):",
"Recovery key password" : "Atkūrimo rakto slaptažodis",
- "Repeat Recovery key password" : "Pakartokite atkūrimo rakto slaptažodį",
- "Enabled" : "Įjungta",
- "Disabled" : "Išjungta",
"Change recovery key password:" : "Pakeisti atkūrimo rakto slaptažodį:",
- "Old Recovery key password" : "Senas atkūrimo rakto slaptažodis",
- "New Recovery key password" : "Naujas atkūrimo rakto slaptažodis",
- "Repeat New Recovery key password" : "Pakartokite naują atkūrimo rakto slaptažodį",
"Change Password" : "Pakeisti slaptažodį",
" If you don't remember your old password you can ask your administrator to recover your files." : "Jei nepamenate savo seno slaptažodžio, galite paprašyti administratoriaus atkurti Jūsų failus.",
"Old log-in password" : "Senas prisijungimo slaptažodis",
"Current log-in password" : "Dabartinis prisijungimo slaptažodis",
"Update Private Key Password" : "Atnaujinti privataus rakto slaptažodį",
"Enable password recovery:" : "Įjungti slaptažodžio atkūrimą:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį.",
+ "Enabled" : "Įjungta",
+ "Disabled" : "Išjungta"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/mk.js b/apps/encryption/l10n/mk.js
index 0391c489542..f1abdd2f518 100644
--- a/apps/encryption/l10n/mk.js
+++ b/apps/encryption/l10n/mk.js
@@ -3,14 +3,11 @@ OC.L10N.register(
{
"Password successfully changed." : "Лозинката е успешно променета.",
"Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.",
- "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување",
- "Enabled" : "Овозможен",
- "Disabled" : "Оневозможен",
- "Old Recovery key password" : "Старата лозинка за клучот на обновување ",
- "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето",
"Change Password" : "Смени лозинка",
"Old log-in password" : "Старата лозинка за најавување",
"Current log-in password" : "Тековната лозинка за најавување",
- "Enable password recovery:" : "Овозможи го обновувањето на лозинката:"
+ "Enable password recovery:" : "Овозможи го обновувањето на лозинката:",
+ "Enabled" : "Овозможен",
+ "Disabled" : "Оневозможен"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/encryption/l10n/mk.json b/apps/encryption/l10n/mk.json
index 1886a626b6f..112d818347c 100644
--- a/apps/encryption/l10n/mk.json
+++ b/apps/encryption/l10n/mk.json
@@ -1,14 +1,11 @@
{ "translations": {
"Password successfully changed." : "Лозинката е успешно променета.",
"Could not change the password. Maybe the old password was not correct." : "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.",
- "Repeat Recovery key password" : "Повтори ја лозинката за клучот на обновување",
- "Enabled" : "Овозможен",
- "Disabled" : "Оневозможен",
- "Old Recovery key password" : "Старата лозинка за клучот на обновување ",
- "Repeat New Recovery key password" : "Повтори ја лозинката за клучот на обновувањето",
"Change Password" : "Смени лозинка",
"Old log-in password" : "Старата лозинка за најавување",
"Current log-in password" : "Тековната лозинка за најавување",
- "Enable password recovery:" : "Овозможи го обновувањето на лозинката:"
+ "Enable password recovery:" : "Овозможи го обновувањето на лозинката:",
+ "Enabled" : "Овозможен",
+ "Disabled" : "Оневозможен"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/nb_NO.js b/apps/encryption/l10n/nb_NO.js
index ee3184a7f02..205f9713583 100644
--- a/apps/encryption/l10n/nb_NO.js
+++ b/apps/encryption/l10n/nb_NO.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):",
"Recovery key password" : "Passord for gjenopprettingsnøkkel",
- "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel",
- "Enabled" : "Aktiv",
- "Disabled" : "Inaktiv",
"Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:",
- "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel",
- "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel",
- "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel",
"Change Password" : "Endre passord",
"Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.",
"Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Nåværende påloggingspassord",
"Update Private Key Password" : "Oppdater passord for privat nøkkel",
"Enable password recovery:" : "Aktiver gjenoppretting av passord:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt.",
+ "Enabled" : "Aktiv",
+ "Disabled" : "Inaktiv"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/nb_NO.json b/apps/encryption/l10n/nb_NO.json
index 942eaf1855c..8f0a09d56b5 100644
--- a/apps/encryption/l10n/nb_NO.json
+++ b/apps/encryption/l10n/nb_NO.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):",
"Recovery key password" : "Passord for gjenopprettingsnøkkel",
- "Repeat Recovery key password" : "Gjenta passord for gjenopprettingsnøkkel",
- "Enabled" : "Aktiv",
- "Disabled" : "Inaktiv",
"Change recovery key password:" : "Endre passord for gjenopprettingsnøkkel:",
- "Old Recovery key password" : "Gammelt passord for gjenopprettingsnøkkel",
- "New Recovery key password" : "Nytt passord for gjenopprettingsnøkkel",
- "Repeat New Recovery key password" : "Gjenta nytt passord for gjenopprettingsnøkkel",
"Change Password" : "Endre passord",
"Your private key password no longer matches your log-in password." : "Passordet for din private nøkkel stemmer ikke lenger med påloggingspassordet ditt.",
"Set your old private key password to your current log-in password:" : "Sett ditt gamle passord for privat nøkkel til ditt nåværende påloggingspassord:",
@@ -34,6 +27,8 @@
"Current log-in password" : "Nåværende påloggingspassord",
"Update Private Key Password" : "Oppdater passord for privat nøkkel",
"Enable password recovery:" : "Aktiver gjenoppretting av passord:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt.",
+ "Enabled" : "Aktiv",
+ "Disabled" : "Inaktiv"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/nl.js b/apps/encryption/l10n/nl.js
index 505cff99620..d455039cff0 100644
--- a/apps/encryption/l10n/nl.js
+++ b/apps/encryption/l10n/nl.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet activeren. Controleer het wachtwoord van uw herstelsleutel!",
"Recovery key successfully disabled" : "Herstelsleutel succesvol gedeactiveerd",
"Could not disable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!",
+ "Missing parameters" : "Ontbrekende parameters",
"Please provide the old recovery password" : "Geef het oude herstelwachtwoord op",
"Please provide a new recovery password" : "Geef een nieuw herstelwachtwoord op",
"Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord",
"Password successfully changed." : "Wachtwoord succesvol gewijzigd.",
"Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.",
+ "Recovery Key disabled" : "Herstelsleutel gedeactiveerd",
"Recovery Key enabled" : "Herstelsleutel ingeschakeld",
"Could not enable the recovery key, please try again or contact your administrator" : "Kon herstelsleutel niet inschakelen, probeer het opnieuw, of neem contact op met uw beheerder",
"Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.",
- "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):",
+ "Enable recovery key" : "Activeer herstelsleutel",
+ "Disable recovery key" : "Deactiveer herstelsleutel",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt om bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker zijn of haar wachtwoord vergeet.",
"Recovery key password" : "Wachtwoord herstelsleulel",
- "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord",
- "Enabled" : "Geactiveerd",
- "Disabled" : "Gedeactiveerd",
+ "Repeat recovery key password" : "Herhaal wachtwoord herstelsleutel",
"Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:",
- "Old Recovery key password" : "Oude wachtwoord herstelsleutel",
- "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel",
- "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord",
+ "Old recovery key password" : "Oude wachtwoord herstelsleutel",
+ "New recovery key password" : "Nieuwe wachtwoord herstelsleutel",
+ "Repeat new recovery key password" : "Herhaal nieuwe wachtwoord herstelsleutel",
"Change Password" : "Wijzigen wachtwoord",
+ "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule",
"Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.",
"Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.",
" If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Huidige wachtwoord",
"Update Private Key Password" : "Bijwerken wachtwoord Privésleutel",
"Enable password recovery:" : "Activeren wachtwoord herstel:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is",
+ "Enabled" : "Geactiveerd",
+ "Disabled" : "Gedeactiveerd"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/nl.json b/apps/encryption/l10n/nl.json
index 13d9747295e..6172a9fa3c8 100644
--- a/apps/encryption/l10n/nl.json
+++ b/apps/encryption/l10n/nl.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet activeren. Controleer het wachtwoord van uw herstelsleutel!",
"Recovery key successfully disabled" : "Herstelsleutel succesvol gedeactiveerd",
"Could not disable recovery key. Please check your recovery key password!" : "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!",
+ "Missing parameters" : "Ontbrekende parameters",
"Please provide the old recovery password" : "Geef het oude herstelwachtwoord op",
"Please provide a new recovery password" : "Geef een nieuw herstelwachtwoord op",
"Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord",
"Password successfully changed." : "Wachtwoord succesvol gewijzigd.",
"Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.",
+ "Recovery Key disabled" : "Herstelsleutel gedeactiveerd",
"Recovery Key enabled" : "Herstelsleutel ingeschakeld",
"Could not enable the recovery key, please try again or contact your administrator" : "Kon herstelsleutel niet inschakelen, probeer het opnieuw, of neem contact op met uw beheerder",
"Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.",
- "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):",
+ "Enable recovery key" : "Activeer herstelsleutel",
+ "Disable recovery key" : "Deactiveer herstelsleutel",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "De herstelsleutel is een extra cryptografische sleutel die wordt gebruikt om bestanden te versleutelen. Die maakt het mogelijk bestanden te herstellen als de gebruiker zijn of haar wachtwoord vergeet.",
"Recovery key password" : "Wachtwoord herstelsleulel",
- "Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord",
- "Enabled" : "Geactiveerd",
- "Disabled" : "Gedeactiveerd",
+ "Repeat recovery key password" : "Herhaal wachtwoord herstelsleutel",
"Change recovery key password:" : "Wijzig wachtwoord herstelsleutel:",
- "Old Recovery key password" : "Oude wachtwoord herstelsleutel",
- "New Recovery key password" : "Nieuwe wachtwoord herstelsleutel",
- "Repeat New Recovery key password" : "Herhaal het nieuwe herstelsleutel wachtwoord",
+ "Old recovery key password" : "Oude wachtwoord herstelsleutel",
+ "New recovery key password" : "Nieuwe wachtwoord herstelsleutel",
+ "Repeat new recovery key password" : "Herhaal nieuwe wachtwoord herstelsleutel",
"Change Password" : "Wijzigen wachtwoord",
+ "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule",
"Your private key password no longer matches your log-in password." : "Het wachtwoord van uw privésleutel komt niet meer overeen met uw inlogwachtwoord.",
"Set your old private key password to your current log-in password:" : "Stel het wachtwoord van uw oude privésleutel in op uw huidige inlogwachtwoord.",
" If you don't remember your old password you can ask your administrator to recover your files." : "Als u uw oude wachtwoord niet meer weet, kunt u uw beheerder vragen uw bestanden terug te halen.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Huidige wachtwoord",
"Update Private Key Password" : "Bijwerken wachtwoord Privésleutel",
"Enable password recovery:" : "Activeren wachtwoord herstel:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is",
+ "Enabled" : "Geactiveerd",
+ "Disabled" : "Gedeactiveerd"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/pl.js b/apps/encryption/l10n/pl.js
index 5b94369ffd2..dd8ecd2081b 100644
--- a/apps/encryption/l10n/pl.js
+++ b/apps/encryption/l10n/pl.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):",
"Recovery key password" : "Hasło klucza odzyskiwania",
- "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania",
- "Enabled" : "Włączone",
- "Disabled" : "Wyłączone",
"Change recovery key password:" : "Zmień hasło klucza odzyskiwania",
- "Old Recovery key password" : "Stare hasło klucza odzyskiwania",
- "New Recovery key password" : "Nowe hasło klucza odzyskiwania",
- "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania",
"Change Password" : "Zmień hasło",
"Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.",
"Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Bieżące hasło logowania",
"Update Private Key Password" : "Aktualizacja hasła klucza prywatnego",
"Enable password recovery:" : "Włącz hasło odzyskiwania:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła",
+ "Enabled" : "Włączone",
+ "Disabled" : "Wyłączone"
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/encryption/l10n/pl.json b/apps/encryption/l10n/pl.json
index 7f173df628d..8e40fe41200 100644
--- a/apps/encryption/l10n/pl.json
+++ b/apps/encryption/l10n/pl.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):",
"Recovery key password" : "Hasło klucza odzyskiwania",
- "Repeat Recovery key password" : "Powtórz hasło klucza odzyskiwania",
- "Enabled" : "Włączone",
- "Disabled" : "Wyłączone",
"Change recovery key password:" : "Zmień hasło klucza odzyskiwania",
- "Old Recovery key password" : "Stare hasło klucza odzyskiwania",
- "New Recovery key password" : "Nowe hasło klucza odzyskiwania",
- "Repeat New Recovery key password" : "Powtórz nowe hasło klucza odzyskiwania",
"Change Password" : "Zmień hasło",
"Your private key password no longer matches your log-in password." : "Hasło Twojego klucza prywatnego nie pasuje już do Twojego hasła logowania.",
"Set your old private key password to your current log-in password:" : "Ustaw stare hasło klucza prywatnego na aktualne hasło logowania:",
@@ -34,6 +27,8 @@
"Current log-in password" : "Bieżące hasło logowania",
"Update Private Key Password" : "Aktualizacja hasła klucza prywatnego",
"Enable password recovery:" : "Włącz hasło odzyskiwania:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła",
+ "Enabled" : "Włączone",
+ "Disabled" : "Wyłączone"
},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js
index cbac8f72b48..4d25a18c137 100644
--- a/apps/encryption/l10n/pt_BR.js
+++ b/apps/encryption/l10n/pt_BR.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Impossível habilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
"Recovery key successfully disabled" : "Recuperação de chave desabilitada com sucesso",
"Could not disable recovery key. Please check your recovery key password!" : "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
+ "Missing parameters" : "Parâmetros que faltam",
"Please provide the old recovery password" : "Por favor, forneça a antiga senha de recuperação",
"Please provide a new recovery password" : "Por favor, forneça a nova senha de recuperação",
"Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação",
"Password successfully changed." : "Senha alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.",
+ "Recovery Key disabled" : "Recuperação de chave desativada",
"Recovery Key enabled" : "Recuperar Chave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "Não foi possível habilitar a chave recuperada, por favor tente novamente ou entre em contato com seu administrador",
"Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.",
@@ -21,17 +23,17 @@ OC.L10N.register(
"Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente",
- "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):",
+ "Enable recovery key" : "Habilitar recuperação de chave",
+ "Disable recovery key" : "Dasabilitar chave de recuperação",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperação é uma chave de encriptação extra que é utilizada para encriptar arquivos. Ela permite a recuperação de arquivos de um usuário esquecer sua senha.",
"Recovery key password" : "Senha da chave de recuperação",
- "Repeat Recovery key password" : "Repita Recuperação de senha da chave",
- "Enabled" : "Habilitado",
- "Disabled" : "Desabilitado",
+ "Repeat recovery key password" : "Repita senha da chave de recuperação",
"Change recovery key password:" : "Mudar a senha da chave de recuperação:",
- "Old Recovery key password" : "Senha antiga da chave de recuperação",
- "New Recovery key password" : "Nova senha da chave de recuperação",
- "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação",
+ "Old recovery key password" : "Senha da chave de recuperação antiga",
+ "New recovery key password" : "Nova senha da chave de recuperação",
+ "Repeat new recovery key password" : "Repita a nova senha da chave de recuperação",
"Change Password" : "Trocar Senha",
+ "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud",
"Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.",
"Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Senha de login atual",
"Update Private Key Password" : "Atualizar Senha de Chave Privada",
"Enable password recovery:" : "Habilitar recuperação de senha:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha",
+ "Enabled" : "Habilitado",
+ "Disabled" : "Desabilitado"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json
index 328a3194635..1c7b13e2e7d 100644
--- a/apps/encryption/l10n/pt_BR.json
+++ b/apps/encryption/l10n/pt_BR.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Impossível habilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
"Recovery key successfully disabled" : "Recuperação de chave desabilitada com sucesso",
"Could not disable recovery key. Please check your recovery key password!" : "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
+ "Missing parameters" : "Parâmetros que faltam",
"Please provide the old recovery password" : "Por favor, forneça a antiga senha de recuperação",
"Please provide a new recovery password" : "Por favor, forneça a nova senha de recuperação",
"Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação",
"Password successfully changed." : "Senha alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.",
+ "Recovery Key disabled" : "Recuperação de chave desativada",
"Recovery Key enabled" : "Recuperar Chave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "Não foi possível habilitar a chave recuperada, por favor tente novamente ou entre em contato com seu administrador",
"Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.",
@@ -19,17 +21,17 @@
"Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente",
- "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):",
+ "Enable recovery key" : "Habilitar recuperação de chave",
+ "Disable recovery key" : "Dasabilitar chave de recuperação",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "A chave de recuperação é uma chave de encriptação extra que é utilizada para encriptar arquivos. Ela permite a recuperação de arquivos de um usuário esquecer sua senha.",
"Recovery key password" : "Senha da chave de recuperação",
- "Repeat Recovery key password" : "Repita Recuperação de senha da chave",
- "Enabled" : "Habilitado",
- "Disabled" : "Desabilitado",
+ "Repeat recovery key password" : "Repita senha da chave de recuperação",
"Change recovery key password:" : "Mudar a senha da chave de recuperação:",
- "Old Recovery key password" : "Senha antiga da chave de recuperação",
- "New Recovery key password" : "Nova senha da chave de recuperação",
- "Repeat New Recovery key password" : "Repita Nova senha da chave de recuperação",
+ "Old recovery key password" : "Senha da chave de recuperação antiga",
+ "New recovery key password" : "Nova senha da chave de recuperação",
+ "Repeat new recovery key password" : "Repita a nova senha da chave de recuperação",
"Change Password" : "Trocar Senha",
+ "ownCloud basic encryption module" : "Modo de criptografia básico ownCloud",
"Your private key password no longer matches your log-in password." : "A sua senha de chave privada não corresponde a sua senha de login.",
"Set your old private key password to your current log-in password:" : "Defina a sua antiga senha da chave privada para sua senha de login atual:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se você não se lembra de sua antiga senha você pode pedir ao administrador que recupere seus arquivos.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Senha de login atual",
"Update Private Key Password" : "Atualizar Senha de Chave Privada",
"Enable password recovery:" : "Habilitar recuperação de senha:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha",
+ "Enabled" : "Habilitado",
+ "Disabled" : "Desabilitado"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/pt_PT.js b/apps/encryption/l10n/pt_PT.js
index 526c79f207b..d3055cd4a40 100644
--- a/apps/encryption/l10n/pt_PT.js
+++ b/apps/encryption/l10n/pt_PT.js
@@ -21,17 +21,10 @@ OC.L10N.register(
"Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente",
- "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):",
"Recovery key password" : "Senha da chave de recuperação",
- "Repeat Recovery key password" : "Contrassenha da chave de recuperação",
- "Enabled" : "Ativada",
- "Disabled" : "Desactivada",
"Change recovery key password:" : "Alterar a senha da chave de recuperação:",
- "Old Recovery key password" : "Senha da chave de recuperação antiga",
- "New Recovery key password" : "Nova senha da chave de recuperação",
- "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação",
"Change Password" : "Alterar a Senha",
+ "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud",
"Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.",
"Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ",
@@ -39,6 +32,8 @@ OC.L10N.register(
"Current log-in password" : "Senha de iniciar sessão atual",
"Update Private Key Password" : "Atualizar Senha da Chave Privada ",
"Enable password recovery:" : "Ativar a recuperação da senha:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha",
+ "Enabled" : "Ativada",
+ "Disabled" : "Desactivada"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/pt_PT.json b/apps/encryption/l10n/pt_PT.json
index 24385809d25..57baaa64ff1 100644
--- a/apps/encryption/l10n/pt_PT.json
+++ b/apps/encryption/l10n/pt_PT.json
@@ -19,17 +19,10 @@
"Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente",
- "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):",
"Recovery key password" : "Senha da chave de recuperação",
- "Repeat Recovery key password" : "Contrassenha da chave de recuperação",
- "Enabled" : "Ativada",
- "Disabled" : "Desactivada",
"Change recovery key password:" : "Alterar a senha da chave de recuperação:",
- "Old Recovery key password" : "Senha da chave de recuperação antiga",
- "New Recovery key password" : "Nova senha da chave de recuperação",
- "Repeat New Recovery key password" : "Contrassenha da nova chave de recuperação",
"Change Password" : "Alterar a Senha",
+ "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud",
"Your private key password no longer matches your log-in password." : "A Password da sua chave privada não coincide mais com a password do seu login.",
"Set your old private key password to your current log-in password:" : "Altere a password antiga da chave privada para a nova password do login:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Se não se lembra da senha antiga pode pedir ao administrador para recuperar os seus ficheiros. ",
@@ -37,6 +30,8 @@
"Current log-in password" : "Senha de iniciar sessão atual",
"Update Private Key Password" : "Atualizar Senha da Chave Privada ",
"Enable password recovery:" : "Ativar a recuperação da senha:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha",
+ "Enabled" : "Ativada",
+ "Disabled" : "Desactivada"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ro.js b/apps/encryption/l10n/ro.js
index 60291bc3a4b..3f699577243 100644
--- a/apps/encryption/l10n/ro.js
+++ b/apps/encryption/l10n/ro.js
@@ -17,9 +17,9 @@ OC.L10N.register(
"Private key password successfully updated." : "Cheia privata a fost actualizata cu succes",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va",
+ "Change Password" : "Schimbă parola",
"ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud",
"Enabled" : "Activat",
- "Disabled" : "Dezactivat",
- "Change Password" : "Schimbă parola"
+ "Disabled" : "Dezactivat"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/encryption/l10n/ro.json b/apps/encryption/l10n/ro.json
index 87f9134fc45..e546b400935 100644
--- a/apps/encryption/l10n/ro.json
+++ b/apps/encryption/l10n/ro.json
@@ -15,9 +15,9 @@
"Private key password successfully updated." : "Cheia privata a fost actualizata cu succes",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va",
+ "Change Password" : "Schimbă parola",
"ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud",
"Enabled" : "Activat",
- "Disabled" : "Dezactivat",
- "Change Password" : "Schimbă parola"
+ "Disabled" : "Dezactivat"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js
index c1104e7f589..03af392d19e 100644
--- a/apps/encryption/l10n/ru.js
+++ b/apps/encryption/l10n/ru.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Невозможно включить ключ восстановления. Проверьте правильность пароля от ключа!",
"Recovery key successfully disabled" : "Ключ восстановления успешно отключен",
"Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!",
+ "Missing parameters" : "Отсутствуют параметры",
"Please provide the old recovery password" : "Введите старый пароль восстановления",
"Please provide a new recovery password" : "Введите новый пароль восстановления",
"Please repeat the new recovery password" : "Повторите новый пароль восстановления",
"Password successfully changed." : "Пароль успешно изменен.",
"Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.",
+ "Recovery Key disabled" : "Ключ Восстановления отключен",
"Recovery Key enabled" : "Ключ Восстановления включен",
"Could not enable the recovery key, please try again or contact your administrator" : "Не возможно задействовать ключ восстановления, попробуйте снова или обратитесь к вашему системному администатору",
"Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.",
@@ -21,17 +23,12 @@ OC.L10N.register(
"Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
- "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):",
+ "Enable recovery key" : "Включить ключ восстановления",
+ "Disable recovery key" : "Отключить ключ восстановления",
"Recovery key password" : "Пароль ключа восстановления",
- "Repeat Recovery key password" : "Повторите пароль ключа восстановления",
- "Enabled" : "Включено",
- "Disabled" : "Отключено",
"Change recovery key password:" : "Смена пароля ключа восстановления:",
- "Old Recovery key password" : "Старый пароль ключа восстановления",
- "New Recovery key password" : "Новый пароль ключа восстановления",
- "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления",
"Change Password" : "Изменить пароль",
+ "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
"Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.",
"Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.",
" If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы",
@@ -39,6 +36,8 @@ OC.L10N.register(
"Current log-in password" : "Текущий пароль учётной записи",
"Update Private Key Password" : "Обновить пароль закрытого ключа",
"Enable password recovery:" : "Включить восстановление пароля:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля",
+ "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%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json
index 6d97a487786..2e2bcfd0513 100644
--- a/apps/encryption/l10n/ru.json
+++ b/apps/encryption/l10n/ru.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Невозможно включить ключ восстановления. Проверьте правильность пароля от ключа!",
"Recovery key successfully disabled" : "Ключ восстановления успешно отключен",
"Could not disable recovery key. Please check your recovery key password!" : "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!",
+ "Missing parameters" : "Отсутствуют параметры",
"Please provide the old recovery password" : "Введите старый пароль восстановления",
"Please provide a new recovery password" : "Введите новый пароль восстановления",
"Please repeat the new recovery password" : "Повторите новый пароль восстановления",
"Password successfully changed." : "Пароль успешно изменен.",
"Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.",
+ "Recovery Key disabled" : "Ключ Восстановления отключен",
"Recovery Key enabled" : "Ключ Восстановления включен",
"Could not enable the recovery key, please try again or contact your administrator" : "Не возможно задействовать ключ восстановления, попробуйте снова или обратитесь к вашему системному администатору",
"Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.",
@@ -19,17 +21,12 @@
"Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
- "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):",
+ "Enable recovery key" : "Включить ключ восстановления",
+ "Disable recovery key" : "Отключить ключ восстановления",
"Recovery key password" : "Пароль ключа восстановления",
- "Repeat Recovery key password" : "Повторите пароль ключа восстановления",
- "Enabled" : "Включено",
- "Disabled" : "Отключено",
"Change recovery key password:" : "Смена пароля ключа восстановления:",
- "Old Recovery key password" : "Старый пароль ключа восстановления",
- "New Recovery key password" : "Новый пароль ключа восстановления",
- "Repeat New Recovery key password" : "Повторите новый пароль ключа восстановления",
"Change Password" : "Изменить пароль",
+ "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
"Your private key password no longer matches your log-in password." : "Пароль закрытого ключа больше не соответствует паролю вашей учетной записи.",
"Set your old private key password to your current log-in password:" : "Замените старый пароль закрытого ключа на текущий пароль учётной записи.",
" If you don't remember your old password you can ask your administrator to recover your files." : "Если вы не помните свой старый пароль, вы можете попросить своего администратора восстановить ваши файлы",
@@ -37,6 +34,8 @@
"Current log-in password" : "Текущий пароль учётной записи",
"Update Private Key Password" : "Обновить пароль закрытого ключа",
"Enable password recovery:" : "Включить восстановление пароля:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля"
-},"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);"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля",
+ "Enabled" : "Включено",
+ "Disabled" : "Отключено"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/sk_SK.js b/apps/encryption/l10n/sk_SK.js
index 763646a364f..ff9f5df4b15 100644
--- a/apps/encryption/l10n/sk_SK.js
+++ b/apps/encryption/l10n/sk_SK.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):",
"Recovery key password" : "Heslo obnovovacieho kľúča",
- "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu",
- "Enabled" : "Povolené",
- "Disabled" : "Zakázané",
"Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:",
- "Old Recovery key password" : "Staré heslo obnovovacieho kľúča",
- "New Recovery key password" : "Nové heslo obnovovacieho kľúča",
- "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu",
"Change Password" : "Zmeniť heslo",
"Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.",
"Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Súčasné prihlasovacie heslo",
"Update Private Key Password" : "Aktualizovať heslo súkromného kľúča",
"Enable password recovery:" : "Povoliť obnovu hesla:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo",
+ "Enabled" : "Povolené",
+ "Disabled" : "Zakázané"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/encryption/l10n/sk_SK.json b/apps/encryption/l10n/sk_SK.json
index dcc8cd48bbb..1dd03e0f9ea 100644
--- a/apps/encryption/l10n/sk_SK.json
+++ b/apps/encryption/l10n/sk_SK.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):",
"Recovery key password" : "Heslo obnovovacieho kľúča",
- "Repeat Recovery key password" : "Zopakujte heslo kľúča pre obnovu",
- "Enabled" : "Povolené",
- "Disabled" : "Zakázané",
"Change recovery key password:" : "Zmeniť heslo obnovovacieho kľúča:",
- "Old Recovery key password" : "Staré heslo obnovovacieho kľúča",
- "New Recovery key password" : "Nové heslo obnovovacieho kľúča",
- "Repeat New Recovery key password" : "Zopakujte nové heslo kľúča pre obnovu",
"Change Password" : "Zmeniť heslo",
"Your private key password no longer matches your log-in password." : "Heslo vášho súkromného kľúča sa nezhoduje v vašim prihlasovacím heslom.",
"Set your old private key password to your current log-in password:" : "Zmeňte si vaše staré heslo súkromného kľúča na rovnaké, aké je vaše aktuálne prihlasovacie heslo:",
@@ -34,6 +27,8 @@
"Current log-in password" : "Súčasné prihlasovacie heslo",
"Update Private Key Password" : "Aktualizovať heslo súkromného kľúča",
"Enable password recovery:" : "Povoliť obnovu hesla:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo",
+ "Enabled" : "Povolené",
+ "Disabled" : "Zakázané"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/sl.js b/apps/encryption/l10n/sl.js
index e10a9b302da..fe9f775fbef 100644
--- a/apps/encryption/l10n/sl.js
+++ b/apps/encryption/l10n/sl.js
@@ -14,20 +14,13 @@ OC.L10N.register(
"Password successfully changed." : "Geslo je uspešno spremenjeno.",
"Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.",
"Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.",
- "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.",
+ "The old password was not correct, please try again." : "Staro geslo ni vpisano pravilno. Poskusite znova.",
"The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.",
"Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):",
"Recovery key password" : "Ključ za obnovitev gesla",
- "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla",
- "Enabled" : "Omogočeno",
- "Disabled" : "Onemogočeno",
"Change recovery key password:" : "Spremeni ključ za obnovitev gesla:",
- "Old Recovery key password" : "Stari ključ za obnovitev gesla",
- "New Recovery key password" : "Novi ključ za obnovitev gesla",
- "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla",
"Change Password" : "Spremeni geslo",
"Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.",
"Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Trenutno geslo",
"Update Private Key Password" : "Posodobi zasebni ključ",
"Enable password recovery:" : "Omogoči obnovitev gesla:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili.",
+ "Enabled" : "Omogočeno",
+ "Disabled" : "Onemogočeno"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/encryption/l10n/sl.json b/apps/encryption/l10n/sl.json
index 55a40653bd7..f650196eac1 100644
--- a/apps/encryption/l10n/sl.json
+++ b/apps/encryption/l10n/sl.json
@@ -12,20 +12,13 @@
"Password successfully changed." : "Geslo je uspešno spremenjeno.",
"Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.",
"Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.",
- "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.",
+ "The old password was not correct, please try again." : "Staro geslo ni vpisano pravilno. Poskusite znova.",
"The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.",
"Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):",
"Recovery key password" : "Ključ za obnovitev gesla",
- "Repeat Recovery key password" : "Ponovi ključ za obnovitev gesla",
- "Enabled" : "Omogočeno",
- "Disabled" : "Onemogočeno",
"Change recovery key password:" : "Spremeni ključ za obnovitev gesla:",
- "Old Recovery key password" : "Stari ključ za obnovitev gesla",
- "New Recovery key password" : "Novi ključ za obnovitev gesla",
- "Repeat New Recovery key password" : "Ponovi novi ključ za obnovitev gesla",
"Change Password" : "Spremeni geslo",
"Your private key password no longer matches your log-in password." : "Zasebno geslo ni več skladno s prijavnim geslom.",
"Set your old private key password to your current log-in password:" : "Nastavite star zasebni ključ na trenutno prijavno geslo:",
@@ -34,6 +27,8 @@
"Current log-in password" : "Trenutno geslo",
"Update Private Key Password" : "Posodobi zasebni ključ",
"Enable password recovery:" : "Omogoči obnovitev gesla:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili."
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili.",
+ "Enabled" : "Omogočeno",
+ "Disabled" : "Onemogočeno"
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js
index 5d15b172dbf..b1e0feaa343 100644
--- a/apps/encryption/l10n/sr.js
+++ b/apps/encryption/l10n/sr.js
@@ -8,30 +8,32 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Не могу да укључим кључ за опоравак. Проверите лозинку кључа за опоравак!",
"Recovery key successfully disabled" : "Кључ за опоравак успешно искључен",
"Could not disable recovery key. Please check your recovery key password!" : "Не могу да искључим кључ за опоравак. Проверите лозинку!",
+ "Missing parameters" : "Недостају параметри",
"Please provide the old recovery password" : "Унесите стару лозинку опоравка",
"Please provide a new recovery password" : "Унесите нову лозинку опоравка",
"Please repeat the new recovery password" : "Поновите нову лозинку опоравка",
"Password successfully changed." : "Лозинка успешно промењена.",
"Could not change the password. Maybe the old password was not correct." : "Не могу да променим лозинку. Можда стара лозинка није исправна.",
- "Recovery Key enabled" : "Кључ опоравка укључен",
- "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ опоравка. Покушајте поново или контактирајте администратора",
- "Could not update the private key password." : "Не могу да ажирирам личну кључ лозинку.",
- "The old password was not correct, please try again." : "Стара лозинка није исправна, покушајте поново.",
- "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна, покушајте поново.",
- "Private key password successfully updated." : "Лична кључ лозинка је успешно ажурирана.",
+ "Recovery Key disabled" : "Кључ за опоравак искључен",
+ "Recovery Key enabled" : "Кључ за опоравак укључен",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ за опоравак. Покушајте поново или контактирајте администратора",
+ "Could not update the private key password." : "Не могу да ажирирам лозинку личног кључа.",
+ "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.",
+ "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна. Покушајте поново.",
+ "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.",
- "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Омогући кључ за опоравак (омогућава опоравак корисничких фајлова у случају губитка лозинке):",
+ "Enable recovery key" : "Омогући кључ за опоравак",
+ "Disable recovery key" : "Онемогући кључ за опоравак",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.",
"Recovery key password" : "Лозинка кључа за опоравак",
- "Repeat Recovery key password" : "Поновите лозинку кључа за опоравак",
- "Enabled" : "укључено",
- "Disabled" : "искључено",
+ "Repeat recovery key password" : "Поновите лозинку кључа за опоравак",
"Change recovery key password:" : "Измена лозинке кључа опоравка:",
- "Old Recovery key password" : "Стара лозинка кључа опоравка",
- "New Recovery key password" : "Нова лозинка кључа опоравка",
- "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка",
+ "Old recovery key password" : "Стара лозинка кључа за опоравак",
+ "New recovery key password" : "Нова лозинка кључа за опоравак",
+ "Repeat new recovery key password" : "Поновите нову лозинку кључа за опоравак",
"Change Password" : "Измени лозинку",
+ "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул",
"Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.",
"Set your old private key password to your current log-in password:" : "Поставите стару лозинку личног кључа као тренутну лозинку за пријаву:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.",
@@ -39,6 +41,8 @@ OC.L10N.register(
"Current log-in password" : "Тренутна лозинка за пријаву",
"Update Private Key Password" : "Ажурирај лозинку личног кључа",
"Enable password recovery:" : "Укључи опоравак лозинке:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке",
+ "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);");
diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json
index 9d0438f870c..f3139af14af 100644
--- a/apps/encryption/l10n/sr.json
+++ b/apps/encryption/l10n/sr.json
@@ -6,30 +6,32 @@
"Could not enable recovery key. Please check your recovery key password!" : "Не могу да укључим кључ за опоравак. Проверите лозинку кључа за опоравак!",
"Recovery key successfully disabled" : "Кључ за опоравак успешно искључен",
"Could not disable recovery key. Please check your recovery key password!" : "Не могу да искључим кључ за опоравак. Проверите лозинку!",
+ "Missing parameters" : "Недостају параметри",
"Please provide the old recovery password" : "Унесите стару лозинку опоравка",
"Please provide a new recovery password" : "Унесите нову лозинку опоравка",
"Please repeat the new recovery password" : "Поновите нову лозинку опоравка",
"Password successfully changed." : "Лозинка успешно промењена.",
"Could not change the password. Maybe the old password was not correct." : "Не могу да променим лозинку. Можда стара лозинка није исправна.",
- "Recovery Key enabled" : "Кључ опоравка укључен",
- "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ опоравка. Покушајте поново или контактирајте администратора",
- "Could not update the private key password." : "Не могу да ажирирам личну кључ лозинку.",
- "The old password was not correct, please try again." : "Стара лозинка није исправна, покушајте поново.",
- "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна, покушајте поново.",
- "Private key password successfully updated." : "Лична кључ лозинка је успешно ажурирана.",
+ "Recovery Key disabled" : "Кључ за опоравак искључен",
+ "Recovery Key enabled" : "Кључ за опоравак укључен",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ за опоравак. Покушајте поново или контактирајте администратора",
+ "Could not update the private key password." : "Не могу да ажирирам лозинку личног кључа.",
+ "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.",
+ "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна. Покушајте поново.",
+ "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.",
- "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Омогући кључ за опоравак (омогућава опоравак корисничких фајлова у случају губитка лозинке):",
+ "Enable recovery key" : "Омогући кључ за опоравак",
+ "Disable recovery key" : "Онемогући кључ за опоравак",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.",
"Recovery key password" : "Лозинка кључа за опоравак",
- "Repeat Recovery key password" : "Поновите лозинку кључа за опоравак",
- "Enabled" : "укључено",
- "Disabled" : "искључено",
+ "Repeat recovery key password" : "Поновите лозинку кључа за опоравак",
"Change recovery key password:" : "Измена лозинке кључа опоравка:",
- "Old Recovery key password" : "Стара лозинка кључа опоравка",
- "New Recovery key password" : "Нова лозинка кључа опоравка",
- "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка",
+ "Old recovery key password" : "Стара лозинка кључа за опоравак",
+ "New recovery key password" : "Нова лозинка кључа за опоравак",
+ "Repeat new recovery key password" : "Поновите нову лозинку кључа за опоравак",
"Change Password" : "Измени лозинку",
+ "ownCloud basic encryption module" : "оунКлауд основни шифрарски модул",
"Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.",
"Set your old private key password to your current log-in password:" : "Поставите стару лозинку личног кључа као тренутну лозинку за пријаву:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.",
@@ -37,6 +39,8 @@
"Current log-in password" : "Тренутна лозинка за пријаву",
"Update Private Key Password" : "Ажурирај лозинку личног кључа",
"Enable password recovery:" : "Укључи опоравак лозинке:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке"
+ "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);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/sv.js b/apps/encryption/l10n/sv.js
index 16898b8da67..9ffea2b937f 100644
--- a/apps/encryption/l10n/sv.js
+++ b/apps/encryption/l10n/sv.js
@@ -19,15 +19,8 @@ OC.L10N.register(
"Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):",
"Recovery key password" : "Lösenord för återställningsnyckel",
- "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord",
- "Enabled" : "Aktiverad",
- "Disabled" : "Inaktiverad",
"Change recovery key password:" : "Ändra lösenord för återställningsnyckel:",
- "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel",
- "New Recovery key password" : "Nytt lösenord för återställningsnyckel",
- "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel",
"Change Password" : "Byt lösenord",
"Your private key password no longer matches your log-in password." : "Ditt lösenord för din privata nyckel matchar inte längre ditt inloggningslösenord.",
"Set your old private key password to your current log-in password:" : "Sätt ditt gamla privatnyckellösenord till ditt aktuella inloggningslösenord:",
@@ -36,6 +29,8 @@ OC.L10N.register(
"Current log-in password" : "Nuvarande inloggningslösenord",
"Update Private Key Password" : "Uppdatera lösenordet för din privata nyckel",
"Enable password recovery:" : "Aktivera lösenordsåterställning",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord",
+ "Enabled" : "Aktiverad",
+ "Disabled" : "Inaktiverad"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/sv.json b/apps/encryption/l10n/sv.json
index 537316161fb..e977107ba21 100644
--- a/apps/encryption/l10n/sv.json
+++ b/apps/encryption/l10n/sv.json
@@ -17,15 +17,8 @@
"Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):",
"Recovery key password" : "Lösenord för återställningsnyckel",
- "Repeat Recovery key password" : "Upprepa återställningsnyckelns lösenord",
- "Enabled" : "Aktiverad",
- "Disabled" : "Inaktiverad",
"Change recovery key password:" : "Ändra lösenord för återställningsnyckel:",
- "Old Recovery key password" : "Gammalt lösenord för återställningsnyckel",
- "New Recovery key password" : "Nytt lösenord för återställningsnyckel",
- "Repeat New Recovery key password" : "Upprepa lösenord för ny återställningsnyckel",
"Change Password" : "Byt lösenord",
"Your private key password no longer matches your log-in password." : "Ditt lösenord för din privata nyckel matchar inte längre ditt inloggningslösenord.",
"Set your old private key password to your current log-in password:" : "Sätt ditt gamla privatnyckellösenord till ditt aktuella inloggningslösenord:",
@@ -34,6 +27,8 @@
"Current log-in password" : "Nuvarande inloggningslösenord",
"Update Private Key Password" : "Uppdatera lösenordet för din privata nyckel",
"Enable password recovery:" : "Aktivera lösenordsåterställning",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord",
+ "Enabled" : "Aktiverad",
+ "Disabled" : "Inaktiverad"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index ef00578b5dc..f462437912e 100644
--- a/apps/encryption/l10n/tr.js
+++ b/apps/encryption/l10n/tr.js
@@ -8,11 +8,13 @@ OC.L10N.register(
"Could not enable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı etkinleştirilemedi. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
"Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı",
"Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
+ "Missing parameters" : "Eksik parametreler",
"Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin",
"Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin",
"Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin",
"Password successfully changed." : "Parola başarıyla değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.",
+ "Recovery Key disabled" : "Kurtarma anahtarı kapalı",
"Recovery Key enabled" : "Kurtarma anahtarı etkin",
"Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun",
"Could not update the private key password." : "Özel anahtar parolası güncellenemedi",
@@ -21,17 +23,12 @@ OC.L10N.register(
"Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
- "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):",
+ "Enable recovery key" : "Kurtarma anahtarını aktif et",
+ "Disable recovery key" : "Kurtarma anahtarını kapat",
"Recovery key password" : "Kurtarma anahtarı parolası",
- "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin",
- "Enabled" : "Etkin",
- "Disabled" : "Devre Dışı",
"Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:",
- "Old Recovery key password" : "Eski Kurtarma anahtarı parolası",
- "New Recovery key password" : "Yeni Kurtarma anahtarı parolası",
- "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin",
"Change Password" : "Parola Değiştir",
+ "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
"Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.",
"Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.",
@@ -39,6 +36,8 @@ OC.L10N.register(
"Current log-in password" : "Geçerli oturum açma parolası",
"Update Private Key Password" : "Özel Anahtar Parolasını Güncelle",
"Enable password recovery:" : "Parola kurtarmayı etkinleştir:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır",
+ "Enabled" : "Etkin",
+ "Disabled" : "Devre Dışı"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json
index 38fbc6898d9..1f3dea88d57 100644
--- a/apps/encryption/l10n/tr.json
+++ b/apps/encryption/l10n/tr.json
@@ -6,11 +6,13 @@
"Could not enable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı etkinleştirilemedi. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
"Recovery key successfully disabled" : "Kurtarma anahtarı başarıyla devre dışı bırakıldı",
"Could not disable recovery key. Please check your recovery key password!" : "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
+ "Missing parameters" : "Eksik parametreler",
"Please provide the old recovery password" : "Lütfen eski kurtarma parolasını girin",
"Please provide a new recovery password" : "Lütfen yeni bir kurtarma parolası girin",
"Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin",
"Password successfully changed." : "Parola başarıyla değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.",
+ "Recovery Key disabled" : "Kurtarma anahtarı kapalı",
"Recovery Key enabled" : "Kurtarma anahtarı etkin",
"Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun",
"Could not update the private key password." : "Özel anahtar parolası güncellenemedi",
@@ -19,17 +21,12 @@
"Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
- "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):",
+ "Enable recovery key" : "Kurtarma anahtarını aktif et",
+ "Disable recovery key" : "Kurtarma anahtarını kapat",
"Recovery key password" : "Kurtarma anahtarı parolası",
- "Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin",
- "Enabled" : "Etkin",
- "Disabled" : "Devre Dışı",
"Change recovery key password:" : "Kurtarma anahtarı parolasını değiştir:",
- "Old Recovery key password" : "Eski Kurtarma anahtarı parolası",
- "New Recovery key password" : "Yeni Kurtarma anahtarı parolası",
- "Repeat New Recovery key password" : "Yeni Kurtarma anahtarı parolasını yineleyin",
"Change Password" : "Parola Değiştir",
+ "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
"Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.",
"Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Eğer eski parolanızı hatırlamıyorsanız, yöneticinizden dosyalarınızı kurtarmasını talep edebilirsiniz.",
@@ -37,6 +34,8 @@
"Current log-in password" : "Geçerli oturum açma parolası",
"Update Private Key Password" : "Özel Anahtar Parolasını Güncelle",
"Enable password recovery:" : "Parola kurtarmayı etkinleştir:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır",
+ "Enabled" : "Etkin",
+ "Disabled" : "Devre Dışı"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/uk.js b/apps/encryption/l10n/uk.js
index 6abba2b9f9f..de044e5a506 100644
--- a/apps/encryption/l10n/uk.js
+++ b/apps/encryption/l10n/uk.js
@@ -21,17 +21,10 @@ OC.L10N.register(
"Private key password successfully updated." : "Пароль секретного ключа оновлено.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
- "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):",
"Recovery key password" : "Пароль ключа відновлення",
- "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення",
- "Enabled" : "Увімкнено",
- "Disabled" : "Вимкнено",
"Change recovery key password:" : "Змінити пароль ключа відновлення:",
- "Old Recovery key password" : "Старий пароль ключа відновлення",
- "New Recovery key password" : "Новий пароль ключа відновлення",
- "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення",
"Change Password" : "Змінити Пароль",
+ "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud",
"Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.",
"Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.",
@@ -39,6 +32,8 @@ OC.L10N.register(
"Current log-in password" : "Поточний пароль входу",
"Update Private Key Password" : "Оновити пароль для закритого ключа",
"Enable password recovery:" : "Ввімкнути відновлення паролю:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю",
+ "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);");
diff --git a/apps/encryption/l10n/uk.json b/apps/encryption/l10n/uk.json
index 31918de0499..f0ac6b8789a 100644
--- a/apps/encryption/l10n/uk.json
+++ b/apps/encryption/l10n/uk.json
@@ -19,17 +19,10 @@
"Private key password successfully updated." : "Пароль секретного ключа оновлено.",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
- "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud",
- "Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):",
"Recovery key password" : "Пароль ключа відновлення",
- "Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення",
- "Enabled" : "Увімкнено",
- "Disabled" : "Вимкнено",
"Change recovery key password:" : "Змінити пароль ключа відновлення:",
- "Old Recovery key password" : "Старий пароль ключа відновлення",
- "New Recovery key password" : "Новий пароль ключа відновлення",
- "Repeat New Recovery key password" : "Введіть ще раз новий пароль ключа відновлення",
"Change Password" : "Змінити Пароль",
+ "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud",
"Your private key password no longer matches your log-in password." : "Пароль вашого закритого ключа більше не відповідає паролю від вашого облікового запису.",
"Set your old private key password to your current log-in password:" : "Замініть старий пароль від закритого ключа на новий пароль входу:",
" If you don't remember your old password you can ask your administrator to recover your files." : "Якщо ви не пам'ятаєте ваш старий пароль, ви можете звернутися до адміністратора щоб його відновити.",
@@ -37,6 +30,8 @@
"Current log-in password" : "Поточний пароль входу",
"Update Private Key Password" : "Оновити пароль для закритого ключа",
"Enable password recovery:" : "Ввімкнути відновлення паролю:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Включення цієї опції дозволить вам отримати доступ до своїх зашифрованих файлів у випадку втрати паролю"
+ "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);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/vi.js b/apps/encryption/l10n/vi.js
index 1e835e4b9ad..6ba7db83cb2 100644
--- a/apps/encryption/l10n/vi.js
+++ b/apps/encryption/l10n/vi.js
@@ -9,14 +9,14 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
"Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
- "Enabled" : "Bật",
- "Disabled" : "Tắt",
"Change Password" : "Đổi Mật khẩu",
" If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.",
"Old log-in password" : "Mật khẩu đăng nhập cũ",
"Current log-in password" : "Mật khẩu đăng nhập hiện tại",
"Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân",
"Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu",
+ "Enabled" : "Bật",
+ "Disabled" : "Tắt"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/vi.json b/apps/encryption/l10n/vi.json
index 51973ceb65d..8d3fd994129 100644
--- a/apps/encryption/l10n/vi.json
+++ b/apps/encryption/l10n/vi.json
@@ -7,14 +7,14 @@
"Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
"Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
- "Enabled" : "Bật",
- "Disabled" : "Tắt",
"Change Password" : "Đổi Mật khẩu",
" If you don't remember your old password you can ask your administrator to recover your files." : "Nếu bạn không nhớ mật khẩu cũ, bạn có thể yêu cầu quản trị viên khôi phục tập tin của bạn.",
"Old log-in password" : "Mật khẩu đăng nhập cũ",
"Current log-in password" : "Mật khẩu đăng nhập hiện tại",
"Update Private Key Password" : "Cập nhật mật khẩu khóa cá nhân",
"Enable password recovery:" : "Kích hoạt khôi phục mật khẩu:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu",
+ "Enabled" : "Bật",
+ "Disabled" : "Tắt"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/zh_CN.js b/apps/encryption/l10n/zh_CN.js
index 59d5b397435..05cfcca307c 100644
--- a/apps/encryption/l10n/zh_CN.js
+++ b/apps/encryption/l10n/zh_CN.js
@@ -17,21 +17,16 @@ OC.L10N.register(
"Private key password successfully updated." : "私钥密码成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
- "Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):",
"Recovery key password" : "恢复密钥密码",
- "Repeat Recovery key password" : "重复恢复密钥密码",
- "Enabled" : "开启",
- "Disabled" : "禁用",
"Change recovery key password:" : "更改恢复密钥密码",
- "Old Recovery key password" : "旧的恢复密钥密码",
- "New Recovery key password" : "新的恢复密钥密码",
- "Repeat New Recovery key password" : "重复新的密钥恢复密码",
"Change Password" : "修改密码",
" If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。",
"Old log-in password" : "旧登录密码",
"Current log-in password" : "当前登录密码",
"Update Private Key Password" : "更新私钥密码",
"Enable password recovery:" : "启用密码恢复:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件",
+ "Enabled" : "开启",
+ "Disabled" : "禁用"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/zh_CN.json b/apps/encryption/l10n/zh_CN.json
index 590a6cf8471..4106228b0d5 100644
--- a/apps/encryption/l10n/zh_CN.json
+++ b/apps/encryption/l10n/zh_CN.json
@@ -15,21 +15,16 @@
"Private key password successfully updated." : "私钥密码成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
- "Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):",
"Recovery key password" : "恢复密钥密码",
- "Repeat Recovery key password" : "重复恢复密钥密码",
- "Enabled" : "开启",
- "Disabled" : "禁用",
"Change recovery key password:" : "更改恢复密钥密码",
- "Old Recovery key password" : "旧的恢复密钥密码",
- "New Recovery key password" : "新的恢复密钥密码",
- "Repeat New Recovery key password" : "重复新的密钥恢复密码",
"Change Password" : "修改密码",
" If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。",
"Old log-in password" : "旧登录密码",
"Current log-in password" : "当前登录密码",
"Update Private Key Password" : "更新私钥密码",
"Enable password recovery:" : "启用密码恢复:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "启用该项将允许你在密码丢失后取回您的加密文件",
+ "Enabled" : "开启",
+ "Disabled" : "禁用"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/zh_HK.js b/apps/encryption/l10n/zh_HK.js
index 83ee6604e27..fef3e6bf042 100644
--- a/apps/encryption/l10n/zh_HK.js
+++ b/apps/encryption/l10n/zh_HK.js
@@ -1,8 +1,8 @@
OC.L10N.register(
"encryption",
{
+ "Change Password" : "更改密碼",
"Enabled" : "啟用",
- "Disabled" : "停用",
- "Change Password" : "更改密碼"
+ "Disabled" : "停用"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/zh_HK.json b/apps/encryption/l10n/zh_HK.json
index 1dad5409c47..08976b5bb41 100644
--- a/apps/encryption/l10n/zh_HK.json
+++ b/apps/encryption/l10n/zh_HK.json
@@ -1,6 +1,6 @@
{ "translations": {
+ "Change Password" : "更改密碼",
"Enabled" : "啟用",
- "Disabled" : "停用",
- "Change Password" : "更改密碼"
+ "Disabled" : "停用"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/zh_TW.js b/apps/encryption/l10n/zh_TW.js
index a3915f15a6f..946dc001507 100644
--- a/apps/encryption/l10n/zh_TW.js
+++ b/apps/encryption/l10n/zh_TW.js
@@ -10,21 +10,16 @@ OC.L10N.register(
"Private key password successfully updated." : "私人金鑰密碼已成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次",
- "Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):",
"Recovery key password" : "還原金鑰密碼",
- "Repeat Recovery key password" : "再輸入還原金鑰密碼一次",
- "Enabled" : "已啓用",
- "Disabled" : "已停用",
"Change recovery key password:" : "變更還原金鑰密碼:",
- "Old Recovery key password" : "舊的還原金鑰密碼",
- "New Recovery key password" : "新的還原金鑰密碼",
- "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次",
"Change Password" : "變更密碼",
" If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。",
"Old log-in password" : "舊登入密碼",
"Current log-in password" : "目前的登入密碼",
"Update Private Key Password" : "更新私人金鑰密碼",
"Enable password recovery:" : "啟用密碼還原:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案",
+ "Enabled" : "已啓用",
+ "Disabled" : "已停用"
},
"nplurals=1; plural=0;");
diff --git a/apps/encryption/l10n/zh_TW.json b/apps/encryption/l10n/zh_TW.json
index 61523cc06f5..67878ea4bf4 100644
--- a/apps/encryption/l10n/zh_TW.json
+++ b/apps/encryption/l10n/zh_TW.json
@@ -8,21 +8,16 @@
"Private key password successfully updated." : "私人金鑰密碼已成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次",
- "Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):",
"Recovery key password" : "還原金鑰密碼",
- "Repeat Recovery key password" : "再輸入還原金鑰密碼一次",
- "Enabled" : "已啓用",
- "Disabled" : "已停用",
"Change recovery key password:" : "變更還原金鑰密碼:",
- "Old Recovery key password" : "舊的還原金鑰密碼",
- "New Recovery key password" : "新的還原金鑰密碼",
- "Repeat New Recovery key password" : "再輸入新的還原金鑰密碼一次",
"Change Password" : "變更密碼",
" If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。",
"Old log-in password" : "舊登入密碼",
"Current log-in password" : "目前的登入密碼",
"Update Private Key Password" : "更新私人金鑰密碼",
"Enable password recovery:" : "啟用密碼還原:",
- "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案"
+ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案",
+ "Enabled" : "已啓用",
+ "Disabled" : "已停用"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php
index 4e181b0712a..c060bb04e53 100644
--- a/apps/encryption/lib/crypto/encryption.php
+++ b/apps/encryption/lib/crypto/encryption.php
@@ -25,6 +25,7 @@
namespace OCA\Encryption\Crypto;
+use OCA\Encryption\Exceptions\PublicKeyMissingException;
use OCA\Encryption\Util;
use OCP\Encryption\IEncryptionModule;
use OCA\Encryption\KeyManager;
@@ -67,6 +68,7 @@ class Encryption implements IEncryptionModule {
/** @var Util */
private $util;
+
/** @var ILogger */
private $logger;
@@ -161,6 +163,9 @@ class Encryption implements IEncryptionModule {
* @param string $path to the file
* @return string remained data which should be written to the file in case
* of a write operation
+ * @throws PublicKeyMissingException
+ * @throws \Exception
+ * @throws \OCA\Encryption\Exceptions\MultiKeyEncryptException
*/
public function end($path) {
$result = '';
@@ -171,10 +176,21 @@ class Encryption implements IEncryptionModule {
}
$publicKeys = array();
foreach ($this->accessList['users'] as $uid) {
- $publicKeys[$uid] = $this->keyManager->getPublicKey($uid);
+ try {
+ $publicKeys[$uid] = $this->keyManager->getPublicKey($uid);
+ } catch (PublicKeyMissingException $e) {
+ $this->logger->warning(
+ 'no public key found for user "{uid}", user will not be able to read the file',
+ ['app' => 'encryption', 'uid' => $uid]
+ );
+ // if the public key of the owner is missing we should fail
+ if ($uid === $this->user) {
+ throw $e;
+ }
+ }
}
- $publicKeys = $this->keyManager->addSystemKeys($this->accessList, $publicKeys);
+ $publicKeys = $this->keyManager->addSystemKeys($this->accessList, $publicKeys, $this->user);
$encryptedKeyfiles = $this->crypt->multiKeyEncrypt($this->fileKey, $publicKeys);
$this->keyManager->setAllFileKeys($this->path, $encryptedKeyfiles);
@@ -254,6 +270,15 @@ class Encryption implements IEncryptionModule {
* @return mixed decrypted data
*/
public function decrypt($data) {
+ if (empty($this->fileKey)) {
+ $msg = $this->l->t('Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
+ $this->logger->error('Can not decrypt this file,
+ probably this is a shared file.
+ Please ask the file owner to reshare the file with you.');
+
+ throw new DecryptionFailedException($msg);
+ }
+
$result = '';
if (!empty($data)) {
$result = $this->crypt->symmetricDecryptFileContent($data, $this->fileKey, $this->cipher);
@@ -271,7 +296,7 @@ class Encryption implements IEncryptionModule {
*/
public function update($path, $uid, array $accessList) {
$fileKey = $this->keyManager->getFileKey($path, $uid);
-
+
if (!empty($fileKey)) {
$publicKeys = array();
@@ -279,7 +304,7 @@ class Encryption implements IEncryptionModule {
$publicKeys[$user] = $this->keyManager->getPublicKey($user);
}
- $publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys);
+ $publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys, $uid);
$encryptedFileKey = $this->crypt->multiKeyEncrypt($fileKey, $publicKeys);
@@ -298,28 +323,6 @@ class Encryption implements IEncryptionModule {
}
/**
- * add system keys such as the public share key and the recovery key
- *
- * @param array $accessList
- * @param array $publicKeys
- * @return array
- */
- public function addSystemKeys(array $accessList, array $publicKeys) {
- if (!empty($accessList['public'])) {
- $publicKeys[$this->keyManager->getPublicShareKeyId()] = $this->keyManager->getPublicShareKey();
- }
-
- if ($this->keyManager->recoveryKeyExists() &&
- $this->util->isRecoveryEnabledForUser()) {
-
- $publicKeys[$this->keyManager->getRecoveryKeyId()] = $this->keyManager->getRecoveryKey();
- }
-
- return $publicKeys;
- }
-
-
- /**
* should the file be encrypted or not
*
* @param string $path
@@ -327,7 +330,7 @@ class Encryption implements IEncryptionModule {
*/
public function shouldEncrypt($path) {
$parts = explode('/', $path);
- if (count($parts) < 3) {
+ if (count($parts) < 4) {
return false;
}
@@ -337,6 +340,9 @@ class Encryption implements IEncryptionModule {
if ($parts[2] == 'files_versions') {
return true;
}
+ if ($parts[2] == 'files_trashbin') {
+ return true;
+ }
return false;
}
@@ -352,6 +358,36 @@ class Encryption implements IEncryptionModule {
}
/**
+ * check if the encryption module is able to read the file,
+ * e.g. if all encryption keys exists
+ *
+ * @param string $path
+ * @param string $uid user for whom we want to check if he can read the file
+ * @return bool
+ * @throws DecryptionFailedException
+ */
+ public function isReadable($path, $uid) {
+ $fileKey = $this->keyManager->getFileKey($path, $uid);
+ if (empty($fileKey)) {
+ $owner = $this->util->getOwner($path);
+ if ($owner !== $uid) {
+ // if it is a shared file we throw a exception with a useful
+ // error message because in this case it means that the file was
+ // shared with the user at a point where the user didn't had a
+ // valid private/public key
+ $msg = 'Encryption module "' . $this->getDisplayName() .
+ '" is not able to read ' . $path;
+ $hint = $this->l->t('Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you.');
+ $this->logger->warning($msg);
+ throw new DecryptionFailedException($msg, 0, null, $hint);
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
* @param string $path
* @return string
*/
@@ -366,4 +402,5 @@ class Encryption implements IEncryptionModule {
return $realPath;
}
+
}
diff --git a/apps/encryption/lib/keymanager.php b/apps/encryption/lib/keymanager.php
index bde8212e9dc..05d23873482 100644
--- a/apps/encryption/lib/keymanager.php
+++ b/apps/encryption/lib/keymanager.php
@@ -483,7 +483,7 @@ class KeyManager {
}
public function deleteAllFileKeys($path) {
- return $this->keyStorage->deleteAllFileKeys($path, Encryption::ID);
+ return $this->keyStorage->deleteAllFileKeys($path);
}
/**
@@ -531,10 +531,11 @@ class KeyManager {
*
* @param array $accessList
* @param array $publicKeys
+ * @param string $uid
* @return array
* @throws PublicKeyMissingException
*/
- public function addSystemKeys(array $accessList, array $publicKeys) {
+ public function addSystemKeys(array $accessList, array $publicKeys, $uid) {
if (!empty($accessList['public'])) {
$publicShareKey = $this->getPublicShareKey();
if (empty($publicShareKey)) {
@@ -544,7 +545,7 @@ class KeyManager {
}
if ($this->recoveryKeyExists() &&
- $this->util->isRecoveryEnabledForUser()) {
+ $this->util->isRecoveryEnabledForUser($uid)) {
$publicKeys[$this->getRecoveryKeyId()] = $this->getRecoveryKey();
}
diff --git a/apps/encryption/lib/recovery.php b/apps/encryption/lib/recovery.php
index cfaa3e49619..61a659e484e 100644
--- a/apps/encryption/lib/recovery.php
+++ b/apps/encryption/lib/recovery.php
@@ -228,7 +228,7 @@ class Recovery {
$publicKeys[$uid] = $this->keyManager->getPublicKey($uid);
}
- $publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys);
+ $publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys, $this->user->getUID());
$encryptedKeyfiles = $this->crypt->multiKeyEncrypt($fileKey, $publicKeys);
$this->keyManager->setAllFileKeys($filePath, $encryptedKeyfiles);
@@ -264,33 +264,39 @@ class Recovery {
$privateKey = $this->crypt->decryptPrivateKey($encryptedKey,
$recoveryPassword);
- $this->recoverAllFiles('/' . $user . '/files/', $privateKey);
+ $this->recoverAllFiles('/' . $user . '/files/', $privateKey, $user);
}
/**
- * @param $path
- * @param $privateKey
+ * recover users files
+ *
+ * @param string $path
+ * @param string $privateKey
+ * @param string $uid
*/
- private function recoverAllFiles($path, $privateKey) {
+ private function recoverAllFiles($path, $privateKey, $uid) {
$dirContent = $this->view->getDirectoryContent($path);
foreach ($dirContent as $item) {
// Get relative path from encryption/keyfiles
$filePath = $item->getPath();
if ($this->view->is_dir($filePath)) {
- $this->recoverAllFiles($filePath . '/', $privateKey);
+ $this->recoverAllFiles($filePath . '/', $privateKey, $uid);
} else {
- $this->recoverFile($filePath, $privateKey);
+ $this->recoverFile($filePath, $privateKey, $uid);
}
}
}
/**
+ * recover file
+ *
* @param string $path
* @param string $privateKey
+ * @param string $uid
*/
- private function recoverFile($path, $privateKey) {
+ private function recoverFile($path, $privateKey, $uid) {
$encryptedFileKey = $this->keyManager->getEncryptedFileKey($path);
$shareKey = $this->keyManager->getShareKey($path, $this->keyManager->getRecoveryKeyId());
@@ -303,11 +309,11 @@ class Recovery {
if (!empty($fileKey)) {
$accessList = $this->file->getAccessList($path);
$publicKeys = array();
- foreach ($accessList['users'] as $uid) {
- $publicKeys[$uid] = $this->keyManager->getPublicKey($uid);
+ foreach ($accessList['users'] as $user) {
+ $publicKeys[$user] = $this->keyManager->getPublicKey($user);
}
- $publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys);
+ $publicKeys = $this->keyManager->addSystemKeys($accessList, $publicKeys, $uid);
$encryptedKeyfiles = $this->crypt->multiKeyEncrypt($fileKey, $publicKeys);
$this->keyManager->setAllFileKeys($path, $encryptedKeyfiles);
diff --git a/apps/encryption/lib/util.php b/apps/encryption/lib/util.php
index 04e04028caf..afed96aaa38 100644
--- a/apps/encryption/lib/util.php
+++ b/apps/encryption/lib/util.php
@@ -29,6 +29,7 @@ use OCA\Encryption\Crypto\Crypt;
use OCP\IConfig;
use OCP\ILogger;
use OCP\IUser;
+use OCP\IUserManager;
use OCP\IUserSession;
use OCP\PreConditionNotMetException;
@@ -53,6 +54,10 @@ class Util {
* @var IConfig
*/
private $config;
+ /**
+ * @var IUserManager
+ */
+ private $userManager;
/**
* Util constructor.
@@ -62,25 +67,31 @@ class Util {
* @param ILogger $logger
* @param IUserSession $userSession
* @param IConfig $config
+ * @param IUserManager $userManager
*/
public function __construct(View $files,
Crypt $crypt,
ILogger $logger,
IUserSession $userSession,
- IConfig $config
+ IConfig $config,
+ IUserManager $userManager
) {
$this->files = $files;
$this->crypt = $crypt;
$this->logger = $logger;
$this->user = $userSession && $userSession->isLoggedIn() ? $userSession->getUser() : false;
$this->config = $config;
+ $this->userManager = $userManager;
}
/**
+ * check if recovery key is enabled for user
+ *
+ * @param string $uid
* @return bool
*/
- public function isRecoveryEnabledForUser() {
- $recoveryMode = $this->config->getUserValue($this->user->getUID(),
+ public function isRecoveryEnabledForUser($uid) {
+ $recoveryMode = $this->config->getUserValue($uid,
'encryption',
'recoveryEnabled',
0);
@@ -114,5 +125,26 @@ class Util {
return $this->files->file_exists($uid . '/files');
}
+ /**
+ * get owner from give path, path relative to data/ expected
+ *
+ * @param string $path relative to data/
+ * @return string
+ * @throws \BadMethodCallException
+ */
+ public function getOwner($path) {
+ $owner = '';
+ $parts = explode('/', $path, 3);
+ if (count($parts) > 1) {
+ $owner = $parts[1];
+ if ($this->userManager->userExists($owner) === false) {
+ throw new \BadMethodCallException('Unknown user: ' .
+ 'method expects path to a user folder relative to the data folder');
+ }
+
+ }
+
+ return $owner;
+ }
}
diff --git a/apps/encryption/settings/settings-personal.php b/apps/encryption/settings/settings-personal.php
index 01e1bdab0ea..3815626ee64 100644
--- a/apps/encryption/settings/settings-personal.php
+++ b/apps/encryption/settings/settings-personal.php
@@ -35,7 +35,8 @@ $util = new \OCA\Encryption\Util(
$crypt,
\OC::$server->getLogger(),
$userSession,
- \OC::$server->getConfig());
+ \OC::$server->getConfig(),
+ \OC::$server->getUserManager());
$keyManager = new \OCA\Encryption\KeyManager(
\OC::$server->getEncryptionKeyStorage(),
@@ -56,7 +57,7 @@ $privateKeySet = $session->isPrivateKeySet();
$initialized = $session->getStatus();
$recoveryAdminEnabled = \OC::$server->getConfig()->getAppValue('encryption', 'recoveryAdminEnabled');
-$recoveryEnabledForUser = $util->isRecoveryEnabledForUser();
+$recoveryEnabledForUser = $util->isRecoveryEnabledForUser($user);
$result = false;
diff --git a/apps/encryption/templates/settings-admin.php b/apps/encryption/templates/settings-admin.php
index b64e75512e7..81c7f0607d8 100644
--- a/apps/encryption/templates/settings-admin.php
+++ b/apps/encryption/templates/settings-admin.php
@@ -3,66 +3,57 @@
/** @var OC_L10N $l */
script('encryption', 'settings-admin');
script('core', 'multiselect');
+style('encryption', 'settings-admin');
?>
-<form id="encryption" class="section">
- <h2><?php p($l->t('ownCloud basic encryption module')); ?></h2>
-
+<form id="ocDefaultEncryptionModule" class="sub-section">
<?php if(!$_["initStatus"]): ?>
<?php p($l->t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?>
<?php else: ?>
<p id="encryptionSetRecoveryKey">
- <?php p($l->t("Enable recovery key (allow to recover users files in case of password loss):")); ?>
+ <?php $_["recoveryEnabled"] === '0' ? p($l->t("Enable recovery key")) : p($l->t("Disable recovery key")); ?>
<span class="msg"></span>
<br/>
+ <em>
+ <?php p($l->t("The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password.")) ?>
+ </em>
<br/>
- <input type="password" name="encryptionRecoveryPassword" id="encryptionRecoveryPassword"/>
- <label for="recoveryPassword"><?php p($l->t("Recovery key password")); ?></label>
- <br/>
- <input type="password" name="encryptionRecoveryPassword" id="repeatEncryptionRecoveryPassword"/>
- <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat Recovery key password")); ?></label>
- <br/>
- <input
- type='radio'
- id='adminEnableRecovery'
- name='adminEnableRecovery'
- value='1'
- <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : ''); ?> />
- <label for="adminEnableRecovery"><?php p($l->t("Enabled")); ?></label>
- <br/>
-
- <input
- type='radio'
- id='adminDisableRecovery'
- name='adminEnableRecovery'
- value='0'
- <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : ''); ?> />
- <label for="adminDisableRecovery"><?php p($l->t("Disabled")); ?></label>
+ <input type="password"
+ name="encryptionRecoveryPassword"
+ id="encryptionRecoveryPassword"
+ placeholder="<?php p($l->t("Recovery key password")); ?>"/>
+ <input type="password"
+ name="encryptionRecoveryPassword"
+ id="repeatEncryptionRecoveryPassword"
+ placeholder="<?php p($l->t("Repeat recovery key password")); ?>"/>
+ <input type="button"
+ name="enableRecoveryKey"
+ id="enableRecoveryKey"
+ status="<?php p($_["recoveryEnabled"]) ?>"
+ value="<?php $_["recoveryEnabled"] === '0' ? p($l->t("Enable recovery key")) : p($l->t("Disable recovery key")); ?>"/>
</p>
<br/><br/>
- <p name="changeRecoveryPasswordBlock" id="encryptionChangeRecoveryKey" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>>
- <strong><?php p($l->t("Change recovery key password:")); ?></strong>
+ <p name="changeRecoveryPasswordBlock" id="encryptionChangeRecoveryKey" <?php if($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>>
+ <?php p($l->t("Change recovery key password:")); ?>
<span class="msg"></span>
- <br/><br/>
+ <br/>
<input
type="password"
name="changeRecoveryPassword"
- id="oldEncryptionRecoveryPassword" />
- <label for="oldEncryptionRecoveryPassword"><?php p($l->t("Old Recovery key password")); ?></label>
- <br/>
- <br/>
+ id="oldEncryptionRecoveryPassword"
+ placeholder="<?php p($l->t("Old recovery key password")); ?>"/>
+ <br />
<input
type="password"
name="changeRecoveryPassword"
- id="newEncryptionRecoveryPassword" />
- <label for="newEncryptionRecoveryPassword"><?php p($l->t("New Recovery key password")); ?></label>
- <br/>
+ id="newEncryptionRecoveryPassword"
+ placeholder="<?php p($l->t("New recovery key password")); ?>"/>
<input
type="password"
name="changeRecoveryPassword"
- id="repeatedNewEncryptionRecoveryPassword" />
- <label for="repeatEncryptionRecoveryPassword"><?php p($l->t("Repeat New Recovery key password")); ?></label>
- <br/>
+ id="repeatedNewEncryptionRecoveryPassword"
+ placeholder="<?php p($l->t("Repeat new recovery key password")); ?>"/>
+
<button
type="button"
name="submitChangeRecoveryKey">
diff --git a/apps/encryption/templates/settings-personal.php b/apps/encryption/templates/settings-personal.php
index 6b8821ca8a8..e0a7fc22eeb 100644
--- a/apps/encryption/templates/settings-personal.php
+++ b/apps/encryption/templates/settings-personal.php
@@ -4,7 +4,7 @@
script('encryption', 'settings-personal');
script('core', 'multiselect');
?>
-<form id="encryption" class="section">
+<form id="ocDefaultEncryptionModule" class="section">
<h2><?php p($l->t('ownCloud basic encryption module')); ?></h2>
<?php if ($_["initialized"] === \OCA\Encryption\Session::NOT_INITIALIZED ): ?>
diff --git a/apps/encryption/tests/controller/RecoveryControllerTest.php b/apps/encryption/tests/controller/RecoveryControllerTest.php
new file mode 100644
index 00000000000..89b541e7bd6
--- /dev/null
+++ b/apps/encryption/tests/controller/RecoveryControllerTest.php
@@ -0,0 +1,179 @@
+<?php
+/**
+ * @author Clark Tomlinson <clark@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ */
+
+
+namespace OCA\Encryption\Tests\Controller;
+
+
+use OCA\Encryption\Controller\RecoveryController;
+use OCP\AppFramework\Http;
+use Test\TestCase;
+
+class RecoveryControllerTest extends TestCase {
+ /**
+ * @var RecoveryController
+ */
+ private $controller;
+ private $appName;
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $requestMock;
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $configMock;
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $l10nMock;
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $recoveryMock;
+
+ public function adminRecoveryProvider() {
+ return [
+ ['test', 'test', '1', 'Recovery key successfully enabled', HTTP::STATUS_OK],
+ ['', 'test', '1', 'Missing recovery key password', HTTP::STATUS_BAD_REQUEST],
+ ['test', '', '1', 'Please repeat the recovery key password', HTTP::STATUS_BAD_REQUEST],
+ ['test', 'soimething that doesn\'t match', '1', 'Repeated recovery key password does not match the provided recovery key password', HTTP::STATUS_BAD_REQUEST],
+ ['test', 'test', '0', 'Recovery key successfully disabled', HTTP::STATUS_OK],
+ ];
+ }
+
+ /**
+ * @dataProvider adminRecoveryProvider
+ * @param $recoveryPassword
+ * @param $passconfirm
+ * @param $enableRecovery
+ * @param $expectedMessage
+ * @param $expectedStatus
+ */
+ public function testAdminRecovery($recoveryPassword, $passconfirm, $enableRecovery, $expectedMessage, $expectedStatus) {
+
+
+ $this->recoveryMock->expects($this->any())
+ ->method('enableAdminRecovery')
+ ->willReturn(true);
+
+ $this->recoveryMock->expects($this->any())
+ ->method('disableAdminRecovery')
+ ->willReturn(true);
+
+ $response = $this->controller->adminRecovery($recoveryPassword,
+ $passconfirm,
+ $enableRecovery);
+
+
+ $this->assertEquals($expectedMessage, $response->getData()['data']['message']);
+ $this->assertEquals($expectedStatus, $response->getStatus());
+
+
+ }
+
+ public function changeRecoveryPasswordProvider() {
+ return [
+ ['test', 'test', 'oldtestFail', 'Could not change the password. Maybe the old password was not correct.', HTTP::STATUS_BAD_REQUEST],
+ ['test', 'test', 'oldtest', 'Password successfully changed.', HTTP::STATUS_OK],
+ ['test', 'notmatch', 'oldtest', 'Repeated recovery key password does not match the provided recovery key password', HTTP::STATUS_BAD_REQUEST],
+ ['', 'test', 'oldtest', 'Please provide a new recovery password', HTTP::STATUS_BAD_REQUEST],
+ ['test', 'test', '', 'Please provide the old recovery password', HTTP::STATUS_BAD_REQUEST]
+ ];
+ }
+
+ /**
+ * @dataProvider changeRecoveryPasswordProvider
+ * @param $password
+ * @param $confirmPassword
+ * @param $oldPassword
+ * @param $expectedMessage
+ * @param $expectedStatus
+ */
+ public function testChangeRecoveryPassword($password, $confirmPassword, $oldPassword, $expectedMessage, $expectedStatus) {
+ $this->recoveryMock->expects($this->any())
+ ->method('changeRecoveryKeyPassword')
+ ->with($password, $oldPassword)
+ ->will($this->returnValueMap([
+ ['test', 'oldTestFail', false],
+ ['test', 'oldtest', true]
+ ]));
+
+ $response = $this->controller->changeRecoveryPassword($password,
+ $oldPassword,
+ $confirmPassword);
+
+ $this->assertEquals($expectedMessage, $response->getData()['data']['message']);
+ $this->assertEquals($expectedStatus, $response->getStatus());
+
+
+ }
+
+ public function userSetRecoveryProvider() {
+ return [
+ ['1', 'Recovery Key enabled', Http::STATUS_OK],
+ ['0', 'Could not enable the recovery key, please try again or contact your administrator', Http::STATUS_BAD_REQUEST]
+ ];
+ }
+
+ /**
+ * @dataProvider userSetRecoveryProvider
+ * @param $enableRecovery
+ * @param $expectedMessage
+ * @param $expectedStatus
+ */
+ public function testUserSetRecovery($enableRecovery, $expectedMessage, $expectedStatus) {
+ $this->recoveryMock->expects($this->any())
+ ->method('setRecoveryForUser')
+ ->with($enableRecovery)
+ ->will($this->returnValueMap([
+ ['1', true],
+ ['0', false]
+ ]));
+
+
+ $response = $this->controller->userSetRecovery($enableRecovery);
+
+ $this->assertEquals($expectedMessage, $response->getData()['data']['message']);
+ $this->assertEquals($expectedStatus, $response->getStatus());
+
+ }
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->appName = 'encryption';
+ $this->requestMock = $this->getMockBuilder('\OCP\IRequest')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->configMock = $this->getMockBuilder('OCP\IConfig')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->l10nMock = $this->getMockBuilder('OCP\IL10N')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ // Make l10n work in our tests
+ $this->l10nMock->expects($this->any())
+ ->method('t')
+ ->willReturnArgument(0);
+
+ $this->recoveryMock = $this->getMockBuilder('OCA\Encryption\Recovery')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->controller = new RecoveryController($this->appName,
+ $this->requestMock,
+ $this->configMock,
+ $this->l10nMock,
+ $this->recoveryMock);
+ }
+
+}
diff --git a/apps/encryption/tests/lib/KeyManagerTest.php b/apps/encryption/tests/lib/KeyManagerTest.php
index 251628d99f2..6e9c6d15818 100644
--- a/apps/encryption/tests/lib/KeyManagerTest.php
+++ b/apps/encryption/tests/lib/KeyManagerTest.php
@@ -297,4 +297,63 @@ class KeyManagerTest extends TestCase {
$this->assertTrue($this->instance->deleteAllFileKeys('/'));
}
+
+ /**
+ * test add public share key and or recovery key to the list of public keys
+ *
+ * @dataProvider dataTestAddSystemKeys
+ *
+ * @param array $accessList
+ * @param array $publicKeys
+ * @param string $uid
+ * @param array $expectedKeys
+ */
+ public function testAddSystemKeys($accessList, $publicKeys, $uid, $expectedKeys) {
+
+ $publicShareKeyId = 'publicShareKey';
+ $recoveryKeyId = 'recoveryKey';
+
+ $this->keyStorageMock->expects($this->any())
+ ->method('getSystemUserKey')
+ ->willReturnCallback(function($keyId, $encryptionModuleId) {
+ return $keyId;
+ });
+
+ $this->utilMock->expects($this->any())
+ ->method('isRecoveryEnabledForUser')
+ ->willReturnCallback(function($uid) {
+ if ($uid === 'user1') {
+ return true;
+ }
+ return false;
+ });
+
+ // set key IDs
+ \Test_Helper::invokePrivate($this->instance, 'publicShareKeyId', [$publicShareKeyId]);
+ \Test_Helper::invokePrivate($this->instance, 'recoveryKeyId', [$recoveryKeyId]);
+
+ $result = $this->instance->addSystemKeys($accessList, $publicKeys, $uid);
+
+ foreach ($expectedKeys as $expected) {
+ $this->assertArrayHasKey($expected, $result);
+ }
+
+ $this->assertSameSize($expectedKeys, $result);
+ }
+
+ /**
+ * data provider for testAddSystemKeys()
+ *
+ * @return array
+ */
+ public function dataTestAddSystemKeys() {
+ return array(
+ array(['public' => true],[], 'user1', ['publicShareKey', 'recoveryKey']),
+ array(['public' => false], [], 'user1', ['recoveryKey']),
+ array(['public' => true],[], 'user2', ['publicShareKey']),
+ array(['public' => false], [], 'user2', []),
+ );
+ }
+
+
}
diff --git a/apps/encryption/tests/lib/RecoveryTest.php b/apps/encryption/tests/lib/RecoveryTest.php
index b3fd403949c..5bfafa3a98e 100644
--- a/apps/encryption/tests/lib/RecoveryTest.php
+++ b/apps/encryption/tests/lib/RecoveryTest.php
@@ -170,6 +170,7 @@ class RecoveryTest extends TestCase {
$this->keyManagerMock->expects($this->once())
->method('addSystemKeys')
+ ->with($this->anything(), $this->anything(), $this->equalTo('admin'))
->willReturn(['admin' => 'publicKey']);
@@ -181,7 +182,7 @@ class RecoveryTest extends TestCase {
$this->assertNull(\Test_Helper::invokePrivate($this->instance,
'recoverFile',
- ['/', 'testkey']));
+ ['/', 'testkey', 'admin']));
}
protected function setUp() {
diff --git a/apps/encryption/tests/lib/UtilTest.php b/apps/encryption/tests/lib/UtilTest.php
index 5f086a8e475..18cf0386793 100644
--- a/apps/encryption/tests/lib/UtilTest.php
+++ b/apps/encryption/tests/lib/UtilTest.php
@@ -28,11 +28,17 @@ use Test\TestCase;
class UtilTest extends TestCase {
private static $tempStorage = [];
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
private $configMock;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
private $filesMock;
- /**
- * @var Util
- */
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $userManagerMock;
+
+ /** @var Util */
private $instance;
public function testSetRecoveryForUser() {
@@ -40,15 +46,12 @@ class UtilTest extends TestCase {
$this->assertArrayHasKey('recoveryEnabled', self::$tempStorage);
}
- /**
- *
- */
public function testIsRecoveryEnabledForUser() {
- $this->assertTrue($this->instance->isRecoveryEnabledForUser());
+ $this->assertTrue($this->instance->isRecoveryEnabledForUser('admin'));
// Assert recovery will return default value if not set
unset(self::$tempStorage['recoveryEnabled']);
- $this->assertEquals(0, $this->instance->isRecoveryEnabledForUser());
+ $this->assertEquals(0, $this->instance->isRecoveryEnabledForUser('admin'));
}
public function testUserHasFiles() {
@@ -62,6 +65,7 @@ class UtilTest extends TestCase {
protected function setUp() {
parent::setUp();
$this->filesMock = $this->getMock('OC\Files\View');
+ $this->userManagerMock = $this->getMock('\OCP\IUserManager');
$cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt')
->disableOriginalConstructor()
@@ -98,7 +102,7 @@ class UtilTest extends TestCase {
->method('setUserValue')
->will($this->returnCallback([$this, 'setValueTester']));
- $this->instance = new Util($this->filesMock, $cryptMock, $loggerMock, $userSessionMock, $configMock);
+ $this->instance = new Util($this->filesMock, $cryptMock, $loggerMock, $userSessionMock, $configMock, $this->userManagerMock);
}
/**
diff --git a/apps/encryption/tests/lib/crypto/cryptTest.php b/apps/encryption/tests/lib/crypto/cryptTest.php
index 3ea57668348..4114adb115a 100644
--- a/apps/encryption/tests/lib/crypto/cryptTest.php
+++ b/apps/encryption/tests/lib/crypto/cryptTest.php
@@ -20,7 +20,7 @@
*/
-namespace OCA\Encryption\Tests\Crypt;
+namespace OCA\Encryption\Tests\lib\Crypto;
use OCA\Encryption\Crypto\Crypt;
diff --git a/apps/encryption/tests/lib/crypto/encryptionTest.php b/apps/encryption/tests/lib/crypto/encryptionTest.php
index cb4ca2d3a12..960ed112488 100644
--- a/apps/encryption/tests/lib/crypto/encryptionTest.php
+++ b/apps/encryption/tests/lib/crypto/encryptionTest.php
@@ -19,8 +19,9 @@
*
*/
-namespace OCA\Encryption\Tests\Crypto;
+namespace OCA\Encryption\Tests\lib\Crypto;
+use OCA\Encryption\Exceptions\PublicKeyMissingException;
use Test\TestCase;
use OCA\Encryption\Crypto\Encryption;
@@ -63,6 +64,66 @@ class EncryptionTest extends TestCase {
$this->utilMock,
$this->loggerMock
);
+
+ }
+
+ /**
+ * test if public key from one of the recipients is missing
+ */
+ public function testEndUser1() {
+ $this->instance->begin('/foo/bar', 'user1', 'r', array(), array('users' => array('user1', 'user2', 'user3')));
+ $this->endTest();
+ }
+
+ /**
+ * test if public key from owner is missing
+ *
+ * @expectedException \OCA\Encryption\Exceptions\PublicKeyMissingException
+ */
+ public function testEndUser2() {
+ $this->instance->begin('/foo/bar', 'user2', 'r', array(), array('users' => array('user1', 'user2', 'user3')));
+ $this->endTest();
+ }
+
+ /**
+ * common part of testEndUser1 and testEndUser2
+ *
+ * @throws PublicKeyMissingException
+ */
+ public function endTest() {
+ // prepare internal variables
+ \Test_Helper::invokePrivate($this->instance, 'isWriteOperation', [true]);
+ \Test_Helper::invokePrivate($this->instance, 'writeCache', ['']);
+
+ $this->keyManagerMock->expects($this->any())
+ ->method('getPublicKey')
+ ->will($this->returnCallback([$this, 'getPublicKeyCallback']));
+ $this->keyManagerMock->expects($this->any())
+ ->method('addSystemKeys')
+ ->will($this->returnCallback([$this, 'addSystemKeysCallback']));
+ $this->cryptMock->expects($this->any())
+ ->method('multiKeyEncrypt')
+ ->willReturn(true);
+ $this->cryptMock->expects($this->any())
+ ->method('setAllFileKeys')
+ ->willReturn(true);
+
+ $this->instance->end('/foo/bar');
+ }
+
+
+ public function getPublicKeyCallback($uid) {
+ if ($uid === 'user2') {
+ throw new PublicKeyMissingException($uid);
+ }
+ return $uid;
+ }
+
+ public function addSystemKeysCallback($accessList, $publicKeys) {
+ $this->assertSame(2, count($publicKeys));
+ $this->assertArrayHasKey('user1', $publicKeys);
+ $this->assertArrayHasKey('user3', $publicKeys);
+ return $publicKeys;
}
/**
@@ -159,4 +220,29 @@ class EncryptionTest extends TestCase {
);
}
+ /**
+ * by default the encryption module should encrypt regular files, files in
+ * files_versions and files in files_trashbin
+ *
+ * @dataProvider dataTestShouldEncrypt
+ */
+ public function testShouldEncrypt($path, $expected) {
+ $this->assertSame($expected,
+ $this->instance->shouldEncrypt($path)
+ );
+ }
+
+ public function dataTestShouldEncrypt() {
+ return array(
+ array('/user1/files/foo.txt', true),
+ array('/user1/files_versions/foo.txt', true),
+ array('/user1/files_trashbin/foo.txt', true),
+ array('/user1/some_folder/foo.txt', false),
+ array('/user1/foo.txt', false),
+ array('/user1/files', false),
+ array('/user1/files_trashbin', false),
+ array('/user1/files_versions', false),
+ );
+ }
+
}
diff --git a/apps/encryption_dummy/appinfo/app.php b/apps/encryption_dummy/appinfo/app.php
deleted file mode 100644
index 51a535a9820..00000000000
--- a/apps/encryption_dummy/appinfo/app.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-$manager = \OC::$server->getEncryptionManager();
-$module = new \OCA\Encryption_Dummy\DummyModule();
-$manager->registerEncryptionModule('OC_DUMMY_MODULE', 'Dummy Encryption Module', function() use ($module) {
- return $module;
-});
-
diff --git a/apps/encryption_dummy/appinfo/info.xml b/apps/encryption_dummy/appinfo/info.xml
deleted file mode 100644
index f62f6fb5dd6..00000000000
--- a/apps/encryption_dummy/appinfo/info.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<info>
- <id>encryption_dummy</id>
- <name>dummy encryption module</name>
- <description>
- This module does nothing, it is used for testing purpose only
- </description>
- <licence>AGPL</licence>
- <author>Bjoern Schiessle</author>
- <requiremin>8</requiremin>
- <shipped>true</shipped>
- <rememberlogin>false</rememberlogin>
- <types>
- <filesystem/>
- </types>
- <ocsid>166047</ocsid>
- <dependencies>
- <lib>openssl</lib>
- </dependencies>
-</info>
diff --git a/apps/encryption_dummy/appinfo/version b/apps/encryption_dummy/appinfo/version
deleted file mode 100644
index 8acdd82b765..00000000000
--- a/apps/encryption_dummy/appinfo/version
+++ /dev/null
@@ -1 +0,0 @@
-0.0.1
diff --git a/apps/encryption_dummy/img/app.svg b/apps/encryption_dummy/img/app.svg
deleted file mode 100644
index 1157c71c66e..00000000000
--- a/apps/encryption_dummy/img/app.svg
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xml:space="preserve"
- height="16px"
- width="16px"
- version="1.1"
- y="0px"
- x="0px"
- viewBox="0 0 71 100"
- id="svg2"
- inkscape:version="0.48.5 r10040"
- sodipodi:docname="app.svg"><metadata
- id="metadata10"><rdf:RDF><cc:Work
- rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
- id="defs8" /><sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1920"
- inkscape:window-height="1014"
- id="namedview6"
- showgrid="false"
- inkscape:zoom="14.75"
- inkscape:cx="-21.423729"
- inkscape:cy="8"
- inkscape:window-x="0"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg2" /><path
- d="m8 1c-2.2091 0-4 1.7909-4 4v2h-1v7h10v-7h-1v-2c0-2.2091-1.791-4-4-4zm0 2c1.1046 0 2 0.89543 2 2v2h-4v-2c0-1.1046 0.8954-2 2-2z"
- transform="matrix(6.25,0,0,6.25,-14.5,0)"
- id="path4"
- style="fill:#ffffff;fill-opacity:1" /><path
- style="fill:none"
- d="m 3.0644068,10.508475 0,-3.4576275 0.4655371,0 0.465537,0 0.049537,-1.2033899 C 4.1094633,4.2818838 4.1578923,4.0112428 4.4962182,3.3259708 4.7075644,2.8978935 4.9002217,2.6327599 5.2605792,2.2740624 6.7855365,0.75613022 8.9920507,0.69157582 10.623172,2.1171729 c 0.384104,0.3357058 0.882069,1.0763131 1.054177,1.5678422 0.147302,0.4206856 0.262873,1.6086448 0.266436,2.7387137 l 0.002,0.6271187 0.508474,0 0.508475,0 0,3.4576275 0,3.457627 -4.9491527,0 -4.9491525,0 0,-3.457627 z M 10.065882,6.3559322 c -0.02012,-0.3822034 -0.04774,-0.7076271 -0.0614,-0.7231639 -0.013653,-0.015537 -0.024824,0.281921 -0.024824,0.661017 l 0,0.6892655 -1.9630041,0 -1.963004,0 -0.023717,-0.4576271 -0.023717,-0.4576271 -0.013279,0.4915254 -0.013279,0.4915255 2.0613978,0 2.0613972,0 -0.03657,-0.6949153 0,0 z M 6.5396275,3.7118644 C 6.648082,3.5720339 6.7197092,3.4576271 6.6987988,3.4576271 c -0.062956,0 -0.5835446,0.6841947 -0.5835446,0.7669359 0,0.042237 0.051116,0.00136 0.1135916,-0.090834 0.062475,-0.092195 0.2023271,-0.2820343 0.3107817,-0.4218648 z M 9.7498983,4.0169492 C 9.6961899,3.9144068 9.5352369,3.723769 9.392225,3.5933098 L 9.1322034,3.356111 9.3784249,3.6272081 c 0.1354218,0.1491033 0.2814105,0.3397411 0.3244192,0.4236394 0.043009,0.083898 0.093162,0.1525423 0.1114515,0.1525423 0.01829,0 -0.010689,-0.083898 -0.064397,-0.1864406 l 0,0 z M 7.3032896,3.1315382 C 7.2704731,3.0987216 6.877102,3.3089557 6.8306315,3.3841466 6.8091904,3.4188389 6.911918,3.3813452 7.0589148,3.300827 7.2059117,3.2203088 7.3158803,3.1441289 7.3032896,3.1315382 l 0,0 z"
- id="path3007"
- inkscape:connector-curvature="0"
- transform="matrix(6.25,0,0,6.25,-14.5,0)" /></svg> \ No newline at end of file
diff --git a/apps/encryption_dummy/lib/dummymodule.php b/apps/encryption_dummy/lib/dummymodule.php
deleted file mode 100644
index 141edfb58f9..00000000000
--- a/apps/encryption_dummy/lib/dummymodule.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/**
- * ownCloud
- *
- * @copyright (C) 2015 ownCloud, Inc.
- *
- * @author Bjoern Schiessle <schiessle@owncloud.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-namespace OCA\Encryption_Dummy;
-
-use OCP\Encryption\IEncryptionModule;
-
-class DummyModule implements IEncryptionModule {
-
- /** @var boolean */
- protected $isWriteOperation;
-
- /**
- * @return string defining the technical unique id
- */
- public function getId() {
- return "OC_DUMMY_MODULE";
- }
-
- /**
- * In comparison to getKey() this function returns a human readable (maybe translated) name
- *
- * @return string
- */
- public function getDisplayName() {
- return "Dummy Encryption Module";
- }
-
- /**
- * start receiving chunks from a file. This is the place where you can
- * perform some initial step before starting encrypting/decrypting the
- * chunks
- *
- * @param string $path to the file
- * @param string $user who read/write the file (null for public access)
- * @param string $mode php stream open mode
- * @param array $header contains the header data read from the file
- * @param array $accessList who has access to the file contains the key 'users' and 'public'
- *
- * @return array $header contain data as key-value pairs which should be
- * written to the header, in case of a write operation
- * or if no additional data is needed return a empty array
- */
- public function begin($path, $user, $mode, array $header, array $accessList) {
- return array();
- }
-
- /**
- * last chunk received. This is the place where you can perform some final
- * operation and return some remaining data if something is left in your
- * buffer.
- *
- * @param string $path to the file
- * @return string remained data which should be written to the file in case
- * of a write operation
- */
- public function end($path) {
-
- if ($this->isWriteOperation) {
- $storage = \OC::$server->getEncryptionKeyStorage();
- $storage->setFileKey($path, 'fileKey', 'foo', $this->getId());
- }
- return '';
- }
-
- /**
- * encrypt data
- *
- * @param string $data you want to encrypt
- * @return mixed encrypted data
- */
- public function encrypt($data) {
- $this->isWriteOperation = true;
- return $data;
- }
-
- /**
- * decrypt data
- *
- * @param string $data you want to decrypt
- * @param string $user decrypt as user (null for public access)
- * @return mixed decrypted data
- */
- public function decrypt($data) {
- $this->isWriteOperation=false;
- return $data;
- }
-
- /**
- * should the file be encrypted or not
- *
- * @param string $path
- * @return boolean
- */
- public function shouldEncrypt($path) {
- if (strpos($path, '/'. \OCP\User::getUser() . '/files/') === 0) {
- return true;
- }
-
- return false;
- }
-
- public function getUnencryptedBlockSize() {
- return 6126;
- }
-
- /**
- * update encrypted file, e.g. give additional users access to the file
- *
- * @param string $path path to the file which should be updated
- * @param string $uid of the user who performs the operation
- * @param array $accessList who has access to the file contains the key 'users' and 'public'
- * @return boolean
- */
- public function update($path, $uid, array $accessList) {
- return true;
- }
-}
diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php
index b8dc68f1f81..325773a81ea 100644
--- a/apps/files/appinfo/remote.php
+++ b/apps/files/appinfo/remote.php
@@ -30,6 +30,8 @@
// no php execution timeout for webdav
set_time_limit(0);
+// Turn off output buffering to prevent memory problems
+\OC_Util::obEnd();
// Backends
$authBackend = new \OC\Connector\Sabre\Auth();
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 0181acab596..e88ea1ad5d7 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -950,7 +950,8 @@
if (fileData.isPreviewAvailable) {
var iconDiv = filenameTd.find('.thumbnail');
// lazy load / newly inserted td ?
- if (options.animate) {
+ // the typeof check ensures that the default value of animate is true
+ if (typeof(options.animate) === 'undefined' || !!options.animate) {
this.lazyLoadPreview({
path: path + '/' + fileData.name,
mime: mime,
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index b2cd08da2d3..9433acbf95e 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Slet",
"Disconnect storage" : "Frakobl lager",
"Unshare" : "Fjern deling",
+ "No permission to delete" : "Ingen rettigheder at slette",
"Download" : "Download",
"Select" : "Vælg",
"Pending" : "Afventer",
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index 2b368767a44..0fb4159ef5c 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -40,6 +40,7 @@
"Delete" : "Slet",
"Disconnect storage" : "Frakobl lager",
"Unshare" : "Fjern deling",
+ "No permission to delete" : "Ingen rettigheder at slette",
"Download" : "Download",
"Select" : "Vælg",
"Pending" : "Afventer",
diff --git a/apps/files/l10n/de_AT.js b/apps/files/l10n/de_AT.js
index a94d0486f4b..046e993f7f6 100644
--- a/apps/files/l10n/de_AT.js
+++ b/apps/files/l10n/de_AT.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"files",
{
+ "Unknown error" : "Unbekannter Fehler",
"Files" : "Dateien",
"Delete" : "Löschen",
"Unshare" : "Teilung zurücknehmen",
@@ -16,6 +17,9 @@ OC.L10N.register(
"You deleted %1$s" : "Du hast %1$s gelöscht",
"%2$s deleted %1$s" : "%2$s löschte %1$s",
"Save" : "Speichern",
- "Settings" : "Einstellungen"
+ "Settings" : "Einstellungen",
+ "New folder" : "Neuer Ordner",
+ "Upload" : "Hochladen",
+ "Cancel upload" : "Hochladen abbrechen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/de_AT.json b/apps/files/l10n/de_AT.json
index 89b99b5d001..b31eb12c490 100644
--- a/apps/files/l10n/de_AT.json
+++ b/apps/files/l10n/de_AT.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Unknown error" : "Unbekannter Fehler",
"Files" : "Dateien",
"Delete" : "Löschen",
"Unshare" : "Teilung zurücknehmen",
@@ -14,6 +15,9 @@
"You deleted %1$s" : "Du hast %1$s gelöscht",
"%2$s deleted %1$s" : "%2$s löschte %1$s",
"Save" : "Speichern",
- "Settings" : "Einstellungen"
+ "Settings" : "Einstellungen",
+ "New folder" : "Neuer Ordner",
+ "Upload" : "Hochladen",
+ "Cancel upload" : "Hochladen abbrechen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index bd3a645c693..bb1beafc12a 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -42,7 +42,7 @@ OC.L10N.register(
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
- "No permission to delete" : "Ninguna autorización a borrar",
+ "No permission to delete" : "Ninguna autorización que borrar",
"Download" : "Descargar",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 010430d9b3b..d2cef744146 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -40,7 +40,7 @@
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
- "No permission to delete" : "Ninguna autorización a borrar",
+ "No permission to delete" : "Ninguna autorización que borrar",
"Download" : "Descargar",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 00507bf43d9..6fea601bdfc 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -42,4 +42,4 @@ OC.L10N.register(
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.",
"Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu."
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index e63dd585d17..1fe2dd93e2f 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -39,5 +39,5 @@
"Upload too large" : "Innsend skrá er of stór",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.",
"Files are being scanned, please wait." : "Verið er að skima skrár, vinsamlegast hinkraðu."
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 80e1f478509..c8a8ddcbd48 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -51,7 +51,7 @@ OC.L10N.register(
"Error" : "エラー",
"Could not rename file" : "ファイルの名前変更ができませんでした",
"Error deleting file." : "ファイルの削除エラー。",
- "No entries in this folder match '{filter}'" : "このフォルダで '{filter}' にマッチするものはありません",
+ "No entries in this folder match '{filter}'" : "このフォルダー内で '{filter}' にマッチするものはありません",
"Name" : "名前",
"Size" : "サイズ",
"Modified" : "更新日時",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index f3868ed14cf..2a127e347e5 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -49,7 +49,7 @@
"Error" : "エラー",
"Could not rename file" : "ファイルの名前変更ができませんでした",
"Error deleting file." : "ファイルの削除エラー。",
- "No entries in this folder match '{filter}'" : "このフォルダで '{filter}' にマッチするものはありません",
+ "No entries in this folder match '{filter}'" : "このフォルダー内で '{filter}' にマッチするものはありません",
"Name" : "名前",
"Size" : "サイズ",
"Modified" : "更新日時",
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index ca961a8fbbd..b49fcd33bc5 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "삭제",
"Disconnect storage" : "저장소 연결 해제",
"Unshare" : "공유 해제",
+ "No permission to delete" : "삭제할 권한 없음",
"Download" : "다운로드",
"Select" : "선택",
"Pending" : "대기 중",
@@ -70,6 +71,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생",
"A new file or folder has been <strong>created</strong>" : "새 파일이나 폴더가 <strong>생성됨</strong>",
"A file or folder has been <strong>changed</strong>" : "파일이나 폴더가 <strong>변경됨</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>즐겨찾는 파일</strong>의 생성 및 변경 사항에 대한 알림을 줄일 수 있습니다<em>(스트림에서만)</em>",
"A file or folder has been <strong>deleted</strong>" : "파일이나 폴더가 <strong>삭제됨</strong>",
"A file or folder has been <strong>restored</strong>" : "파일이나 폴더가 <strong>복원됨</strong>",
"You created %1$s" : "내가 %1$s을(를) 생성함",
@@ -88,6 +90,7 @@ OC.L10N.register(
"Maximum upload size" : "최대 업로드 크기",
"max. possible: " : "최대 가능:",
"Save" : "저장",
+ "Can not be edited from here due to insufficient permissions." : "권한이 부족하므로 여기에서 편집할 수 없습니다.",
"Settings" : "설정",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "WebDAV로 파일에 접근하려면 <a href=\"%s\" target=\"_blank\">이 주소를 사용하십시오</a>",
@@ -98,6 +101,7 @@ OC.L10N.register(
"Folder" : "폴더",
"Upload" : "업로드",
"Cancel upload" : "업로드 취소",
+ "No files in here" : "여기에 파일 없음",
"Upload some content or sync with your devices!" : "파일을 업로드하거나 장치와 동기화하십시오!",
"No entries found in this folder" : "이 폴더에 항목 없음",
"Select all" : "모두 선택",
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index e8757da56b9..b9611b185b5 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -40,6 +40,7 @@
"Delete" : "삭제",
"Disconnect storage" : "저장소 연결 해제",
"Unshare" : "공유 해제",
+ "No permission to delete" : "삭제할 권한 없음",
"Download" : "다운로드",
"Select" : "선택",
"Pending" : "대기 중",
@@ -68,6 +69,7 @@
"An error occurred while trying to update the tags" : "태그를 업데이트하는 중 오류 발생",
"A new file or folder has been <strong>created</strong>" : "새 파일이나 폴더가 <strong>생성됨</strong>",
"A file or folder has been <strong>changed</strong>" : "파일이나 폴더가 <strong>변경됨</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>즐겨찾는 파일</strong>의 생성 및 변경 사항에 대한 알림을 줄일 수 있습니다<em>(스트림에서만)</em>",
"A file or folder has been <strong>deleted</strong>" : "파일이나 폴더가 <strong>삭제됨</strong>",
"A file or folder has been <strong>restored</strong>" : "파일이나 폴더가 <strong>복원됨</strong>",
"You created %1$s" : "내가 %1$s을(를) 생성함",
@@ -86,6 +88,7 @@
"Maximum upload size" : "최대 업로드 크기",
"max. possible: " : "최대 가능:",
"Save" : "저장",
+ "Can not be edited from here due to insufficient permissions." : "권한이 부족하므로 여기에서 편집할 수 없습니다.",
"Settings" : "설정",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "WebDAV로 파일에 접근하려면 <a href=\"%s\" target=\"_blank\">이 주소를 사용하십시오</a>",
@@ -96,6 +99,7 @@
"Folder" : "폴더",
"Upload" : "업로드",
"Cancel upload" : "업로드 취소",
+ "No files in here" : "여기에 파일 없음",
"Upload some content or sync with your devices!" : "파일을 업로드하거나 장치와 동기화하십시오!",
"No entries found in this folder" : "이 폴더에 항목 없음",
"Select all" : "모두 선택",
diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js
index 5e7ec175af7..8d4cf072cf6 100644
--- a/apps/files/l10n/lb.js
+++ b/apps/files/l10n/lb.js
@@ -33,6 +33,8 @@ OC.L10N.register(
"Folder" : "Dossier",
"Upload" : "Eroplueden",
"Cancel upload" : "Upload ofbriechen",
+ "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
+ "Select all" : "All auswielen",
"Upload too large" : "Upload ze grouss",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.",
"Files are being scanned, please wait." : "Fichieren gi gescannt, war weg."
diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json
index 5fc987294c7..b3b6ff1f632 100644
--- a/apps/files/l10n/lb.json
+++ b/apps/files/l10n/lb.json
@@ -31,6 +31,8 @@
"Folder" : "Dossier",
"Upload" : "Eroplueden",
"Cancel upload" : "Upload ofbriechen",
+ "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
+ "Select all" : "All auswielen",
"Upload too large" : "Upload ze grouss",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Déi Dateien déi Dir probéiert erop ze lueden sinn méi grouss wei déi Maximal Gréisst déi op dësem Server erlaabt ass.",
"Files are being scanned, please wait." : "Fichieren gi gescannt, war weg."
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 13e21643c97..fbda6b4d1fb 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -51,6 +51,7 @@ OC.L10N.register(
"You deleted %1$s" : "Вие избришавте %1$s",
"%2$s deleted %1$s" : "%2$s избришани %1$s",
"%s could not be renamed" : "%s не може да биде преименуван",
+ "Upload (max. %s)" : "Префрлање (макс. %s)",
"File handling" : "Ракување со датотеки",
"Maximum upload size" : "Максимална големина за подигање",
"max. possible: " : "макс. можно:",
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 12c4edc25c5..7eb9488916f 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -49,6 +49,7 @@
"You deleted %1$s" : "Вие избришавте %1$s",
"%2$s deleted %1$s" : "%2$s избришани %1$s",
"%s could not be renamed" : "%s не може да биде преименуван",
+ "Upload (max. %s)" : "Префрлање (макс. %s)",
"File handling" : "Ракување со датотеки",
"Maximum upload size" : "Максимална големина за подигање",
"max. possible: " : "макс. можно:",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 83343a9444e..a55e0e88b69 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenagem",
"Unshare" : "Descompartilhar",
+ "No permission to delete" : "Sem permissão para excluir",
"Download" : "Baixar",
"Select" : "Selecionar",
"Pending" : "Pendente",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 42bacf971b2..0129b544ab4 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -40,6 +40,7 @@
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenagem",
"Unshare" : "Descompartilhar",
+ "No permission to delete" : "Sem permissão para excluir",
"Download" : "Baixar",
"Select" : "Selecionar",
"Pending" : "Pendente",
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index 072141105c8..09974a0321d 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Apagar",
"Disconnect storage" : "Desconete o armazenamento",
"Unshare" : "Deixar de partilhar",
+ "No permission to delete" : "Não tem permissão para apagar",
"Download" : "Transferir",
"Select" : "Selecionar",
"Pending" : "Pendente",
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 66230a0e6c9..4172185936a 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -40,6 +40,7 @@
"Delete" : "Apagar",
"Disconnect storage" : "Desconete o armazenamento",
"Unshare" : "Deixar de partilhar",
+ "No permission to delete" : "Não tem permissão para apagar",
"Download" : "Transferir",
"Select" : "Selecionar",
"Pending" : "Pendente",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index 19e71acd491..f69b4a9817e 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -56,15 +56,15 @@ OC.L10N.register(
"Name" : "Имя",
"Size" : "Размер",
"Modified" : "Изменён",
- "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов"],
- "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов"],
+ "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов","%n каталогов"],
+ "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов","%n файлов"],
"You don’t have permission to upload or create files here" : "У вас нет прав для загрузки или создания файлов здесь.",
- "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов","Закачка %n файлов"],
"\"{name}\" is an invalid file name." : "\"{name}\" это неправильное имя файла.",
"File name cannot be empty." : "Имя файла не может быть пустым.",
"Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.",
"Your storage is almost full ({usedSpacePercent}%)" : "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"],
"{dirs} and {files}" : "{dirs} и {files}",
"Favorited" : "Избранное",
"Favorite" : "Избранное",
@@ -112,4 +112,4 @@ OC.L10N.register(
"No favorites" : "Нет избранного",
"Files and folders you mark as favorite will show up here" : "Здесь появятся файлы и каталоги, отмеченные как избранные"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 99e7b91861d..1099ca30b0d 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -54,15 +54,15 @@
"Name" : "Имя",
"Size" : "Размер",
"Modified" : "Изменён",
- "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов"],
- "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов"],
+ "_%n folder_::_%n folders_" : ["%n каталог","%n каталога","%n каталогов","%n каталогов"],
+ "_%n file_::_%n files_" : ["%n файл","%n файла","%n файлов","%n файлов"],
"You don’t have permission to upload or create files here" : "У вас нет прав для загрузки или создания файлов здесь.",
- "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов"],
+ "_Uploading %n file_::_Uploading %n files_" : ["Закачка %n файла","Закачка %n файлов","Закачка %n файлов","Закачка %n файлов"],
"\"{name}\" is an invalid file name." : "\"{name}\" это неправильное имя файла.",
"File name cannot be empty." : "Имя файла не может быть пустым.",
"Your storage is full, files can not be updated or synced anymore!" : "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.",
"Your storage is almost full ({usedSpacePercent}%)" : "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
- "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"],
+ "_matches '{filter}'_::_match '{filter}'_" : ["соответствует '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'","соответствуют '{filter}'"],
"{dirs} and {files}" : "{dirs} и {files}",
"Favorited" : "Избранное",
"Favorite" : "Избранное",
@@ -109,5 +109,5 @@
"Currently scanning" : "В настоящее время сканируется",
"No favorites" : "Нет избранного",
"Files and folders you mark as favorite will show up here" : "Здесь появятся файлы и каталоги, отмеченные как избранные"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index 712346c3cf9..a4a15c932e0 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
+ "No permission to delete" : "Nimate pravic za brisanje",
"Download" : "Prejmi",
"Select" : "Izberi",
"Pending" : "V čakanju ...",
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index 75f96fcc1e4..9c6ed85e9a9 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -40,6 +40,7 @@
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
+ "No permission to delete" : "Nimate pravic za brisanje",
"Download" : "Prejmi",
"Select" : "Izberi",
"Pending" : "V čakanju ...",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index a9496a55823..e8c0ccd8a6c 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Видалити",
"Disconnect storage" : "Від’єднати сховище",
"Unshare" : "Закрити доступ",
+ "No permission to delete" : "Недостатньо прав для видалення",
"Download" : "Завантажити",
"Select" : "Оберіть",
"Pending" : "Очікування",
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index c34b8501ae9..82aa81d4cc1 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -40,6 +40,7 @@
"Delete" : "Видалити",
"Disconnect storage" : "Від’єднати сховище",
"Unshare" : "Закрити доступ",
+ "No permission to delete" : "Недостатньо прав для видалення",
"Download" : "Завантажити",
"Select" : "Оберіть",
"Pending" : "Очікування",
diff --git a/apps/files_external/l10n/de_AT.js b/apps/files_external/l10n/de_AT.js
index c4a56bb7a5f..5dbc69e2966 100644
--- a/apps/files_external/l10n/de_AT.js
+++ b/apps/files_external/l10n/de_AT.js
@@ -4,9 +4,11 @@ OC.L10N.register(
"Location" : "Ort",
"Port" : "Port",
"Host" : "Host",
+ "Username" : "Benutzername",
"Password" : "Passwort",
"Share" : "Freigeben",
"Personal" : "Persönlich",
+ "Folder name" : "Ordner Name",
"Delete" : "Löschen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_external/l10n/de_AT.json b/apps/files_external/l10n/de_AT.json
index 3dea5f2cd58..7fd1d456c58 100644
--- a/apps/files_external/l10n/de_AT.json
+++ b/apps/files_external/l10n/de_AT.json
@@ -2,9 +2,11 @@
"Location" : "Ort",
"Port" : "Port",
"Host" : "Host",
+ "Username" : "Benutzername",
"Password" : "Passwort",
"Share" : "Freigeben",
"Personal" : "Persönlich",
+ "Folder name" : "Ordner Name",
"Delete" : "Löschen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js
index c4b262945ea..81d243b12ae 100644
--- a/apps/files_external/l10n/id.js
+++ b/apps/files_external/l10n/id.js
@@ -44,6 +44,9 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "Secure https://",
"Public key" : "Kunci Public",
+ "Storage with id \"%i\" not found" : "Penyimpanan dengan id \"%i\" tidak ditemukan",
+ "Invalid mount point" : "Mount point salah",
+ "Invalid storage backend \"%s\"" : "Backend penyimpanan \"%s\" salah",
"Access granted" : "Akses diberikan",
"Error configuring Dropbox storage" : "Kesalahan dalam mengonfigurasi penyimpanan Dropbox",
"Grant access" : "Berikan hak akses",
@@ -53,10 +56,15 @@ OC.L10N.register(
"All users. Type to select user or group." : "Semua pengguna. Ketik untuk memilih pengguna atau grup.",
"(group)" : "(grup)",
"Saved" : "Disimpan",
+ "Generate keys" : "Hasilkan kunci",
+ "Error generating key pair" : "Kesalahan saat menghasilkan pasangan kunci",
"<b>Note:</b> " : "<b>Catatan:</b> ",
+ "and" : "dan",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> \"%s\" belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
+ "No external storage configured" : "Penyimpanan eksternal tidak dikonfigurasi",
+ "You can add external storages in the personal settings" : "Anda dapat menambahkan penyimpanan eksternal di pengaturan pribadi",
"Name" : "Nama",
"Storage type" : "Tipe penyimpanan",
"Scope" : "Skop",
@@ -65,6 +73,7 @@ OC.L10N.register(
"Configuration" : "Konfigurasi",
"Available for" : "Tersedia untuk",
"Add storage" : "Tambahkan penyimpanan",
+ "Advanced settings" : "Pengaturan Lanjutan",
"Delete" : "Hapus",
"Enable User External Storage" : "Aktifkan Penyimpanan Eksternal Pengguna",
"Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut"
diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json
index da9f676d772..b8acdedfd2d 100644
--- a/apps/files_external/l10n/id.json
+++ b/apps/files_external/l10n/id.json
@@ -42,6 +42,9 @@
"URL" : "URL",
"Secure https://" : "Secure https://",
"Public key" : "Kunci Public",
+ "Storage with id \"%i\" not found" : "Penyimpanan dengan id \"%i\" tidak ditemukan",
+ "Invalid mount point" : "Mount point salah",
+ "Invalid storage backend \"%s\"" : "Backend penyimpanan \"%s\" salah",
"Access granted" : "Akses diberikan",
"Error configuring Dropbox storage" : "Kesalahan dalam mengonfigurasi penyimpanan Dropbox",
"Grant access" : "Berikan hak akses",
@@ -51,10 +54,15 @@
"All users. Type to select user or group." : "Semua pengguna. Ketik untuk memilih pengguna atau grup.",
"(group)" : "(grup)",
"Saved" : "Disimpan",
+ "Generate keys" : "Hasilkan kunci",
+ "Error generating key pair" : "Kesalahan saat menghasilkan pasangan kunci",
"<b>Note:</b> " : "<b>Catatan:</b> ",
+ "and" : "dan",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan cURL di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> Dukungan FTP di PHP tidak diaktifkan atau belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Catatan:</b> \"%s\" belum diinstal. Mengaitkan %s tidak dimungkinkan. Silakan minta administrator sistem Anda untuk menginstalnya.",
+ "No external storage configured" : "Penyimpanan eksternal tidak dikonfigurasi",
+ "You can add external storages in the personal settings" : "Anda dapat menambahkan penyimpanan eksternal di pengaturan pribadi",
"Name" : "Nama",
"Storage type" : "Tipe penyimpanan",
"Scope" : "Skop",
@@ -63,6 +71,7 @@
"Configuration" : "Konfigurasi",
"Available for" : "Tersedia untuk",
"Add storage" : "Tambahkan penyimpanan",
+ "Advanced settings" : "Pengaturan Lanjutan",
"Delete" : "Hapus",
"Enable User External Storage" : "Aktifkan Penyimpanan Eksternal Pengguna",
"Allow users to mount the following external storage" : "Izinkan pengguna untuk mengaitkan penyimpanan eksternal berikut"
diff --git a/apps/files_external/l10n/is.js b/apps/files_external/l10n/is.js
index 0ef3945c353..644c4a06546 100644
--- a/apps/files_external/l10n/is.js
+++ b/apps/files_external/l10n/is.js
@@ -20,4 +20,4 @@ OC.L10N.register(
"Delete" : "Eyða",
"Enable User External Storage" : "Virkja ytra gagnasvæði notenda"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/apps/files_external/l10n/is.json b/apps/files_external/l10n/is.json
index c5d55bea9ce..512f0ed76b9 100644
--- a/apps/files_external/l10n/is.json
+++ b/apps/files_external/l10n/is.json
@@ -17,5 +17,5 @@
"Configuration" : "Uppsetning",
"Delete" : "Eyða",
"Enable User External Storage" : "Virkja ytra gagnasvæði notenda"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js
index 164a6b4f5b0..61996d8ba27 100644
--- a/apps/files_external/l10n/ko.js
+++ b/apps/files_external/l10n/ko.js
@@ -44,6 +44,9 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "보안 https://",
"Public key" : "공개 키",
+ "Storage with id \"%i\" not found" : "ID가 \"%i\"인 저장소를 찾을 수 없음",
+ "Invalid mount point" : "잘못된 마운트 지점",
+ "Invalid storage backend \"%s\"" : "잘못된 저장소 백엔드 \"%s\"",
"Access granted" : "접근 허가됨",
"Error configuring Dropbox storage" : "Dropbox 저장소 설정 오류",
"Grant access" : "접근 권한 부여",
@@ -53,12 +56,15 @@ OC.L10N.register(
"All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오",
"(group)" : "(그룹)",
"Saved" : "저장됨",
+ "Generate keys" : "키 생성",
+ "Error generating key pair" : "키 쌍을 생성하는 중 오류 발생",
"<b>Note:</b> " : "<b>메모:</b>",
"and" : "그리고",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP cURL 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP FTP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> \"%s\"이(가) 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"No external storage configured" : "외부 저장소가 설정되지 않았음",
+ "You can add external storages in the personal settings" : "개인 설정에서 외부 저장소를 추가할 수 있습니다",
"Name" : "이름",
"Storage type" : "저장소 종류",
"Scope" : "범위",
@@ -67,6 +73,7 @@ OC.L10N.register(
"Configuration" : "설정",
"Available for" : "다음으로 사용 가능",
"Add storage" : "저장소 추가",
+ "Advanced settings" : "고급 설정",
"Delete" : "삭제",
"Enable User External Storage" : "사용자 외부 저장소 사용",
"Allow users to mount the following external storage" : "사용자가 다음 외부 저장소를 마운트할 수 있도록 허용"
diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json
index b68e18e2581..d0fabd105e1 100644
--- a/apps/files_external/l10n/ko.json
+++ b/apps/files_external/l10n/ko.json
@@ -42,6 +42,9 @@
"URL" : "URL",
"Secure https://" : "보안 https://",
"Public key" : "공개 키",
+ "Storage with id \"%i\" not found" : "ID가 \"%i\"인 저장소를 찾을 수 없음",
+ "Invalid mount point" : "잘못된 마운트 지점",
+ "Invalid storage backend \"%s\"" : "잘못된 저장소 백엔드 \"%s\"",
"Access granted" : "접근 허가됨",
"Error configuring Dropbox storage" : "Dropbox 저장소 설정 오류",
"Grant access" : "접근 권한 부여",
@@ -51,12 +54,15 @@
"All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오",
"(group)" : "(그룹)",
"Saved" : "저장됨",
+ "Generate keys" : "키 생성",
+ "Error generating key pair" : "키 쌍을 생성하는 중 오류 발생",
"<b>Note:</b> " : "<b>메모:</b>",
"and" : "그리고",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP cURL 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> PHP FTP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>메모:</b> \"%s\"이(가) 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.",
"No external storage configured" : "외부 저장소가 설정되지 않았음",
+ "You can add external storages in the personal settings" : "개인 설정에서 외부 저장소를 추가할 수 있습니다",
"Name" : "이름",
"Storage type" : "저장소 종류",
"Scope" : "범위",
@@ -65,6 +71,7 @@
"Configuration" : "설정",
"Available for" : "다음으로 사용 가능",
"Add storage" : "저장소 추가",
+ "Advanced settings" : "고급 설정",
"Delete" : "삭제",
"Enable User External Storage" : "사용자 외부 저장소 사용",
"Allow users to mount the following external storage" : "사용자가 다음 외부 저장소를 마운트할 수 있도록 허용"
diff --git a/apps/files_external/l10n/lb.js b/apps/files_external/l10n/lb.js
index 6bd258b4234..eb46704c970 100644
--- a/apps/files_external/l10n/lb.js
+++ b/apps/files_external/l10n/lb.js
@@ -9,6 +9,7 @@ OC.L10N.register(
"Share" : "Deelen",
"URL" : "URL",
"Personal" : "Perséinlech",
+ "Saved" : "Gespäichert",
"Name" : "Numm",
"Folder name" : "Dossiers Numm:",
"Delete" : "Läschen"
diff --git a/apps/files_external/l10n/lb.json b/apps/files_external/l10n/lb.json
index 0c5143c4f0d..a1e3e397636 100644
--- a/apps/files_external/l10n/lb.json
+++ b/apps/files_external/l10n/lb.json
@@ -7,6 +7,7 @@
"Share" : "Deelen",
"URL" : "URL",
"Personal" : "Perséinlech",
+ "Saved" : "Gespäichert",
"Name" : "Numm",
"Folder name" : "Dossiers Numm:",
"Delete" : "Läschen"
diff --git a/apps/files_external/l10n/ru.js b/apps/files_external/l10n/ru.js
index 07bd765ff80..aafb4b36551 100644
--- a/apps/files_external/l10n/ru.js
+++ b/apps/files_external/l10n/ru.js
@@ -78,4 +78,4 @@ OC.L10N.register(
"Enable User External Storage" : "Включить пользовательские внешние хранилища",
"Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_external/l10n/ru.json b/apps/files_external/l10n/ru.json
index 40ea8e23563..b01779e83d1 100644
--- a/apps/files_external/l10n/ru.json
+++ b/apps/files_external/l10n/ru.json
@@ -75,5 +75,5 @@
"Delete" : "Удалить",
"Enable User External Storage" : "Включить пользовательские внешние хранилища",
"Allow users to mount the following external storage" : "Разрешить пользователям монтировать следующие сервисы хранения данных"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_external/l10n/sr.js b/apps/files_external/l10n/sr.js
index 0187a2526eb..8e88a5cd4f0 100644
--- a/apps/files_external/l10n/sr.js
+++ b/apps/files_external/l10n/sr.js
@@ -39,13 +39,13 @@ OC.L10N.register(
"URL of identity endpoint (required for OpenStack Object Storage)" : "Адреса идентитета крајње тачке (потребно за OpenStack Object Storage)",
"Timeout of HTTP requests in seconds" : "Време истека ХТТП захтева у секундама",
"Share" : "Дели",
- "SMB / CIFS using OC login" : "СМБ/ЦИФС користећи Оунклауд пријаву",
+ "SMB / CIFS using OC login" : "СМБ/ЦИФС користећи оунКлауд пријаву",
"Username as share" : "Корисничко име као дељење",
"URL" : "УРЛ",
"Secure https://" : "Сигурни https://",
"Public key" : "Јавни кључ",
"Storage with id \"%i\" not found" : "Складиште са идентификацијом \"%i\" није пронађено",
- "Invalid mount point" : "Неважећа тачка постављања",
+ "Invalid mount point" : "Неисправна тачка монтирања",
"Invalid storage backend \"%s\"" : "Неважећа позадина складишта \"%s\"",
"Access granted" : "Приступ одобрен",
"Error configuring Dropbox storage" : "Грешка при подешавању Дропбокс складишта",
@@ -73,7 +73,7 @@ OC.L10N.register(
"Configuration" : "Подешавање",
"Available for" : "Доступно за",
"Add storage" : "Додај складиште",
- "Advanced settings" : "Напредне подешавања",
+ "Advanced settings" : "Напредне поставке",
"Delete" : "Обриши",
"Enable User External Storage" : "Укључи корисничко спољашње складиште",
"Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта"
diff --git a/apps/files_external/l10n/sr.json b/apps/files_external/l10n/sr.json
index 76d12974695..957df08276e 100644
--- a/apps/files_external/l10n/sr.json
+++ b/apps/files_external/l10n/sr.json
@@ -37,13 +37,13 @@
"URL of identity endpoint (required for OpenStack Object Storage)" : "Адреса идентитета крајње тачке (потребно за OpenStack Object Storage)",
"Timeout of HTTP requests in seconds" : "Време истека ХТТП захтева у секундама",
"Share" : "Дели",
- "SMB / CIFS using OC login" : "СМБ/ЦИФС користећи Оунклауд пријаву",
+ "SMB / CIFS using OC login" : "СМБ/ЦИФС користећи оунКлауд пријаву",
"Username as share" : "Корисничко име као дељење",
"URL" : "УРЛ",
"Secure https://" : "Сигурни https://",
"Public key" : "Јавни кључ",
"Storage with id \"%i\" not found" : "Складиште са идентификацијом \"%i\" није пронађено",
- "Invalid mount point" : "Неважећа тачка постављања",
+ "Invalid mount point" : "Неисправна тачка монтирања",
"Invalid storage backend \"%s\"" : "Неважећа позадина складишта \"%s\"",
"Access granted" : "Приступ одобрен",
"Error configuring Dropbox storage" : "Грешка при подешавању Дропбокс складишта",
@@ -71,7 +71,7 @@
"Configuration" : "Подешавање",
"Available for" : "Доступно за",
"Add storage" : "Додај складиште",
- "Advanced settings" : "Напредне подешавања",
+ "Advanced settings" : "Напредне поставке",
"Delete" : "Обриши",
"Enable User External Storage" : "Укључи корисничко спољашње складиште",
"Allow users to mount the following external storage" : "Дозволи корисницима да монтирају следећа спољашња складишта"
diff --git a/apps/files_external/l10n/th_TH.js b/apps/files_external/l10n/th_TH.js
index a86b399fde0..70646a59a02 100644
--- a/apps/files_external/l10n/th_TH.js
+++ b/apps/files_external/l10n/th_TH.js
@@ -15,6 +15,7 @@ OC.L10N.register(
"Grant access" : "อนุญาตให้เข้าถึงได้",
"Error configuring Google Drive storage" : "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive",
"Personal" : "ส่วนตัว",
+ "Saved" : "บันทึกแล้ว",
"Name" : "ชื่อ",
"External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก",
"Folder name" : "ชื่อโฟลเดอร์",
diff --git a/apps/files_external/l10n/th_TH.json b/apps/files_external/l10n/th_TH.json
index a5612ff444e..a69043a0c55 100644
--- a/apps/files_external/l10n/th_TH.json
+++ b/apps/files_external/l10n/th_TH.json
@@ -13,6 +13,7 @@
"Grant access" : "อนุญาตให้เข้าถึงได้",
"Error configuring Google Drive storage" : "เกิดข้อผิดพลาดในการกำหนดค่าการจัดเก็บข้อมูลในพื้นที่ของ Google Drive",
"Personal" : "ส่วนตัว",
+ "Saved" : "บันทึกแล้ว",
"Name" : "ชื่อ",
"External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก",
"Folder name" : "ชื่อโฟลเดอร์",
diff --git a/apps/files_sharing/api/local.php b/apps/files_sharing/api/local.php
index 00509bcee69..03812800c17 100644
--- a/apps/files_sharing/api/local.php
+++ b/apps/files_sharing/api/local.php
@@ -68,6 +68,7 @@ class Local {
if (\OC::$server->getPreviewManager()->isMimeSupported($share['mimetype'])) {
$share['isPreviewAvailable'] = true;
}
+ $share['icon'] = substr(\OC_Helper::mimetypeIcon($share['mimetype']), 0, -3) . 'svg';
}
}
return new \OC_OCS_Result($shares);
diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css
index ef013ca07d7..fc78ced0b76 100644
--- a/apps/files_sharing/css/public.css
+++ b/apps/files_sharing/css/public.css
@@ -2,7 +2,6 @@
background: #fff;
text-align: center;
margin: 45px auto 0;
- min-height: 600px;
}
#preview .notCreatable {
@@ -28,6 +27,27 @@
max-width:100%;
}
+#imgframe .text-preview {
+ display: inline-block;
+ position: relative;
+ text-align: left;
+ white-space: pre-wrap;
+ overflow-y: hidden;
+ height: auto;
+ min-height: 200px;
+ max-height: 800px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+#imgframe .ellipsis {
+ font-size: 1.2em;
+}
+
/* fix multiselect bar offset on shared page */
thead {
left: 0 !important;
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 41bfeba031f..79bd0bb0c47 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -87,12 +87,17 @@ OCA.Sharing.PublicApp = {
// dynamically load image previews
+ var token = $('#sharingToken').val();
+ var bottomMargin = 350;
+ var previewWidth = $(window).width() * window.devicePixelRatio;
+ var previewHeight = $(window).height() - bottomMargin * window.devicePixelRatio;
+ previewHeight = Math.max(200, previewHeight);
var params = {
- x: $(document).width() * window.devicePixelRatio,
- y: $(document).height() * window.devicePixelRatio,
+ x: previewWidth,
+ y: previewHeight,
a: 'true',
file: encodeURIComponent(this.initialDir + $('#filename').val()),
- t: $('#sharingToken').val(),
+ t: token,
scalingup: 0
};
@@ -105,6 +110,18 @@ OCA.Sharing.PublicApp = {
(maxGifSize === -1 || fileSize <= (maxGifSize * 1024 * 1024))) {
img.attr('src', $('#downloadURL').val());
img.appendTo('#imgframe');
+ } else if (mimetype.substr(0, mimetype.indexOf('/')) === 'text') {
+ // Undocumented Url to public WebDAV endpoint
+ var url = parent.location.protocol + '//' + location.host + OC.linkTo('', 'public.php/webdav');
+ $.ajax({
+ url: url,
+ headers: {
+ Authorization: 'Basic ' + btoa(token + ':'),
+ Range: 'bytes=0-1000'
+ }
+ }).then(function (data) {
+ self._showTextPreview(data, previewHeight);
+ });
} else if (previewSupported === 'true' ||
mimetype.substr(0, mimetype.indexOf('/')) === 'image' &&
mimetype !== 'image/svg+xml') {
@@ -123,26 +140,21 @@ OCA.Sharing.PublicApp = {
filename = JSON.stringify(filename);
}
var path = dir || FileList.getCurrentDirectory();
- var token = $('#sharingToken').val();
var params = {
path: path,
files: filename
};
- return OC.generateUrl('/s/'+token+'/download') + '?' + OC.buildQueryString(params);
+ return OC.generateUrl('/s/' + token + '/download', params);
};
this.fileList.getAjaxUrl = function (action, params) {
params = params || {};
- params.t = $('#sharingToken').val();
+ params.t = token;
return OC.filePath('files_sharing', 'ajax', action + '.php') + '?' + OC.buildQueryString(params);
};
this.fileList.linkTo = function (dir) {
- var token = $('#sharingToken').val();
- var params = {
- dir: dir
- };
- return OC.generateUrl('/s/'+token+'') + '?' + OC.buildQueryString(params);
+ return OC.generateUrl('/s/' + token + '', {dir: dir});
};
this.fileList.generatePreviewUrl = function (urlSpec) {
@@ -214,6 +226,21 @@ OCA.Sharing.PublicApp = {
window.FileList = this.fileList;
},
+ _showTextPreview: function (data, previewHeight) {
+ var textDiv = $('<div/>').addClass('text-preview');
+ textDiv.text(data);
+ textDiv.appendTo('#imgframe');
+ var divHeight = textDiv.height();
+ if (data.length > 999) {
+ var ellipsis = $('<div/>').addClass('ellipsis');
+ ellipsis.html('(&#133;)');
+ ellipsis.appendTo('#imgframe');
+ }
+ if (divHeight > previewHeight) {
+ textDiv.height(previewHeight);
+ }
+ },
+
_onDirectoryChanged: function (e) {
OC.Util.History.pushState({
// arghhhh, why is this not called "dir" !?
@@ -225,7 +252,7 @@ OCA.Sharing.PublicApp = {
this.fileList.changeDirectory(params.path || params.dir, false, true);
},
- _saveToOwnCloud: function(remote, token, owner, name, isProtected) {
+ _saveToOwnCloud: function (remote, token, owner, name, isProtected) {
var location = window.location.protocol + '//' + window.location.host + OC.webroot;
var url = remote + '/index.php/apps/files#' + 'remote=' + encodeURIComponent(location) // our location is the remote for the other server
diff --git a/apps/files_sharing/js/sharedfilelist.js b/apps/files_sharing/js/sharedfilelist.js
index 2c7d6c7d43a..ca187940a08 100644
--- a/apps/files_sharing/js/sharedfilelist.js
+++ b/apps/files_sharing/js/sharedfilelist.js
@@ -176,6 +176,7 @@
.map(function(share) {
var file = {
id: share.file_source,
+ icon: share.icon,
mimetype: share.mimetype
};
if (share.item_type === 'folder') {
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index c361a450343..e77217a8427 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"Remote share password" : "Contraseña del compartido remoto",
"Cancel" : "Cancelar",
"Add remote share" : "Añadir recurso compartido remoto",
- "You can upload into this folder" : "Usted puede cargar a este folder",
+ "You can upload into this folder" : "Usted puede cargar en esta carpeta",
"No ownCloud installation (7 or higher) found at {remote}" : "No se encontró una instalación de ownCloud (7 o mayor) en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválida",
"Share" : "Compartir",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index dfe9367fef1..c3c414dcaba 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -19,7 +19,7 @@
"Remote share password" : "Contraseña del compartido remoto",
"Cancel" : "Cancelar",
"Add remote share" : "Añadir recurso compartido remoto",
- "You can upload into this folder" : "Usted puede cargar a este folder",
+ "You can upload into this folder" : "Usted puede cargar en esta carpeta",
"No ownCloud installation (7 or higher) found at {remote}" : "No se encontró una instalación de ownCloud (7 o mayor) en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválida",
"Share" : "Compartir",
diff --git a/apps/files_sharing/l10n/id.js b/apps/files_sharing/l10n/id.js
index 7ffd5fdd4cf..fd8b3dd810e 100644
--- a/apps/files_sharing/l10n/id.js
+++ b/apps/files_sharing/l10n/id.js
@@ -56,6 +56,7 @@ OC.L10N.register(
"Download %s" : "Unduh %s",
"Direct link" : "Tautan langsung",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
+ "Open documentation" : "Buka dokumentasi",
"Allow users on this server to send shares to other servers" : "Izinkan para pengguna di server ini untuk mengirimkan berbagi ke server lainnya.",
"Allow users on this server to receive shares from other servers" : "Izinkan para pengguna di server ini untuk menerima berbagi ke server lainnya."
},
diff --git a/apps/files_sharing/l10n/id.json b/apps/files_sharing/l10n/id.json
index 724f86139bc..e82b6966d24 100644
--- a/apps/files_sharing/l10n/id.json
+++ b/apps/files_sharing/l10n/id.json
@@ -54,6 +54,7 @@
"Download %s" : "Unduh %s",
"Direct link" : "Tautan langsung",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
+ "Open documentation" : "Buka dokumentasi",
"Allow users on this server to send shares to other servers" : "Izinkan para pengguna di server ini untuk mengirimkan berbagi ke server lainnya.",
"Allow users on this server to receive shares from other servers" : "Izinkan para pengguna di server ini untuk menerima berbagi ke server lainnya."
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js
index 57e49f68ec4..93f63e25314 100644
--- a/apps/files_sharing/l10n/is.js
+++ b/apps/files_sharing/l10n/is.js
@@ -8,4 +8,4 @@ OC.L10N.register(
"Name" : "Nafn",
"Download" : "Niðurhal"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json
index f7094b9cbe8..69493847d9b 100644
--- a/apps/files_sharing/l10n/is.json
+++ b/apps/files_sharing/l10n/is.json
@@ -5,5 +5,5 @@
"Password" : "Lykilorð",
"Name" : "Nafn",
"Download" : "Niðurhal"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index 1118713257b..dde011c8b4d 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "リモート共有のパスワード",
"Cancel" : "キャンセル",
"Add remote share" : "リモート共有を追加",
+ "You can upload into this folder" : "このフォルダーにアップロードできます",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません",
"Invalid ownCloud url" : "無効なownCloud URL です",
"Share" : "共有",
@@ -32,7 +33,7 @@ OC.L10N.register(
"%1$s accepted remote share %2$s" : "%1$s は %2$s のリモート共有を承認しました。",
"%1$s declined remote share %2$s" : "%1$s は %2$s のリモート共有を拒否しました。",
"%1$s unshared %2$s from you" : "%1$s は あなたと%2$s の共有を止めました。",
- "Public shared folder %1$s was downloaded" : "公開共有フォルダ %1$s がダウンロードされました",
+ "Public shared folder %1$s was downloaded" : "公開共有フォルダー %1$s がダウンロードされました",
"Public shared file %1$s was downloaded" : "公開共有ファイル %1$s がダウンロードされました",
"You shared %1$s with %2$s" : "あなたは %1$s を %2$s と共有しました",
"You shared %1$s with group %2$s" : "あなたは %1$s をグループ %2$s と共有しました",
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index 960cc59e0ed..76d8d8e8968 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -19,6 +19,7 @@
"Remote share password" : "リモート共有のパスワード",
"Cancel" : "キャンセル",
"Add remote share" : "リモート共有を追加",
+ "You can upload into this folder" : "このフォルダーにアップロードできます",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません",
"Invalid ownCloud url" : "無効なownCloud URL です",
"Share" : "共有",
@@ -30,7 +31,7 @@
"%1$s accepted remote share %2$s" : "%1$s は %2$s のリモート共有を承認しました。",
"%1$s declined remote share %2$s" : "%1$s は %2$s のリモート共有を拒否しました。",
"%1$s unshared %2$s from you" : "%1$s は あなたと%2$s の共有を止めました。",
- "Public shared folder %1$s was downloaded" : "公開共有フォルダ %1$s がダウンロードされました",
+ "Public shared folder %1$s was downloaded" : "公開共有フォルダー %1$s がダウンロードされました",
"Public shared file %1$s was downloaded" : "公開共有ファイル %1$s がダウンロードされました",
"You shared %1$s with %2$s" : "あなたは %1$s を %2$s と共有しました",
"You shared %1$s with group %2$s" : "あなたは %1$s をグループ %2$s と共有しました",
diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js
index 4d94b883890..0373de3ca9d 100644
--- a/apps/files_sharing/l10n/ko.js
+++ b/apps/files_sharing/l10n/ko.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "원격 공유 암호",
"Cancel" : "취소",
"Add remote share" : "원격 공유 추가",
+ "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote}에 ownCloud 7 이상이 설치되어 있지 않음",
"Invalid ownCloud url" : "잘못된 ownCloud URL",
"Share" : "공유",
diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json
index cc0e793977d..054194ee7a7 100644
--- a/apps/files_sharing/l10n/ko.json
+++ b/apps/files_sharing/l10n/ko.json
@@ -19,6 +19,7 @@
"Remote share password" : "원격 공유 암호",
"Cancel" : "취소",
"Add remote share" : "원격 공유 추가",
+ "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote}에 ownCloud 7 이상이 설치되어 있지 않음",
"Invalid ownCloud url" : "잘못된 ownCloud URL",
"Share" : "공유",
diff --git a/apps/files_sharing/l10n/lb.js b/apps/files_sharing/l10n/lb.js
index 3ba992bf6de..1bdb37e38e3 100644
--- a/apps/files_sharing/l10n/lb.js
+++ b/apps/files_sharing/l10n/lb.js
@@ -1,12 +1,17 @@
OC.L10N.register(
"files_sharing",
{
+ "Nothing shared yet" : "Nach näischt gedeelt",
+ "No shared links" : "Keng gedeelte Linken",
"Cancel" : "Ofbriechen",
"Share" : "Deelen",
"Shared by" : "Gedeelt vun",
"The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
"Password" : "Passwuert",
+ "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
"Name" : "Numm",
- "Download" : "Download"
+ "Download" : "Download",
+ "Direct link" : "Direkte Link",
+ "Open documentation" : "Dokumentatioun opmaachen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/lb.json b/apps/files_sharing/l10n/lb.json
index 760bb015a98..ec78da1f171 100644
--- a/apps/files_sharing/l10n/lb.json
+++ b/apps/files_sharing/l10n/lb.json
@@ -1,10 +1,15 @@
{ "translations": {
+ "Nothing shared yet" : "Nach näischt gedeelt",
+ "No shared links" : "Keng gedeelte Linken",
"Cancel" : "Ofbriechen",
"Share" : "Deelen",
"Shared by" : "Gedeelt vun",
"The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
"Password" : "Passwuert",
+ "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
"Name" : "Numm",
- "Download" : "Download"
+ "Download" : "Download",
+ "Direct link" : "Direkte Link",
+ "Open documentation" : "Dokumentatioun opmaachen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index 7ba25212c58..b0c6aa04563 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Пароль для удаленного общего ресурса",
"Cancel" : "Отменить",
"Add remote share" : "Добавить удалённый общий ресурс",
+ "You can upload into this folder" : "Вы можете загружать в эту папку",
"No ownCloud installation (7 or higher) found at {remote}" : "На удаленном ресурсе {remote} не установлен ownCloud версии 7 или выше",
"Invalid ownCloud url" : "Неверный адрес ownCloud",
"Share" : "Поделиться",
@@ -60,4 +61,4 @@ OC.L10N.register(
"Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов",
"Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index d735f17d2b5..0896cab7dd2 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -19,6 +19,7 @@
"Remote share password" : "Пароль для удаленного общего ресурса",
"Cancel" : "Отменить",
"Add remote share" : "Добавить удалённый общий ресурс",
+ "You can upload into this folder" : "Вы можете загружать в эту папку",
"No ownCloud installation (7 or higher) found at {remote}" : "На удаленном ресурсе {remote} не установлен ownCloud версии 7 или выше",
"Invalid ownCloud url" : "Неверный адрес ownCloud",
"Share" : "Поделиться",
@@ -57,5 +58,5 @@
"Open documentation" : "Открыть документацию",
"Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов",
"Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js
index 0e16dfaf48c..2666c8e3eaa 100644
--- a/apps/files_sharing/l10n/sl.js
+++ b/apps/files_sharing/l10n/sl.js
@@ -56,6 +56,7 @@ OC.L10N.register(
"Download %s" : "Prejmi %s",
"Direct link" : "Neposredna povezava",
"Federated Cloud Sharing" : "Upravljana souporaba oblaka",
+ "Open documentation" : "Odprta dokumentacija",
"Allow users on this server to send shares to other servers" : "Dovoli uporabnikom tega strežnika pošiljanje map za souporabo na druge strežnike.",
"Allow users on this server to receive shares from other servers" : "Dovoli uporabnikom tega strežnika sprejemanje map za souporabo z drugih strežnikov."
},
diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json
index 6bd7181561a..a301a495cf1 100644
--- a/apps/files_sharing/l10n/sl.json
+++ b/apps/files_sharing/l10n/sl.json
@@ -54,6 +54,7 @@
"Download %s" : "Prejmi %s",
"Direct link" : "Neposredna povezava",
"Federated Cloud Sharing" : "Upravljana souporaba oblaka",
+ "Open documentation" : "Odprta dokumentacija",
"Allow users on this server to send shares to other servers" : "Dovoli uporabnikom tega strežnika pošiljanje map za souporabo na druge strežnike.",
"Allow users on this server to receive shares from other servers" : "Dovoli uporabnikom tega strežnika sprejemanje map za souporabo z drugih strežnikov."
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js
index 5561d011710..18a6dde9e3a 100644
--- a/apps/files_sharing/l10n/uk.js
+++ b/apps/files_sharing/l10n/uk.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Пароль для віддаленої загальної теки",
"Cancel" : "Відмінити",
"Add remote share" : "Додати віддалену загальну теку",
+ "You can upload into this folder" : "Ви можете завантажити до цієї теки",
"No ownCloud installation (7 or higher) found at {remote}" : "Немає установленого OwnCloud (7 або вище), можна знайти на {remote}",
"Invalid ownCloud url" : "Невірний ownCloud URL",
"Share" : "Поділитися",
diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json
index 13f2ac4fc6a..de200a1fe8f 100644
--- a/apps/files_sharing/l10n/uk.json
+++ b/apps/files_sharing/l10n/uk.json
@@ -19,6 +19,7 @@
"Remote share password" : "Пароль для віддаленої загальної теки",
"Cancel" : "Відмінити",
"Add remote share" : "Додати віддалену загальну теку",
+ "You can upload into this folder" : "Ви можете завантажити до цієї теки",
"No ownCloud installation (7 or higher) found at {remote}" : "Немає установленого OwnCloud (7 або вище), можна знайти на {remote}",
"Invalid ownCloud url" : "Невірний ownCloud URL",
"Share" : "Поділитися",
diff --git a/apps/files_sharing/lib/controllers/externalsharescontroller.php b/apps/files_sharing/lib/controllers/externalsharescontroller.php
index c94cb60982c..da0951d8e7c 100644
--- a/apps/files_sharing/lib/controllers/externalsharescontroller.php
+++ b/apps/files_sharing/lib/controllers/externalsharescontroller.php
@@ -43,6 +43,7 @@ class ExternalSharesController extends Controller {
/**
* @param string $appName
* @param IRequest $request
+ * @param bool $incomingShareEnabled
* @param \OCA\Files_Sharing\External\Manager $externalManager
*/
public function __construct($appName,
diff --git a/apps/files_sharing/lib/deleteorphanedsharesjob.php b/apps/files_sharing/lib/deleteorphanedsharesjob.php
index f39078b778f..0654c82dd94 100644
--- a/apps/files_sharing/lib/deleteorphanedsharesjob.php
+++ b/apps/files_sharing/lib/deleteorphanedsharesjob.php
@@ -22,8 +22,6 @@
namespace OCA\Files_sharing\Lib;
-use Doctrine\DBAL\Platforms\SqlitePlatform;
-use OCP\IDBConnection;
use OC\BackgroundJob\TimedJob;
/**
@@ -39,6 +37,13 @@ class DeleteOrphanedSharesJob extends TimedJob {
protected $defaultIntervalMin = 15;
/**
+ * sets the correct interval for this timed job
+ */
+ public function __construct(){
+ $this->interval = $this->defaultIntervalMin * 60;
+ }
+
+ /**
* Makes the background job do its work
*
* @param array $argument unused argument
@@ -53,7 +58,7 @@ class DeleteOrphanedSharesJob extends TimedJob {
'AND NOT EXISTS (SELECT `fileid` FROM `*PREFIX*filecache` WHERE `file_source` = `fileid`)';
$deletedEntries = $connection->executeUpdate($sql);
- $logger->info("$deletedEntries orphaned share(s) deleted", ['app' => 'DeleteOrphanedSharesJob']);
+ $logger->debug("$deletedEntries orphaned share(s) deleted", ['app' => 'DeleteOrphanedSharesJob']);
}
}
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index bc01465cb4a..10a37c7dae9 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -31,7 +31,6 @@ namespace OC\Files\Storage;
use OC\Files\Cache\ChangePropagator;
use OC\Files\Filesystem;
-use OC\Files\View;
use OCA\Files_Sharing\ISharedStorage;
use OCA\Files_Sharing\Propagator;
use OCA\Files_Sharing\SharedMount;
@@ -218,7 +217,13 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
}
public function isReadable($path) {
- return $this->file_exists($path);
+ $isReadable = false;
+ if ($source = $this->getSourcePath($path)) {
+ list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source);
+ $isReadable = $storage->isReadable($internalPath);
+ }
+
+ return $isReadable && $this->file_exists($path);
}
public function isUpdatable($path) {
@@ -327,30 +332,32 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
}
}
- // for part files we need to ask for the owner and path from the parent directory because
- // the file cache doesn't return any results for part files
- if ($isPartFile) {
- list($user1, $path1) = \OCA\Files_Sharing\Helper::getUidAndFilename($pathinfo['dirname']);
- $path1 = $path1 . '/' . $pathinfo['basename'];
- } else {
- list($user1, $path1) = \OCA\Files_Sharing\Helper::getUidAndFilename($relPath1);
- }
- $targetFilename = basename($relPath2);
- list($user2, $path2) = \OCA\Files_Sharing\Helper::getUidAndFilename(dirname($relPath2));
- $rootView = new \OC\Files\View('');
- $rootView->getUpdater()->disable(); // dont update the cache here
- $result = $rootView->rename('/' . $user1 . '/files/' . $path1, '/' . $user2 . '/files/' . $path2 . '/' . $targetFilename);
- $rootView->getUpdater()->enable();
- return $result;
+
+ /**
+ * @var \OC\Files\Storage\Storage $sourceStorage
+ */
+ list($sourceStorage, $sourceInternalPath) = $this->resolvePath($path1);
+ /**
+ * @var \OC\Files\Storage\Storage $targetStorage
+ */
+ list($targetStorage, $targetInternalPath) = $this->resolvePath($path2);
+
+ return $targetStorage->moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
}
public function copy($path1, $path2) {
// Copy the file if CREATE permission is granted
if ($this->isCreatable(dirname($path2))) {
- $oldSource = $this->getSourcePath($path1);
- $newSource = $this->getSourcePath(dirname($path2)) . '/' . basename($path2);
- $rootView = new \OC\Files\View('');
- return $rootView->copy($oldSource, $newSource);
+ /**
+ * @var \OC\Files\Storage\Storage $sourceStorage
+ */
+ list($sourceStorage, $sourceInternalPath) = $this->resolvePath($path1);
+ /**
+ * @var \OC\Files\Storage\Storage $targetStorage
+ */
+ list($targetStorage, $targetInternalPath) = $this->resolvePath($path2);
+
+ return $targetStorage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
}
return false;
}
diff --git a/apps/files_sharing/lib/updater.php b/apps/files_sharing/lib/updater.php
index 45cf662d148..88bb68aa36e 100644
--- a/apps/files_sharing/lib/updater.php
+++ b/apps/files_sharing/lib/updater.php
@@ -28,13 +28,15 @@ namespace OC\Files\Cache;
class Shared_Updater {
/**
- * walk up the users file tree and update the etags
- * @param string $user
- * @param string $path
+ * Walk up the users file tree and update the etags.
+ *
+ * @param string $user user id
+ * @param string $path share mount point path, relative to the user's "files" folder
*/
static private function correctUsersFolder($user, $path) {
// $path points to the mount point which is a virtual folder, so we start with
// the parent
+ $path = '/' . ltrim($path, '/');
$path = '/files' . dirname($path);
\OC\Files\Filesystem::initMountPoints($user);
$view = new \OC\Files\View('/' . $user);
@@ -101,10 +103,10 @@ class Shared_Updater {
foreach ($deletedShares as $share) {
if ($share['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) {
foreach (\OC_Group::usersInGroup($share['shareWith']) as $user) {
- self::correctUsersFolder($user, dirname($share['fileTarget']));
+ self::correctUsersFolder($user, $share['fileTarget']);
}
} else {
- self::correctUsersFolder($share['shareWith'], dirname($share['fileTarget']));
+ self::correctUsersFolder($share['shareWith'], $share['fileTarget']);
}
}
}
@@ -119,10 +121,10 @@ class Shared_Updater {
foreach ($params['unsharedItems'] as $item) {
if ($item['shareType'] === \OCP\Share::SHARE_TYPE_GROUP) {
foreach (\OC_Group::usersInGroup($item['shareWith']) as $user) {
- self::correctUsersFolder($user, dirname($item['fileTarget']));
+ self::correctUsersFolder($user, $item['fileTarget']);
}
} else {
- self::correctUsersFolder($item['shareWith'], dirname($item['fileTarget']));
+ self::correctUsersFolder($item['shareWith'], $item['fileTarget']);
}
}
}
diff --git a/apps/files_sharing/tests/etagpropagation.php b/apps/files_sharing/tests/etagpropagation.php
index 041ed34ce11..60b7c525e35 100644
--- a/apps/files_sharing/tests/etagpropagation.php
+++ b/apps/files_sharing/tests/etagpropagation.php
@@ -32,6 +32,11 @@ class EtagPropagation extends TestCase {
protected $fileIds = []; // [$user=>[$path=>$id]]
protected $fileEtags = []; // [$id=>$etag]
+ public static function setUpBeforeClass() {
+ parent::setUpBeforeClass();
+ \OCA\Files_Sharing\Helper::registerHooks();
+ }
+
protected function setUp() {
parent::setUp();
$this->setUpShares();
@@ -239,6 +244,43 @@ class EtagPropagation extends TestCase {
$this->assertAllUnchaged();
}
+ public function testOwnerUnshares() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ $folderInfo = $this->rootView->getFileInfo('/' . self::TEST_FILES_SHARING_API_USER1 . '/files/sub1/sub2/folder');
+ $folderId = $folderInfo->getId();
+ $this->assertTrue(
+ \OCP\Share::unshare(
+ 'folder',
+ $folderId,
+ \OCP\Share::SHARE_TYPE_USER,
+ self::TEST_FILES_SHARING_API_USER2
+ )
+ );
+ $this->assertEtagsForFoldersChanged([
+ // direct recipient affected
+ self::TEST_FILES_SHARING_API_USER2,
+ // reshare recipient affected
+ self::TEST_FILES_SHARING_API_USER4,
+ ]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientUnsharesFromSelf() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ $this->assertTrue(
+ $this->rootView->unlink('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/sub1/sub2/folder')
+ );
+ $this->assertEtagsForFoldersChanged([
+ // direct recipient affected
+ self::TEST_FILES_SHARING_API_USER2,
+ // reshare recipient affected
+ self::TEST_FILES_SHARING_API_USER4,
+ ]);
+
+ $this->assertAllUnchaged();
+ }
+
public function testRecipientWritesToShare() {
$this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
Filesystem::file_put_contents('/sub1/sub2/folder/asd.txt', 'bar');
diff --git a/apps/files_sharing/tests/updater.php b/apps/files_sharing/tests/updater.php
index 67c76c28ed2..294388bfe26 100644
--- a/apps/files_sharing/tests/updater.php
+++ b/apps/files_sharing/tests/updater.php
@@ -147,79 +147,6 @@ class Test_Files_Sharing_Updater extends OCA\Files_Sharing\Tests\TestCase {
}
/**
- * if a file gets unshared by the owner the etag for the recipients root should change
- */
- function testUnshareFile() {
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
- $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder);
- $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31);
- $this->assertTrue($result);
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
-
- $beforeUnshare = \OC\Files\Filesystem::getFileInfo('');
- $etagBeforeUnshare = $beforeUnshare->getEtag();
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
- $result = \OCP\Share::unshare('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
- $this->assertTrue($result);
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
-
- $afterUnshare = \OC\Files\Filesystem::getFileInfo('');
- $etagAfterUnshare = $afterUnshare->getEtag();
-
- $this->assertTrue(is_string($etagBeforeUnshare));
- $this->assertTrue(is_string($etagAfterUnshare));
- $this->assertTrue($etagBeforeUnshare !== $etagAfterUnshare);
-
- }
-
- /**
- * if a file gets unshared from self the etag for the recipients root should change
- */
- function testUnshareFromSelfFile() {
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
- $fileinfo = \OC\Files\Filesystem::getFileInfo($this->folder);
- $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31);
- $this->assertTrue($result);
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
-
- $result = \OCP\Share::shareItem('folder', $fileinfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER3, 31);
-
- $beforeUnshareUser2 = \OC\Files\Filesystem::getFileInfo('');
- $etagBeforeUnshareUser2 = $beforeUnshareUser2->getEtag();
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER3);
-
- $beforeUnshareUser3 = \OC\Files\Filesystem::getFileInfo('');
- $etagBeforeUnshareUser3 = $beforeUnshareUser3->getEtag();
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER2);
-
- $result = \OC\Files\Filesystem::unlink($this->folder);
- $this->assertTrue($result);
-
- $afterUnshareUser2 = \OC\Files\Filesystem::getFileInfo('');
- $etagAfterUnshareUser2 = $afterUnshareUser2->getEtag();
-
- $this->loginHelper(self::TEST_FILES_SHARING_API_USER3);
-
- $afterUnshareUser3 = \OC\Files\Filesystem::getFileInfo('');
- $etagAfterUnshareUser3 = $afterUnshareUser3->getEtag();
-
- $this->assertTrue(is_string($etagBeforeUnshareUser2));
- $this->assertTrue(is_string($etagBeforeUnshareUser3));
- $this->assertTrue(is_string($etagAfterUnshareUser2));
- $this->assertTrue(is_string($etagAfterUnshareUser3));
- $this->assertTrue($etagBeforeUnshareUser2 !== $etagAfterUnshareUser2);
- $this->assertTrue($etagBeforeUnshareUser3 !== $etagAfterUnshareUser3);
-
- }
-
- /**
* if a folder gets renamed all children mount points should be renamed too
*/
function testRename() {
diff --git a/apps/files_trashbin/l10n/is.js b/apps/files_trashbin/l10n/is.js
index 916875decea..de8522ed671 100644
--- a/apps/files_trashbin/l10n/is.js
+++ b/apps/files_trashbin/l10n/is.js
@@ -5,4 +5,4 @@ OC.L10N.register(
"Name" : "Nafn",
"Delete" : "Eyða"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/apps/files_trashbin/l10n/is.json b/apps/files_trashbin/l10n/is.json
index 35e1620df95..5ce58fc128b 100644
--- a/apps/files_trashbin/l10n/is.json
+++ b/apps/files_trashbin/l10n/is.json
@@ -2,5 +2,5 @@
"Error" : "Villa",
"Name" : "Nafn",
"Delete" : "Eyða"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/lb.js b/apps/files_trashbin/l10n/lb.js
index 001f64200c5..c83d9a3a28b 100644
--- a/apps/files_trashbin/l10n/lb.js
+++ b/apps/files_trashbin/l10n/lb.js
@@ -1,8 +1,19 @@
OC.L10N.register(
"files_trashbin",
{
+ "Couldn't delete %s permanently" : "Konnt %s net permanent läschen",
+ "Couldn't restore %s" : "Konnt %s net erëmhierstellen",
+ "Deleted files" : "Geläscht Fichieren",
+ "Restore" : "Erëmhierstellen",
+ "Delete permanently" : "Permanent läschen",
"Error" : "Fehler",
+ "restored" : "erëmhiergestallt",
+ "No deleted files" : "Keng geläscht Fichieren",
+ "You will be able to recover deleted files from here" : "Du kanns geläscht Fichieren aus desëm Dossier erëmhierstellen",
+ "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
+ "Select all" : "All auswielen",
"Name" : "Numm",
+ "Deleted" : "Geläscht",
"Delete" : "Läschen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_trashbin/l10n/lb.json b/apps/files_trashbin/l10n/lb.json
index 2019dad0b75..ca13342cb3b 100644
--- a/apps/files_trashbin/l10n/lb.json
+++ b/apps/files_trashbin/l10n/lb.json
@@ -1,6 +1,17 @@
{ "translations": {
+ "Couldn't delete %s permanently" : "Konnt %s net permanent läschen",
+ "Couldn't restore %s" : "Konnt %s net erëmhierstellen",
+ "Deleted files" : "Geläscht Fichieren",
+ "Restore" : "Erëmhierstellen",
+ "Delete permanently" : "Permanent läschen",
"Error" : "Fehler",
+ "restored" : "erëmhiergestallt",
+ "No deleted files" : "Keng geläscht Fichieren",
+ "You will be able to recover deleted files from here" : "Du kanns geläscht Fichieren aus desëm Dossier erëmhierstellen",
+ "No entries found in this folder" : "Keng Elementer an dësem Dossier fonnt",
+ "Select all" : "All auswielen",
"Name" : "Numm",
+ "Deleted" : "Geläscht",
"Delete" : "Läschen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/ru.js b/apps/files_trashbin/l10n/ru.js
index 47b971180c3..b51486b6eb0 100644
--- a/apps/files_trashbin/l10n/ru.js
+++ b/apps/files_trashbin/l10n/ru.js
@@ -16,4 +16,4 @@ OC.L10N.register(
"Deleted" : "Удалён",
"Delete" : "Удалить"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/files_trashbin/l10n/ru.json b/apps/files_trashbin/l10n/ru.json
index 3d38b545ad7..9fecb3a9641 100644
--- a/apps/files_trashbin/l10n/ru.json
+++ b/apps/files_trashbin/l10n/ru.json
@@ -13,5 +13,5 @@
"Name" : "Имя",
"Deleted" : "Удалён",
"Delete" : "Удалить"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/lib/storage.php b/apps/files_trashbin/lib/storage.php
index 418d7d2f1fd..006971fb242 100644
--- a/apps/files_trashbin/lib/storage.php
+++ b/apps/files_trashbin/lib/storage.php
@@ -81,14 +81,39 @@ class Storage extends Wrapper {
/**
* Deletes the given file by moving it into the trashbin.
*
- * @param string $path
+ * @param string $path path of file or folder to delete
+ *
+ * @return bool true if the operation succeeded, false otherwise
*/
public function unlink($path) {
+ return $this->doDelete($path, 'unlink');
+ }
+
+ /**
+ * Deletes the given folder by moving it into the trashbin.
+ *
+ * @param string $path path of folder to delete
+ *
+ * @return bool true if the operation succeeded, false otherwise
+ */
+ public function rmdir($path) {
+ return $this->doDelete($path, 'rmdir');
+ }
+
+ /**
+ * Run the delete operation with the given method
+ *
+ * @param string $path path of file or folder to delete
+ * @param string $method either "unlink" or "rmdir"
+ *
+ * @return bool true if the operation succeeded, false otherwise
+ */
+ private function doDelete($path, $method) {
if (self::$disableTrash
|| !\OC_App::isEnabled('files_trashbin')
|| (pathinfo($path, PATHINFO_EXTENSION) === 'part')
) {
- return $this->storage->unlink($path);
+ return call_user_func_array([$this->storage, $method], [$path]);
}
$normalized = Filesystem::normalizePath($this->mountPoint . '/' . $path);
$result = true;
@@ -101,14 +126,14 @@ class Storage extends Wrapper {
// in cross-storage cases the file will be copied
// but not deleted, so we delete it here
if ($result) {
- $this->storage->unlink($path);
+ call_user_func_array([$this->storage, $method], [$path]);
}
} else {
- $result = $this->storage->unlink($path);
+ $result = call_user_func_array([$this->storage, $method], [$path]);
}
unset($this->deletedFiles[$normalized]);
} else if ($this->storage->file_exists($path)) {
- $result = $this->storage->unlink($path);
+ $result = call_user_func_array([$this->storage, $method], [$path]);
}
return $result;
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index 1c880735b5a..31d77c01c91 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -277,16 +277,16 @@ class Trashbin {
}
/**
- * restore files from trash bin
+ * Restore a file or folder from trash bin
*
- * @param string $file path to the deleted file
- * @param string $filename name of the file
- * @param int $timestamp time when the file was deleted
+ * @param string $file path to the deleted file/folder relative to "files_trashbin/files/",
+ * including the timestamp suffix ".d12345678"
+ * @param string $filename name of the file/folder
+ * @param int $timestamp time when the file/folder was deleted
*
- * @return bool
+ * @return bool true on success, false otherwise
*/
public static function restore($file, $filename, $timestamp) {
-
$user = \OCP\User::getUser();
$view = new \OC\Files\View('/' . $user);
@@ -311,6 +311,9 @@ class Trashbin {
$source = \OC\Files\Filesystem::normalizePath('files_trashbin/files/' . $file);
$target = \OC\Files\Filesystem::normalizePath('files/' . $location . '/' . $uniqueFilename);
+ if (!$view->file_exists($source)) {
+ return false;
+ }
$mtime = $view->filemtime($source);
// restore file
@@ -762,6 +765,8 @@ class Trashbin {
$name = pathinfo($filename, PATHINFO_FILENAME);
$l = \OC::$server->getL10N('files_trashbin');
+ $location = '/' . trim($location, '/');
+
// if extension is not empty we set a dot in front of it
if ($ext !== '') {
$ext = '.' . $ext;
diff --git a/apps/files_trashbin/tests/storage.php b/apps/files_trashbin/tests/storage.php
index d1468522dc2..7415aba09e9 100644
--- a/apps/files_trashbin/tests/storage.php
+++ b/apps/files_trashbin/tests/storage.php
@@ -62,6 +62,8 @@ class Storage extends \Test\TestCase {
$this->userView = new \OC\Files\View('/' . $this->user . '/files/');
$this->userView->file_put_contents('test.txt', 'foo');
+ $this->userView->mkdir('folder');
+ $this->userView->file_put_contents('folder/inside.txt', 'bar');
}
protected function tearDown() {
@@ -75,7 +77,7 @@ class Storage extends \Test\TestCase {
/**
* Test that deleting a file puts it into the trashbin.
*/
- public function testSingleStorageDelete() {
+ public function testSingleStorageDeleteFile() {
$this->assertTrue($this->userView->file_exists('test.txt'));
$this->userView->unlink('test.txt');
list($storage,) = $this->userView->resolvePath('test.txt');
@@ -90,12 +92,34 @@ class Storage extends \Test\TestCase {
}
/**
+ * Test that deleting a folder puts it into the trashbin.
+ */
+ public function testSingleStorageDeleteFolder() {
+ $this->assertTrue($this->userView->file_exists('folder/inside.txt'));
+ $this->userView->rmdir('folder');
+ list($storage,) = $this->userView->resolvePath('folder/inside.txt');
+ $storage->getScanner()->scan(''); // make sure we check the storage
+ $this->assertFalse($this->userView->getFileInfo('folder'));
+
+ // check if folder is in trashbin
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('folder', substr($name, 0, strrpos($name, '.')));
+
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/' . $name . '/');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('inside.txt', $name);
+ }
+
+ /**
* Test that deleting a file from another mounted storage properly
* lands in the trashbin. This is a cross-storage situation because
* the trashbin folder is in the root storage while the mounted one
* isn't.
*/
- public function testCrossStorageDelete() {
+ public function testCrossStorageDeleteFile() {
$storage2 = new Temporary(array());
\OC\Files\Filesystem::mount($storage2, array(), $this->user . '/files/substorage');
@@ -116,9 +140,41 @@ class Storage extends \Test\TestCase {
}
/**
+ * Test that deleting a folder from another mounted storage properly
+ * lands in the trashbin. This is a cross-storage situation because
+ * the trashbin folder is in the root storage while the mounted one
+ * isn't.
+ */
+ public function testCrossStorageDeleteFolder() {
+ $storage2 = new Temporary(array());
+ \OC\Files\Filesystem::mount($storage2, array(), $this->user . '/files/substorage');
+
+ $this->userView->mkdir('substorage/folder');
+ $this->userView->file_put_contents('substorage/folder/subfile.txt', 'bar');
+ $storage2->getScanner()->scan('');
+ $this->assertTrue($storage2->file_exists('folder/subfile.txt'));
+ $this->userView->rmdir('substorage/folder');
+
+ $storage2->getScanner()->scan('');
+ $this->assertFalse($this->userView->getFileInfo('substorage/folder'));
+ $this->assertFalse($storage2->file_exists('folder/subfile.txt'));
+
+ // check if folder is in trashbin
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('folder', substr($name, 0, strrpos($name, '.')));
+
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/' . $name . '/');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('subfile.txt', $name);
+ }
+
+ /**
* Test that deleted versions properly land in the trashbin.
*/
- public function testDeleteVersions() {
+ public function testDeleteVersionsOfFile() {
\OCA\Files_Versions\Hooks::connectHooks();
// trigger a version (multiple would not work because of the expire logic)
@@ -137,7 +193,38 @@ class Storage extends \Test\TestCase {
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
$this->assertEquals(1, count($results));
$name = $results[0]->getName();
- $this->assertEquals('test.txt', substr($name, 0, strlen('test.txt')));
+ $this->assertEquals('test.txt.v', substr($name, 0, strlen('test.txt.v')));
+ }
+
+ /**
+ * Test that deleted versions properly land in the trashbin.
+ */
+ public function testDeleteVersionsOfFolder() {
+ \OCA\Files_Versions\Hooks::connectHooks();
+
+ // trigger a version (multiple would not work because of the expire logic)
+ $this->userView->file_put_contents('folder/inside.txt', 'v1');
+
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/');
+ $this->assertEquals(1, count($results));
+
+ $this->userView->rmdir('folder');
+
+ // rescan trash storage
+ list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin');
+ $rootStorage->getScanner()->scan('');
+
+ // check if versions are in trashbin
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('folder.d', substr($name, 0, strlen('folder.d')));
+
+ // check if versions are in trashbin
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/' . $name . '/');
+ $this->assertEquals(1, count($results));
+ $name = $results[0]->getName();
+ $this->assertEquals('inside.txt.v', substr($name, 0, strlen('inside.txt.v')));
}
/**
@@ -145,7 +232,7 @@ class Storage extends \Test\TestCase {
* storages. This is because rename() between storages would call
* unlink() which should NOT trigger the version deletion logic.
*/
- public function testKeepFileAndVersionsWhenMovingBetweenStorages() {
+ public function testKeepFileAndVersionsWhenMovingFileBetweenStorages() {
\OCA\Files_Versions\Hooks::connectHooks();
$storage2 = new Temporary(array());
@@ -162,7 +249,7 @@ class Storage extends \Test\TestCase {
// move to another storage
$this->userView->rename('test.txt', 'substorage/test.txt');
- $this->userView->file_exists('substorage/test.txt');
+ $this->assertTrue($this->userView->file_exists('substorage/test.txt'));
// rescan trash storage
list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin');
@@ -182,9 +269,50 @@ class Storage extends \Test\TestCase {
}
/**
+ * Test that versions are not auto-trashed when moving a file between
+ * storages. This is because rename() between storages would call
+ * unlink() which should NOT trigger the version deletion logic.
+ */
+ public function testKeepFileAndVersionsWhenMovingFolderBetweenStorages() {
+ \OCA\Files_Versions\Hooks::connectHooks();
+
+ $storage2 = new Temporary(array());
+ \OC\Files\Filesystem::mount($storage2, array(), $this->user . '/files/substorage');
+
+ // trigger a version (multiple would not work because of the expire logic)
+ $this->userView->file_put_contents('folder/inside.txt', 'v1');
+
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
+ $this->assertEquals(0, count($results));
+
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/folder/');
+ $this->assertEquals(1, count($results));
+
+ // move to another storage
+ $this->userView->rename('folder', 'substorage/folder');
+ $this->assertTrue($this->userView->file_exists('substorage/folder/inside.txt'));
+
+ // rescan trash storage
+ list($rootStorage,) = $this->rootView->resolvePath($this->user . '/files_trashbin');
+ $rootStorage->getScanner()->scan('');
+
+ // versions were moved too
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_versions/substorage/folder/');
+ $this->assertEquals(1, count($results));
+
+ // check that nothing got trashed by the rename's unlink() call
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files');
+ $this->assertEquals(0, count($results));
+
+ // check that versions were moved and not trashed
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/versions/');
+ $this->assertEquals(0, count($results));
+ }
+
+ /**
* Delete should fail is the source file cant be deleted
*/
- public function testSingleStorageDeleteFail() {
+ public function testSingleStorageDeleteFileFail() {
/**
* @var \OC\Files\Storage\Temporary | \PHPUnit_Framework_MockObject_MockObject $storage
*/
@@ -194,9 +322,6 @@ class Storage extends \Test\TestCase {
->getMock();
$storage->expects($this->any())
- ->method('rename')
- ->will($this->returnValue(false));
- $storage->expects($this->any())
->method('unlink')
->will($this->returnValue(false));
@@ -214,4 +339,38 @@ class Storage extends \Test\TestCase {
$results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
$this->assertEquals(0, count($results));
}
+
+ /**
+ * Delete should fail is the source folder cant be deleted
+ */
+ public function testSingleStorageDeleteFolderFail() {
+ /**
+ * @var \OC\Files\Storage\Temporary | \PHPUnit_Framework_MockObject_MockObject $storage
+ */
+ $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
+ ->setConstructorArgs([[]])
+ ->setMethods(['rename', 'unlink', 'rmdir'])
+ ->getMock();
+
+ $storage->expects($this->any())
+ ->method('rmdir')
+ ->will($this->returnValue(false));
+
+ $cache = $storage->getCache();
+
+ Filesystem::mount($storage, [], '/' . $this->user);
+ $storage->mkdir('files');
+ $this->userView->mkdir('folder');
+ $this->userView->file_put_contents('folder/test.txt', 'foo');
+ $this->assertTrue($storage->file_exists('files/folder/test.txt'));
+ $this->assertFalse($this->userView->rmdir('files/folder'));
+ $this->assertTrue($storage->file_exists('files/folder'));
+ $this->assertTrue($storage->file_exists('files/folder/test.txt'));
+ $this->assertTrue($cache->inCache('files/folder'));
+ $this->assertTrue($cache->inCache('files/folder/test.txt'));
+
+ // file should not be in the trashbin
+ $results = $this->rootView->getDirectoryContent($this->user . '/files_trashbin/files/');
+ $this->assertEquals(0, count($results));
+ }
}
diff --git a/apps/files_trashbin/tests/trashbin.php b/apps/files_trashbin/tests/trashbin.php
index a2e1a9addf6..85c47b527b7 100644
--- a/apps/files_trashbin/tests/trashbin.php
+++ b/apps/files_trashbin/tests/trashbin.php
@@ -40,6 +40,11 @@ class Test_Trashbin extends \Test\TestCase {
private static $rememberAutoExpire;
/**
+ * @var bool
+ */
+ private static $trashBinStatus;
+
+ /**
* @var \OC\Files\View
*/
private $rootView;
@@ -47,6 +52,9 @@ class Test_Trashbin extends \Test\TestCase {
public static function setUpBeforeClass() {
parent::setUpBeforeClass();
+ $appManager = \OC::$server->getAppManager();
+ self::$trashBinStatus = $appManager->isEnabledForUser('files_trashbin');
+
// reset backend
\OC_User::clearBackends();
\OC_User::useBackend('database');
@@ -89,12 +97,18 @@ class Test_Trashbin extends \Test\TestCase {
\OC\Files\Filesystem::getLoader()->removeStorageWrapper('oc_trashbin');
+ if (self::$trashBinStatus) {
+ \OC::$server->getAppManager()->enableApp('files_trashbin');
+ }
+
parent::tearDownAfterClass();
}
protected function setUp() {
parent::setUp();
+ \OC::$server->getAppManager()->enableApp('files_trashbin');
+
$this->trashRoot1 = '/' . self::TEST_TRASHBIN_USER1 . '/files_trashbin';
$this->trashRoot2 = '/' . self::TEST_TRASHBIN_USER2 . '/files_trashbin';
$this->rootView = new \OC\Files\View();
@@ -102,9 +116,18 @@ class Test_Trashbin extends \Test\TestCase {
}
protected function tearDown() {
+ // disable trashbin to be able to properly clean up
+ \OC::$server->getAppManager()->disableApp('files_trashbin');
+
+ $this->rootView->deleteAll('/' . self::TEST_TRASHBIN_USER1 . '/files');
+ $this->rootView->deleteAll('/' . self::TEST_TRASHBIN_USER2 . '/files');
$this->rootView->deleteAll($this->trashRoot1);
$this->rootView->deleteAll($this->trashRoot2);
+ // clear trash table
+ $connection = \OC::$server->getDatabaseConnection();
+ $connection->executeUpdate('DELETE FROM `*PREFIX*files_trash`');
+
parent::tearDown();
}
@@ -295,6 +318,310 @@ class Test_Trashbin extends \Test\TestCase {
}
/**
+ * Test restoring a file
+ */
+ public function testRestoreFileInRoot() {
+ $userFolder = \OC::$server->getUserFolder();
+ $file = $userFolder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('file1.txt'));
+
+ $file->delete();
+
+ $this->assertFalse($userFolder->nodeExists('file1.txt'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFile = $filesInTrash[0];
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'file1.txt.d' . $trashedFile->getMtime(),
+ $trashedFile->getName(),
+ $trashedFile->getMtime()
+ )
+ );
+
+ $file = $userFolder->get('file1.txt');
+ $this->assertEquals('foo', $file->getContent());
+ }
+
+ /**
+ * Test restoring a file in subfolder
+ */
+ public function testRestoreFileInSubfolder() {
+ $userFolder = \OC::$server->getUserFolder();
+ $folder = $userFolder->newFolder('folder');
+ $file = $folder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('folder/file1.txt'));
+
+ $file->delete();
+
+ $this->assertFalse($userFolder->nodeExists('folder/file1.txt'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFile = $filesInTrash[0];
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'file1.txt.d' . $trashedFile->getMtime(),
+ $trashedFile->getName(),
+ $trashedFile->getMtime()
+ )
+ );
+
+ $file = $userFolder->get('folder/file1.txt');
+ $this->assertEquals('foo', $file->getContent());
+ }
+
+ /**
+ * Test restoring a folder
+ */
+ public function testRestoreFolder() {
+ $userFolder = \OC::$server->getUserFolder();
+ $folder = $userFolder->newFolder('folder');
+ $file = $folder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('folder'));
+
+ $folder->delete();
+
+ $this->assertFalse($userFolder->nodeExists('folder'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFolder = $filesInTrash[0];
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'folder.d' . $trashedFolder->getMtime(),
+ $trashedFolder->getName(),
+ $trashedFolder->getMtime()
+ )
+ );
+
+ $file = $userFolder->get('folder/file1.txt');
+ $this->assertEquals('foo', $file->getContent());
+ }
+
+ /**
+ * Test restoring a file from inside a trashed folder
+ */
+ public function testRestoreFileFromTrashedSubfolder() {
+ $userFolder = \OC::$server->getUserFolder();
+ $folder = $userFolder->newFolder('folder');
+ $file = $folder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('folder'));
+
+ $folder->delete();
+
+ $this->assertFalse($userFolder->nodeExists('folder'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFile = $filesInTrash[0];
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'folder.d' . $trashedFile->getMtime() . '/file1.txt',
+ 'file1.txt',
+ $trashedFile->getMtime()
+ )
+ );
+
+ $file = $userFolder->get('file1.txt');
+ $this->assertEquals('foo', $file->getContent());
+ }
+
+ /**
+ * Test restoring a file whenever the source folder was removed.
+ * The file should then land in the root.
+ */
+ public function testRestoreFileWithMissingSourceFolder() {
+ $userFolder = \OC::$server->getUserFolder();
+ $folder = $userFolder->newFolder('folder');
+ $file = $folder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('folder/file1.txt'));
+
+ $file->delete();
+
+ $this->assertFalse($userFolder->nodeExists('folder/file1.txt'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFile = $filesInTrash[0];
+
+ // delete source folder
+ $folder->delete();
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'file1.txt.d' . $trashedFile->getMtime(),
+ $trashedFile->getName(),
+ $trashedFile->getMtime()
+ )
+ );
+
+ $file = $userFolder->get('file1.txt');
+ $this->assertEquals('foo', $file->getContent());
+ }
+
+ /**
+ * Test restoring a file in the root folder whenever there is another file
+ * with the same name in the root folder
+ */
+ public function testRestoreFileDoesNotOverwriteExistingInRoot() {
+ $userFolder = \OC::$server->getUserFolder();
+ $file = $userFolder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('file1.txt'));
+
+ $file->delete();
+
+ $this->assertFalse($userFolder->nodeExists('file1.txt'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFile = $filesInTrash[0];
+
+ // create another file
+ $file = $userFolder->newFile('file1.txt');
+ $file->putContent('bar');
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'file1.txt.d' . $trashedFile->getMtime(),
+ $trashedFile->getName(),
+ $trashedFile->getMtime()
+ )
+ );
+
+ $anotherFile = $userFolder->get('file1.txt');
+ $this->assertEquals('bar', $anotherFile->getContent());
+
+ $restoredFile = $userFolder->get('file1 (restored).txt');
+ $this->assertEquals('foo', $restoredFile->getContent());
+ }
+
+ /**
+ * Test restoring a file whenever there is another file
+ * with the same name in the source folder
+ */
+ public function testRestoreFileDoesNotOverwriteExistingInSubfolder() {
+ $userFolder = \OC::$server->getUserFolder();
+ $folder = $userFolder->newFolder('folder');
+ $file = $folder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('folder/file1.txt'));
+
+ $file->delete();
+
+ $this->assertFalse($userFolder->nodeExists('folder/file1.txt'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFile = $filesInTrash[0];
+
+ // create another file
+ $file = $folder->newFile('file1.txt');
+ $file->putContent('bar');
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'file1.txt.d' . $trashedFile->getMtime(),
+ $trashedFile->getName(),
+ $trashedFile->getMtime()
+ )
+ );
+
+ $anotherFile = $userFolder->get('folder/file1.txt');
+ $this->assertEquals('bar', $anotherFile->getContent());
+
+ $restoredFile = $userFolder->get('folder/file1 (restored).txt');
+ $this->assertEquals('foo', $restoredFile->getContent());
+ }
+
+ /**
+ * Test restoring a non-existing file from trashbin, returns false
+ */
+ public function testRestoreUnexistingFile() {
+ $this->assertFalse(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'unexist.txt.d123456',
+ 'unexist.txt',
+ '123456'
+ )
+ );
+ }
+
+ /**
+ * Test restoring a file into a read-only folder, will restore
+ * the file to root instead
+ */
+ public function testRestoreFileIntoReadOnlySourceFolder() {
+ $userFolder = \OC::$server->getUserFolder();
+ $folder = $userFolder->newFolder('folder');
+ $file = $folder->newFile('file1.txt');
+ $file->putContent('foo');
+
+ $this->assertTrue($userFolder->nodeExists('folder/file1.txt'));
+
+ $file->delete();
+
+ $this->assertFalse($userFolder->nodeExists('folder/file1.txt'));
+
+ $filesInTrash = OCA\Files_Trashbin\Helper::getTrashFiles('/', self::TEST_TRASHBIN_USER1, 'mtime');
+ $this->assertCount(1, $filesInTrash);
+
+ /** @var \OCP\Files\FileInfo */
+ $trashedFile = $filesInTrash[0];
+
+ // delete source folder
+ list($storage, $internalPath) = $this->rootView->resolvePath('/' . self::TEST_TRASHBIN_USER1 . '/files/folder');
+ $folderAbsPath = $storage->getSourcePath($internalPath);
+ // make folder read-only
+ chmod($folderAbsPath, 0555);
+
+ $this->assertTrue(
+ OCA\Files_Trashbin\Trashbin::restore(
+ 'file1.txt.d' . $trashedFile->getMtime(),
+ $trashedFile->getName(),
+ $trashedFile->getMtime()
+ )
+ );
+
+ $file = $userFolder->get('file1.txt');
+ $this->assertEquals('foo', $file->getContent());
+
+ chmod($folderAbsPath, 0755);
+ }
+
+ /**
* @param string $user
* @param bool $create
* @param bool $password
diff --git a/apps/files_versions/l10n/lb.js b/apps/files_versions/l10n/lb.js
new file mode 100644
index 00000000000..1678cad569d
--- /dev/null
+++ b/apps/files_versions/l10n/lb.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "files_versions",
+ {
+ "Could not revert: %s" : "Konnt net zrécksetzen: %s",
+ "Versions" : "Versiounen",
+ "Failed to revert {file} to revision {timestamp}." : "Konnt {file} net op d'Versioun {timestamp} zrécksetzen.",
+ "More versions..." : "Méi Versiounen...",
+ "No other versions available" : "Keng aner Versiounen disponibel",
+ "Restore" : "Zrécksetzen"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_versions/l10n/lb.json b/apps/files_versions/l10n/lb.json
new file mode 100644
index 00000000000..e5fbb6c220c
--- /dev/null
+++ b/apps/files_versions/l10n/lb.json
@@ -0,0 +1,9 @@
+{ "translations": {
+ "Could not revert: %s" : "Konnt net zrécksetzen: %s",
+ "Versions" : "Versiounen",
+ "Failed to revert {file} to revision {timestamp}." : "Konnt {file} net op d'Versioun {timestamp} zrécksetzen.",
+ "More versions..." : "Méi Versiounen...",
+ "No other versions available" : "Keng aner Versiounen disponibel",
+ "Restore" : "Zrécksetzen"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files_versions/l10n/mk.js b/apps/files_versions/l10n/mk.js
index a730ea89404..fa295501320 100644
--- a/apps/files_versions/l10n/mk.js
+++ b/apps/files_versions/l10n/mk.js
@@ -2,7 +2,7 @@ OC.L10N.register(
"files_versions",
{
"Could not revert: %s" : "Не можев да го вратам: %s",
- "Versions" : "Версии",
+ "Versions" : "Верзии",
"Failed to revert {file} to revision {timestamp}." : "Не успеав да го вратам {file} на ревизијата {timestamp}.",
"More versions..." : "Повеќе верзии...",
"No other versions available" : "Не постојат други верзии",
diff --git a/apps/files_versions/l10n/mk.json b/apps/files_versions/l10n/mk.json
index 7e57aa91b55..cdef37ecde3 100644
--- a/apps/files_versions/l10n/mk.json
+++ b/apps/files_versions/l10n/mk.json
@@ -1,6 +1,6 @@
{ "translations": {
"Could not revert: %s" : "Не можев да го вратам: %s",
- "Versions" : "Версии",
+ "Versions" : "Верзии",
"Failed to revert {file} to revision {timestamp}." : "Не успеав да го вратам {file} на ревизијата {timestamp}.",
"More versions..." : "Повеќе верзии...",
"No other versions available" : "Не постојат други верзии",
diff --git a/apps/files_versions/lib/storage.php b/apps/files_versions/lib/storage.php
index 125fb5d983c..98e486690b6 100644
--- a/apps/files_versions/lib/storage.php
+++ b/apps/files_versions/lib/storage.php
@@ -158,7 +158,7 @@ class Storage {
// 1.5 times as large as the current version -> 2.5
$neededSpace = $files_view->filesize($filename) * 2.5;
- self::scheduleExpire($filename, $versionsSize, $neededSpace);
+ self::scheduleExpire($uid, $filename, $versionsSize, $neededSpace);
// store a new version of a file
$mtime = $users_view->filemtime('files/' . $filename);
@@ -223,50 +223,75 @@ class Storage {
}
/**
- * rename or copy versions of a file
- * @param string $old_path
- * @param string $new_path
+ * Rename or copy versions of a file of the given paths
+ *
+ * @param string $sourcePath source path of the file to move, relative to
+ * the currently logged in user's "files" folder
+ * @param string $targetPath target path of the file to move, relative to
+ * the currently logged in user's "files" folder
* @param string $operation can be 'copy' or 'rename'
*/
- public static function renameOrCopy($old_path, $new_path, $operation) {
- list($uid, $oldpath) = self::getSourcePathAndUser($old_path);
+ public static function renameOrCopy($sourcePath, $targetPath, $operation) {
+ list($sourceOwner, $sourcePath) = self::getSourcePathAndUser($sourcePath);
// it was a upload of a existing file if no old path exists
// in this case the pre-hook already called the store method and we can
// stop here
- if ($oldpath === false) {
+ if ($sourcePath === false) {
return true;
}
- list($uidn, $newpath) = self::getUidAndFilename($new_path);
- $versions_view = new \OC\Files\View('/'.$uid .'/files_versions');
- $files_view = new \OC\Files\View('/'.$uid .'/files');
+ list($targetOwner, $targetPath) = self::getUidAndFilename($targetPath);
+
+ $sourcePath = ltrim($sourcePath, '/');
+ $targetPath = ltrim($targetPath, '/');
+ $rootView = new \OC\Files\View('');
+ // did we move a directory ?
+ if ($rootView->is_dir('/' . $targetOwner . '/files/' . $targetPath)) {
+ // does the directory exists for versions too ?
+ if ($rootView->is_dir('/' . $sourceOwner . '/files_versions/' . $sourcePath)) {
+ // create missing dirs if necessary
+ self::createMissingDirectories($targetPath, new \OC\Files\View('/'. $targetOwner));
- if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) {
- $versions_view->$operation($oldpath, $newpath);
- } else if ( ($versions = Storage::getVersions($uid, $oldpath)) ) {
+ // move the directory containing the versions
+ $rootView->$operation(
+ '/' . $sourceOwner . '/files_versions/' . $sourcePath,
+ '/' . $targetOwner . '/files_versions/' . $targetPath
+ );
+ }
+ } else if ($versions = Storage::getVersions($sourceOwner, '/' . $sourcePath)) {
// create missing dirs if necessary
- self::createMissingDirectories($newpath, new \OC\Files\View('/'. $uidn));
+ self::createMissingDirectories($targetPath, new \OC\Files\View('/'. $targetOwner));
foreach ($versions as $v) {
- $versions_view->$operation($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']);
+ // move each version one by one to the target directory
+ $rootView->$operation(
+ '/' . $sourceOwner . '/files_versions/' . $sourcePath.'.v' . $v['version'],
+ '/' . $targetOwner . '/files_versions/' . $targetPath.'.v'.$v['version']
+ );
}
}
- if (!$files_view->is_dir($newpath)) {
- self::scheduleExpire($newpath);
+ // if we moved versions directly for a file, schedule expiration check for that file
+ if (!$rootView->is_dir('/' . $targetOwner . '/files/' . $targetPath)) {
+ self::scheduleExpire($targetOwner, $targetPath);
}
}
/**
- * rollback to an old version of a file.
+ * Rollback to an old version of a file.
+ *
+ * @param string $file file name
+ * @param int $revision revision timestamp
*/
public static function rollback($file, $revision) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+ // add expected leading slash
+ $file = '/' . ltrim($file, '/');
list($uid, $filename) = self::getUidAndFilename($file);
$users_view = new \OC\Files\View('/'.$uid);
$files_view = new \OC\Files\View('/'.\OCP\User::getUser().'/files');
@@ -282,12 +307,11 @@ class Storage {
}
// rollback
- if( @$users_view->rename('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) {
+ if (self::copyFileContents($users_view, 'files_versions' . $filename . '.v' . $revision, 'files' . $filename)) {
$files_view->touch($file, $revision);
- Storage::scheduleExpire($file);
+ Storage::scheduleExpire($uid, $file);
return true;
-
- }else if ( $versionCreated ) {
+ } else if ($versionCreated) {
self::deleteVersion($users_view, $version);
}
}
@@ -295,6 +319,23 @@ class Storage {
}
+ /**
+ * Stream copy file contents from $path1 to $path2
+ *
+ * @param \OC\Files\View $view view to use for copying
+ * @param string $path1 source file to copy
+ * @param string $path2 target file
+ *
+ * @return bool true for success, false otherwise
+ */
+ private static function copyFileContents($view, $path1, $path2) {
+ list($storage1, $internalPath1) = $view->resolvePath($path1);
+ list($storage2, $internalPath2) = $view->resolvePath($path2);
+
+ $result = $storage2->moveFromStorage($storage1, $internalPath1, $internalPath2);
+
+ return ($result !== false);
+ }
/**
* get a list of all available versions of a file in descending chronological order
@@ -305,6 +346,9 @@ class Storage {
*/
public static function getVersions($uid, $filename, $userFullPath = '') {
$versions = array();
+ if ($filename === '') {
+ return $versions;
+ }
// fetch for old versions
$view = new \OC\Files\View('/' . $uid . '/');
@@ -488,12 +532,15 @@ class Storage {
}
/**
- * @param string $fileName
- * @param int|null $versionsSize
- * @param int $neededSpace
+ * Schedule versions expiration for the given file
+ *
+ * @param string $uid owner of the file
+ * @param string $fileName file/folder for which to schedule expiration
+ * @param int|null $versionsSize current versions size
+ * @param int $neededSpace requested versions size
*/
- private static function scheduleExpire($fileName, $versionsSize = null, $neededSpace = 0) {
- $command = new Expire(\OC::$server->getUserSession()->getUser()->getUID(), $fileName, $versionsSize, $neededSpace);
+ private static function scheduleExpire($uid, $fileName, $versionsSize = null, $neededSpace = 0) {
+ $command = new Expire($uid, $fileName, $versionsSize, $neededSpace);
\OC::$server->getCommandBus()->push($command);
}
@@ -601,8 +648,11 @@ class Storage {
}
/**
- * create recursively missing directories
- * @param string $filename $path to a file
+ * Create recursively missing directories inside of files_versions
+ * that match the given path to a file.
+ *
+ * @param string $filename $path to a file, relative to the user's
+ * "files" folder
* @param \OC\Files\View $view view on data/user/
*/
private static function createMissingDirectories($filename, $view) {
diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php
index ff088ffdad3..97afcf715cb 100644
--- a/apps/files_versions/tests/versions.php
+++ b/apps/files_versions/tests/versions.php
@@ -25,6 +25,8 @@
require_once __DIR__ . '/../appinfo/app.php';
+use OC\Files\Storage\Temporary;
+
/**
* Class Test_Files_versions
* this class provide basic files versions test
@@ -43,10 +45,6 @@ class Test_Files_Versioning extends \Test\TestCase {
public static function setUpBeforeClass() {
parent::setUpBeforeClass();
- // clear share hooks
- \OC_Hook::clear('OCP\\Share');
- \OC::registerShareHooks();
- \OCA\Files_Versions\Hooks::connectHooks();
$application = new \OCA\Files_Sharing\AppInfo\Application();
$application->registerMountProviders();
$application->setupPropagation();
@@ -67,6 +65,11 @@ class Test_Files_Versioning extends \Test\TestCase {
protected function setUp() {
parent::setUp();
+ // clear hooks
+ \OC_Hook::clear();
+ \OC::registerShareHooks();
+ \OCA\Files_Versions\Hooks::connectHooks();
+
self::loginHelper(self::TEST_VERSIONS_USER);
$this->rootView = new \OC\Files\View();
if (!$this->rootView->file_exists(self::USERS_VERSIONS_ROOT)) {
@@ -75,7 +78,12 @@ class Test_Files_Versioning extends \Test\TestCase {
}
protected function tearDown() {
- $this->rootView->deleteAll(self::USERS_VERSIONS_ROOT);
+ $this->rootView->deleteAll(self::TEST_VERSIONS_USER . '/files/');
+ $this->rootView->deleteAll(self::TEST_VERSIONS_USER2 . '/files/');
+ $this->rootView->deleteAll(self::TEST_VERSIONS_USER . '/files_versions/');
+ $this->rootView->deleteAll(self::TEST_VERSIONS_USER2 . '/files_versions/');
+
+ \OC_Hook::clear();
parent::tearDown();
}
@@ -255,9 +263,6 @@ class Test_Files_Versioning extends \Test\TestCase {
$this->assertTrue($this->rootView->file_exists($v1Renamed));
$this->assertTrue($this->rootView->file_exists($v2Renamed));
-
- //cleanup
- \OC\Files\Filesystem::unlink('test2.txt');
}
public function testRenameInSharedFolder() {
@@ -302,9 +307,136 @@ class Test_Files_Versioning extends \Test\TestCase {
$this->assertTrue($this->rootView->file_exists($v1Renamed));
$this->assertTrue($this->rootView->file_exists($v2Renamed));
+ }
- //cleanup
- \OC\Files\Filesystem::unlink('/folder1/folder2/test.txt');
+ public function testMoveFolder() {
+
+ \OC\Files\Filesystem::mkdir('folder1');
+ \OC\Files\Filesystem::mkdir('folder2');
+ \OC\Files\Filesystem::file_put_contents('folder1/test.txt', 'test file');
+
+ $t1 = time();
+ // second version is two weeks older, this way we make sure that no
+ // version will be expired
+ $t2 = $t1 - 60 * 60 * 24 * 14;
+
+ // create some versions
+ $this->rootView->mkdir(self::USERS_VERSIONS_ROOT . '/folder1');
+ $v1 = self::USERS_VERSIONS_ROOT . '/folder1/test.txt.v' . $t1;
+ $v2 = self::USERS_VERSIONS_ROOT . '/folder1/test.txt.v' . $t2;
+ $v1Renamed = self::USERS_VERSIONS_ROOT . '/folder2/folder1/test.txt.v' . $t1;
+ $v2Renamed = self::USERS_VERSIONS_ROOT . '/folder2/folder1/test.txt.v' . $t2;
+
+ $this->rootView->file_put_contents($v1, 'version1');
+ $this->rootView->file_put_contents($v2, 'version2');
+
+ // execute rename hook of versions app
+ \OC\Files\Filesystem::rename('folder1', 'folder2/folder1');
+
+ $this->runCommands();
+
+ $this->assertFalse($this->rootView->file_exists($v1));
+ $this->assertFalse($this->rootView->file_exists($v2));
+
+ $this->assertTrue($this->rootView->file_exists($v1Renamed));
+ $this->assertTrue($this->rootView->file_exists($v2Renamed));
+ }
+
+
+ public function testMoveFileIntoSharedFolderAsRecipient() {
+
+ \OC\Files\Filesystem::mkdir('folder1');
+ $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1');
+
+ \OCP\Share::shareItem(
+ 'folder',
+ $fileInfo['fileid'],
+ \OCP\Share::SHARE_TYPE_USER,
+ self::TEST_VERSIONS_USER2,
+ \OCP\Constants::PERMISSION_ALL
+ );
+
+ self::loginHelper(self::TEST_VERSIONS_USER2);
+ $versionsFolder2 = '/' . self::TEST_VERSIONS_USER2 . '/files_versions';
+ \OC\Files\Filesystem::file_put_contents('test.txt', 'test file');
+
+ $t1 = time();
+ // second version is two weeks older, this way we make sure that no
+ // version will be expired
+ $t2 = $t1 - 60 * 60 * 24 * 14;
+
+ $this->rootView->mkdir($versionsFolder2);
+ // create some versions
+ $v1 = $versionsFolder2 . '/test.txt.v' . $t1;
+ $v2 = $versionsFolder2 . '/test.txt.v' . $t2;
+
+ $this->rootView->file_put_contents($v1, 'version1');
+ $this->rootView->file_put_contents($v2, 'version2');
+
+ // move file into the shared folder as recipient
+ \OC\Files\Filesystem::rename('/test.txt', '/folder1/test.txt');
+
+ $this->assertFalse($this->rootView->file_exists($v1));
+ $this->assertFalse($this->rootView->file_exists($v2));
+
+ self::loginHelper(self::TEST_VERSIONS_USER);
+
+ $versionsFolder1 = '/' . self::TEST_VERSIONS_USER . '/files_versions';
+
+ $v1Renamed = $versionsFolder1 . '/folder1/test.txt.v' . $t1;
+ $v2Renamed = $versionsFolder1 . '/folder1/test.txt.v' . $t2;
+
+ $this->assertTrue($this->rootView->file_exists($v1Renamed));
+ $this->assertTrue($this->rootView->file_exists($v2Renamed));
+ }
+
+ public function testMoveFolderIntoSharedFolderAsRecipient() {
+
+ \OC\Files\Filesystem::mkdir('folder1');
+ $fileInfo = \OC\Files\Filesystem::getFileInfo('folder1');
+
+ \OCP\Share::shareItem(
+ 'folder',
+ $fileInfo['fileid'],
+ \OCP\Share::SHARE_TYPE_USER,
+ self::TEST_VERSIONS_USER2,
+ \OCP\Constants::PERMISSION_ALL
+ );
+
+ self::loginHelper(self::TEST_VERSIONS_USER2);
+ $versionsFolder2 = '/' . self::TEST_VERSIONS_USER2 . '/files_versions';
+ \OC\Files\Filesystem::mkdir('folder2');
+ \OC\Files\Filesystem::file_put_contents('folder2/test.txt', 'test file');
+
+ $t1 = time();
+ // second version is two weeks older, this way we make sure that no
+ // version will be expired
+ $t2 = $t1 - 60 * 60 * 24 * 14;
+
+ $this->rootView->mkdir($versionsFolder2);
+ $this->rootView->mkdir($versionsFolder2 . '/folder2');
+ // create some versions
+ $v1 = $versionsFolder2 . '/folder2/test.txt.v' . $t1;
+ $v2 = $versionsFolder2 . '/folder2/test.txt.v' . $t2;
+
+ $this->rootView->file_put_contents($v1, 'version1');
+ $this->rootView->file_put_contents($v2, 'version2');
+
+ // move file into the shared folder as recipient
+ \OC\Files\Filesystem::rename('/folder2', '/folder1/folder2');
+
+ $this->assertFalse($this->rootView->file_exists($v1));
+ $this->assertFalse($this->rootView->file_exists($v2));
+
+ self::loginHelper(self::TEST_VERSIONS_USER);
+
+ $versionsFolder1 = '/' . self::TEST_VERSIONS_USER . '/files_versions';
+
+ $v1Renamed = $versionsFolder1 . '/folder1/folder2/test.txt.v' . $t1;
+ $v2Renamed = $versionsFolder1 . '/folder1/folder2/test.txt.v' . $t2;
+
+ $this->assertTrue($this->rootView->file_exists($v1Renamed));
+ $this->assertTrue($this->rootView->file_exists($v2Renamed));
}
public function testRenameSharedFile() {
@@ -347,9 +479,6 @@ class Test_Files_Versioning extends \Test\TestCase {
$this->assertFalse($this->rootView->file_exists($v1Renamed));
$this->assertFalse($this->rootView->file_exists($v2Renamed));
-
- //cleanup
- \OC\Files\Filesystem::unlink('/test.txt');
}
public function testCopy() {
@@ -380,10 +509,6 @@ class Test_Files_Versioning extends \Test\TestCase {
$this->assertTrue($this->rootView->file_exists($v1Copied));
$this->assertTrue($this->rootView->file_exists($v2Copied));
-
- //cleanup
- \OC\Files\Filesystem::unlink('test.txt');
- \OC\Files\Filesystem::unlink('test2.txt');
}
/**
@@ -409,7 +534,7 @@ class Test_Files_Versioning extends \Test\TestCase {
// execute copy hook of versions app
$versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, '/subfolder/test.txt');
- $this->assertSame(2, count($versions));
+ $this->assertCount(2, $versions);
foreach ($versions as $version) {
$this->assertSame('/subfolder/test.txt', $version['path']);
@@ -421,6 +546,190 @@ class Test_Files_Versioning extends \Test\TestCase {
}
/**
+ * test if we find all versions and if the versions array contain
+ * the correct 'path' and 'name'
+ */
+ public function testGetVersionsEmptyFile() {
+ // execute copy hook of versions app
+ $versions = \OCA\Files_Versions\Storage::getVersions(self::TEST_VERSIONS_USER, '');
+
+ $this->assertCount(0, $versions);
+ }
+
+ public function testRestoreSameStorage() {
+ \OC\Files\Filesystem::mkdir('sub');
+ $this->doTestRestore();
+ }
+
+ public function testRestoreCrossStorage() {
+ $storage2 = new Temporary(array());
+ \OC\Files\Filesystem::mount($storage2, array(), self::TEST_VERSIONS_USER . '/files/sub');
+
+ $this->doTestRestore();
+ }
+
+ private function doTestRestore() {
+ $filePath = self::TEST_VERSIONS_USER . '/files/sub/test.txt';
+ $this->rootView->file_put_contents($filePath, 'test file');
+
+ $t0 = $this->rootView->filemtime($filePath);
+
+ // not exactly the same timestamp as the file
+ $t1 = time() - 60;
+ // second version is two weeks older
+ $t2 = $t1 - 60 * 60 * 24 * 14;
+
+ // create some versions
+ $v1 = self::USERS_VERSIONS_ROOT . '/sub/test.txt.v' . $t1;
+ $v2 = self::USERS_VERSIONS_ROOT . '/sub/test.txt.v' . $t2;
+
+ $this->rootView->mkdir(self::USERS_VERSIONS_ROOT . '/sub');
+ $this->rootView->file_put_contents($v1, 'version1');
+ $this->rootView->file_put_contents($v2, 'version2');
+
+ $oldVersions = \OCA\Files_Versions\Storage::getVersions(
+ self::TEST_VERSIONS_USER, '/sub/test.txt'
+ );
+
+ $this->assertCount(2, $oldVersions);
+
+ $this->assertEquals('test file', $this->rootView->file_get_contents($filePath));
+ $info1 = $this->rootView->getFileInfo($filePath);
+
+ \OCA\Files_Versions\Storage::rollback('sub/test.txt', $t2);
+
+ $this->assertEquals('version2', $this->rootView->file_get_contents($filePath));
+ $info2 = $this->rootView->getFileInfo($filePath);
+
+ $this->assertNotEquals(
+ $info2['etag'],
+ $info1['etag'],
+ 'Etag must change after rolling back version'
+ );
+ $this->assertEquals(
+ $info2['fileid'],
+ $info1['fileid'],
+ 'File id must not change after rolling back version'
+ );
+ $this->assertEquals(
+ $info2['mtime'],
+ $t2,
+ 'Restored file has mtime from version'
+ );
+
+ $newVersions = \OCA\Files_Versions\Storage::getVersions(
+ self::TEST_VERSIONS_USER, '/sub/test.txt'
+ );
+
+ $this->assertTrue(
+ $this->rootView->file_exists(self::USERS_VERSIONS_ROOT . '/sub/test.txt.v' . $t0),
+ 'A version file was created for the file before restoration'
+ );
+ $this->assertTrue(
+ $this->rootView->file_exists($v1),
+ 'Untouched version file is still there'
+ );
+ $this->assertFalse(
+ $this->rootView->file_exists($v2),
+ 'Restored version file gone from files_version folder'
+ );
+
+ $this->assertCount(2, $newVersions, 'Additional version created');
+
+ $this->assertTrue(
+ isset($newVersions[$t0 . '#' . 'test.txt']),
+ 'A version was created for the file before restoration'
+ );
+ $this->assertTrue(
+ isset($newVersions[$t1 . '#' . 'test.txt']),
+ 'Untouched version is still there'
+ );
+ $this->assertFalse(
+ isset($newVersions[$t2 . '#' . 'test.txt']),
+ 'Restored version is not in the list any more'
+ );
+ }
+
+ /**
+ * Test whether versions are created when overwriting as owner
+ */
+ public function testStoreVersionAsOwner() {
+ $this->loginAsUser(self::TEST_VERSIONS_USER);
+
+ $this->createAndCheckVersions(
+ \OC\Files\Filesystem::getView(),
+ 'test.txt'
+ );
+ }
+
+ /**
+ * Test whether versions are created when overwriting as share recipient
+ */
+ public function testStoreVersionAsRecipient() {
+ $this->loginAsUser(self::TEST_VERSIONS_USER);
+
+ \OC\Files\Filesystem::mkdir('folder');
+ \OC\Files\Filesystem::file_put_contents('folder/test.txt', 'test file');
+ $fileInfo = \OC\Files\Filesystem::getFileInfo('folder');
+
+ \OCP\Share::shareItem(
+ 'folder',
+ $fileInfo['fileid'],
+ \OCP\Share::SHARE_TYPE_USER,
+ self::TEST_VERSIONS_USER2,
+ \OCP\Constants::PERMISSION_ALL
+ );
+
+ $this->loginAsUser(self::TEST_VERSIONS_USER2);
+
+ $this->createAndCheckVersions(
+ \OC\Files\Filesystem::getView(),
+ 'folder/test.txt'
+ );
+ }
+
+ /**
+ * Test whether versions are created when overwriting anonymously.
+ *
+ * When uploading through a public link or publicwebdav, no user
+ * is logged in. File modification must still be able to find
+ * the owner and create versions.
+ */
+ public function testStoreVersionAsAnonymous() {
+ $this->logout();
+
+ // note: public link upload does this,
+ // needed to make the hooks fire
+ \OC_Util::setupFS(self::TEST_VERSIONS_USER);
+
+ $userView = new \OC\Files\View('/' . self::TEST_VERSIONS_USER . '/files');
+ $this->createAndCheckVersions(
+ $userView,
+ 'test.txt'
+ );
+ }
+
+ private function createAndCheckVersions($view, $path) {
+ $view->file_put_contents($path, 'test file');
+ $view->file_put_contents($path, 'version 1');
+ $view->file_put_contents($path, 'version 2');
+
+ $this->loginAsUser(self::TEST_VERSIONS_USER);
+
+ // need to scan for the versions
+ list($rootStorage,) = $this->rootView->resolvePath(self::TEST_VERSIONS_USER . '/files_versions');
+ $rootStorage->getScanner()->scan('files_versions');
+
+ $versions = \OCA\Files_Versions\Storage::getVersions(
+ self::TEST_VERSIONS_USER, '/' . $path
+ );
+
+ // note: we cannot predict how many versions are created due to
+ // test run timing
+ $this->assertGreaterThan(0, count($versions));
+ }
+
+ /**
* @param string $user
* @param bool $create
* @param bool $password
diff --git a/apps/provisioning_api/lib/users.php b/apps/provisioning_api/lib/users.php
index 505a141c032..43cf22b071b 100644
--- a/apps/provisioning_api/lib/users.php
+++ b/apps/provisioning_api/lib/users.php
@@ -155,7 +155,14 @@ class Users {
case 'quota':
$quota = $parameters['_put']['value'];
if($quota !== 'none' and $quota !== 'default') {
- $quota = OC_Helper::computerFileSize($quota);
+ if (is_numeric($quota)) {
+ $quota = floatval($quota);
+ } else {
+ $quota = OC_Helper::computerFileSize($quota);
+ }
+ if ($quota === false) {
+ return new OC_OCS_Result(null, 103, "Invalid quota value {$parameters['_put']['value']}");
+ }
if($quota == 0) {
$quota = 'default';
}else if($quota == -1){
diff --git a/apps/provisioning_api/tests/userstest.php b/apps/provisioning_api/tests/userstest.php
index b7e83a3c4fe..c6a6133b7d2 100644
--- a/apps/provisioning_api/tests/userstest.php
+++ b/apps/provisioning_api/tests/userstest.php
@@ -187,20 +187,36 @@ class UsersTest extends TestCase {
}
- public function testEditOwnQuota() {
+ /**
+ * @dataProvider providesQuotas
+ * @param $expected
+ * @param $quota
+ */
+ public function testEditOwnQuota($expected, $quota) {
$user = $this->generateUsers();
+ \OC_Group::addToGroup($user, 'admin');
\OC_User::setUserId($user);
$result = \OCA\provisioning_API\Users::editUser(
- array(
+ [
'userid' => $user,
- '_put' => array(
+ '_put' => [
'key' => 'quota',
- 'value' => '20G',
- ),
- )
+ 'value' => $quota,
+ ],
+ ]
);
$this->assertInstanceOf('OC_OCS_Result', $result);
- $this->assertFalse($result->succeeded());
+ $this->assertEquals($expected, $result->succeeded());
+ }
+
+ public function providesQuotas() {
+ return [
+ [true, '20G'],
+ [true, '1234567'],
+ [true, 'none'],
+ [true, 'default'],
+ [false, 'qwertzu'],
+ ];
}
public function testAdminEditOwnQuota() {
diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
index aa97b181846..897e4a9924f 100644
--- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php
+++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
@@ -41,6 +41,7 @@ if(isset($_POST['copyConfig'])) {
$newConfig->setConfiguration($originalConfig->getConfiguration());
} else {
$configuration = new \OCA\user_ldap\lib\Configuration($nk, false);
+ $newConfig->setConfiguration($configuration->getDefaults());
$resultData['defaults'] = $configuration->getDefaults();
}
$newConfig->saveConfiguration();
diff --git a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js
index 702c30a5a69..c9c3aeb241d 100644
--- a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js
+++ b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js
@@ -158,15 +158,19 @@ OCA = OCA || {};
/**
* sets the selected groups
*
- * @param {Array} groups
+ * @param {string} groups
*/
setGroups: function(groups) {
+ if(typeof groups === 'string') {
+ groups = groups.split("\n");
+ }
if(!this.isComplexGroupChooser) {
this.setElementValue(this.getGroupsItem().$element, groups);
this.getGroupsItem().$element.multiselect('refresh');
} else {
var $element = $(this.tabID).find('.ldapGroupListSelected');
this.equipMultiSelect($element, groups);
+ this.updateFilterOnType('selected');
}
},
@@ -224,10 +228,10 @@ OCA = OCA || {};
$selectedGroups, $(this.tabID).find('.ldapManyGroupsSearch')
));
} else {
- if(_.isUndefined || only.toLowerCase() === 'available') {
+ if(_.isUndefined(only) || only.toLowerCase() === 'available') {
this.filterOnType[0].updateOptions();
}
- if(_.isUndefined || only.toLowerCase() === 'selected') {
+ if(_.isUndefined(only) || only.toLowerCase() === 'selected') {
this.filterOnType[1].updateOptions();
}
}
@@ -357,7 +361,7 @@ OCA = OCA || {};
this._saveGroups(selected.concat($available.val()));
$available.find('option:selected').prependTo($selected);
- this.updateFilterOnType();
+ this.updateFilterOnType('available'); // selected groups are not updated yet
},
/**
@@ -370,7 +374,7 @@ OCA = OCA || {};
this._saveGroups(selected);
$selected.find('option:selected').appendTo($available);
- this.updateFilterOnType();
+ this.updateFilterOnType('available'); // selected groups are not updated yet
}
});
diff --git a/apps/user_ldap/js/wizard/wizardTabElementary.js b/apps/user_ldap/js/wizard/wizardTabElementary.js
index d123a1ea080..b8ab367dfd1 100644
--- a/apps/user_ldap/js/wizard/wizardTabElementary.js
+++ b/apps/user_ldap/js/wizard/wizardTabElementary.js
@@ -207,7 +207,6 @@ OCA = OCA || {};
*/
onNewConfiguration: function(view, result) {
if(result.isSuccess === true) {
- console.log('new config');
var nthServer = view._configChooserNextServerNumber;
view.$configChooser.find('option:selected').removeAttr('selected');
var html = '<option value="'+result.configPrefix+'" selected="selected">'+t('user_ldap','{nthServer}. Server', {nthServer: nthServer})+'</option>';
diff --git a/apps/user_ldap/l10n/ast.js b/apps/user_ldap/l10n/ast.js
index 1ae219b25e6..3cc4b7d6b08 100644
--- a/apps/user_ldap/l10n/ast.js
+++ b/apps/user_ldap/l10n/ast.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Help" : "Ayuda",
"Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.",
- "Test Filter" : "Filtru de preba",
"Other Attributes:" : "Otros atributos:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define'l filtru a aplicar cuando s'intenta identificar. %%uid va trocar al nome d'usuariu nel procesu d'identificación. Por exemplu: \"uid=%%uid\"",
"1. Server" : "1. Sirvidor",
diff --git a/apps/user_ldap/l10n/ast.json b/apps/user_ldap/l10n/ast.json
index 408febfb899..19b8c5fad14 100644
--- a/apps/user_ldap/l10n/ast.json
+++ b/apps/user_ldap/l10n/ast.json
@@ -29,7 +29,6 @@
"Help" : "Ayuda",
"Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios tán disponibles en %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "El filtru especifica qué grupos LDAP van tener accesu a %s.",
- "Test Filter" : "Filtru de preba",
"Other Attributes:" : "Otros atributos:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define'l filtru a aplicar cuando s'intenta identificar. %%uid va trocar al nome d'usuariu nel procesu d'identificación. Por exemplu: \"uid=%%uid\"",
"1. Server" : "1. Sirvidor",
diff --git a/apps/user_ldap/l10n/be.js b/apps/user_ldap/l10n/be.js
index dda51e8ac42..99117026327 100644
--- a/apps/user_ldap/l10n/be.js
+++ b/apps/user_ldap/l10n/be.js
@@ -3,4 +3,4 @@ OC.L10N.register(
{
"Advanced" : "Дасведчаны"
},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/user_ldap/l10n/be.json b/apps/user_ldap/l10n/be.json
index f70adabdbe1..987589ccd81 100644
--- a/apps/user_ldap/l10n/be.json
+++ b/apps/user_ldap/l10n/be.json
@@ -1,4 +1,4 @@
{ "translations": {
"Advanced" : "Дасведчаны"
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/bg_BG.js b/apps/user_ldap/l10n/bg_BG.js
index e363f1c897b..b2e12165deb 100644
--- a/apps/user_ldap/l10n/bg_BG.js
+++ b/apps/user_ldap/l10n/bg_BG.js
@@ -30,7 +30,6 @@ OC.L10N.register(
"Help" : "Помощ",
"Groups meeting these criteria are available in %s:" : "Групи спазващи тези критерии са разположени в %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Филтърът посочва кои LDAP групи ще имат достъп до %s инсталацията.",
- "Test Filter" : "Тестов Филтър",
"Other Attributes:" : "Други Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Заявява филтърът, който да бъде приложен при опит за вписване. %%uid замества потребителското име в полето login action. Пример: \"uid=%%uid\".",
"Test Loginname" : "Проверка на Потребителско име",
diff --git a/apps/user_ldap/l10n/bg_BG.json b/apps/user_ldap/l10n/bg_BG.json
index 250be5f00a3..39fc9b1e49b 100644
--- a/apps/user_ldap/l10n/bg_BG.json
+++ b/apps/user_ldap/l10n/bg_BG.json
@@ -28,7 +28,6 @@
"Help" : "Помощ",
"Groups meeting these criteria are available in %s:" : "Групи спазващи тези критерии са разположени в %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Филтърът посочва кои LDAP групи ще имат достъп до %s инсталацията.",
- "Test Filter" : "Тестов Филтър",
"Other Attributes:" : "Други Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Заявява филтърът, който да бъде приложен при опит за вписване. %%uid замества потребителското име в полето login action. Пример: \"uid=%%uid\".",
"Test Loginname" : "Проверка на Потребителско име",
diff --git a/apps/user_ldap/l10n/cs_CZ.js b/apps/user_ldap/l10n/cs_CZ.js
index f1fdbbf4fb0..a5eb704c3e6 100644
--- a/apps/user_ldap/l10n/cs_CZ.js
+++ b/apps/user_ldap/l10n/cs_CZ.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Nelze automaticky detekovat Base DN, zadejte prosím ručně.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "V zadané Base DN nebyl objekt nalezen. Ověřte.",
+ "More than 1.000 directory entries available." : "Je dostupných více než 1000 adresářů.",
" entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověře prosím Base DN společně s nastavením připojení a přihlašovacími údaji.",
"Do you really want to delete the current Server Configuration?" : "Opravdu si přejete smazat současné nastavení serveru?",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Upravit LDAP požadavek",
"LDAP Filter:" : "LDAP filtr:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.",
- "Test Filter" : "Otestovat filtr",
"Verify settings and count groups" : "Ověřit nastavení a spočítat skupiny",
"When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:",
"LDAP / AD Username:" : "LDAP / AD uživatelské jméno:",
diff --git a/apps/user_ldap/l10n/cs_CZ.json b/apps/user_ldap/l10n/cs_CZ.json
index da36d7fb987..dbe157bb1ba 100644
--- a/apps/user_ldap/l10n/cs_CZ.json
+++ b/apps/user_ldap/l10n/cs_CZ.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Nelze automaticky detekovat Base DN, zadejte prosím ručně.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "V zadané Base DN nebyl objekt nalezen. Ověřte.",
+ "More than 1.000 directory entries available." : "Je dostupných více než 1000 adresářů.",
" entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověře prosím Base DN společně s nastavením připojení a přihlašovacími údaji.",
"Do you really want to delete the current Server Configuration?" : "Opravdu si přejete smazat současné nastavení serveru?",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Upravit LDAP požadavek",
"LDAP Filter:" : "LDAP filtr:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.",
- "Test Filter" : "Otestovat filtr",
"Verify settings and count groups" : "Ověřit nastavení a spočítat skupiny",
"When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:",
"LDAP / AD Username:" : "LDAP / AD uživatelské jméno:",
diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js
index 9c41b38c2e8..1b070f48a90 100644
--- a/apps/user_ldap/l10n/da.js
+++ b/apps/user_ldap/l10n/da.js
@@ -22,10 +22,11 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Kunne ikke registrere Base DN - angiv den venligst manuelt.",
"{nthServer}. Server" : "{nthServer}. server",
"No object found in the given Base DN. Please revise." : "Intet objekt fundet i den givne Base DN. Gennemse venligst.",
+ "More than 1.000 directory entries available." : "Mere end 1.000 opslag tilgængelige",
" entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN, såvel som forbindelsesindstillingerne og brugeroplysningerne.",
"Do you really want to delete the current Server Configuration?" : "Ønsker du virkelig at slette den nuværende Server Konfiguration?",
- "Confirm Deletion" : "Bekræft Sletning",
+ "Confirm Deletion" : "Bekræft sletning",
"Mappings cleared successfully!" : "Kortlægningerne blev ryddet af vejen!",
"Error while clearing the mappings." : "Fejl under rydning af kortlægninger.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lagringen mislykkedes. Sørg venligst for at databasen er i drift. Genindlæs for der fortsættes.",
@@ -50,7 +51,7 @@ OC.L10N.register(
"Users" : "Brugere",
"Login Attributes" : "Login-attributter",
"Groups" : "Grupper",
- "Test Configuration" : "Test Konfiguration",
+ "Test Configuration" : "Test konfigurationen",
"Help" : "Hjælp",
"Groups meeting these criteria are available in %s:" : "Grupper som opfylder disse kriterier er tilgængelige i %s:",
"Only these object classes:" : "Kun disse objektklasser:",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Redigér LDAP-forespørgsel",
"LDAP Filter:" : "LDAP-filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret angiver hvilke LDAP-grupper, der skal have adgang til instansen %s.",
- "Test Filter" : "Test filter",
"Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper",
"When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:",
"LDAP / AD Username:" : "LDAP/AD-brugernavn:",
diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json
index fa69492784f..acd0eaae13e 100644
--- a/apps/user_ldap/l10n/da.json
+++ b/apps/user_ldap/l10n/da.json
@@ -20,10 +20,11 @@
"Could not detect Base DN, please enter it manually." : "Kunne ikke registrere Base DN - angiv den venligst manuelt.",
"{nthServer}. Server" : "{nthServer}. server",
"No object found in the given Base DN. Please revise." : "Intet objekt fundet i den givne Base DN. Gennemse venligst.",
+ "More than 1.000 directory entries available." : "Mere end 1.000 opslag tilgængelige",
" entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN, såvel som forbindelsesindstillingerne og brugeroplysningerne.",
"Do you really want to delete the current Server Configuration?" : "Ønsker du virkelig at slette den nuværende Server Konfiguration?",
- "Confirm Deletion" : "Bekræft Sletning",
+ "Confirm Deletion" : "Bekræft sletning",
"Mappings cleared successfully!" : "Kortlægningerne blev ryddet af vejen!",
"Error while clearing the mappings." : "Fejl under rydning af kortlægninger.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lagringen mislykkedes. Sørg venligst for at databasen er i drift. Genindlæs for der fortsættes.",
@@ -48,7 +49,7 @@
"Users" : "Brugere",
"Login Attributes" : "Login-attributter",
"Groups" : "Grupper",
- "Test Configuration" : "Test Konfiguration",
+ "Test Configuration" : "Test konfigurationen",
"Help" : "Hjælp",
"Groups meeting these criteria are available in %s:" : "Grupper som opfylder disse kriterier er tilgængelige i %s:",
"Only these object classes:" : "Kun disse objektklasser:",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Redigér LDAP-forespørgsel",
"LDAP Filter:" : "LDAP-filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret angiver hvilke LDAP-grupper, der skal have adgang til instansen %s.",
- "Test Filter" : "Test filter",
"Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper",
"When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:",
"LDAP / AD Username:" : "LDAP/AD-brugernavn:",
diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js
index d2da518bf5c..c06922818ca 100644
--- a/apps/user_ldap/l10n/de.js
+++ b/apps/user_ldap/l10n/de.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte manuell eingeben.",
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der Base DN gefunden, bitte überprüfen.",
+ "More than 1.000 directory entries available." : "Mehr als 1.000 Verzeichniseinträge verfügbar.",
" entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte prüfe die Base DN und auch die Verbindungs- und Anmeldeeinstellungen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
@@ -34,7 +35,13 @@ OC.L10N.register(
"Select attributes" : "Attribute auswählen",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfe Deine Loginattribute und Deinen Benutzernamen. Gültige Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
"User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwende möglicherweise einen engeren Filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte prüfe die Einstellungen und die Logdatei.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.",
"A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfe Host, Port und Anmeldeinformationen.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.",
+ "Please provide a login name to test against" : "Bitte gib einen Benutzernamen an, um gegen diesen zu testen",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte gib es in den erweiterten LDAP-Einstellungen selber an.",
@@ -55,10 +62,12 @@ OC.L10N.register(
"Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
"LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
- "Test Filter" : "Testfilter",
"Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:",
"LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.",
"LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
"Test Loginname" : "Loginnamen testen",
@@ -80,6 +89,7 @@ OC.L10N.register(
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
"Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json
index fd98cfbec30..7c6cb120559 100644
--- a/apps/user_ldap/l10n/de.json
+++ b/apps/user_ldap/l10n/de.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte manuell eingeben.",
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der Base DN gefunden, bitte überprüfen.",
+ "More than 1.000 directory entries available." : "Mehr als 1.000 Verzeichniseinträge verfügbar.",
" entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte prüfe die Base DN und auch die Verbindungs- und Anmeldeeinstellungen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
@@ -32,7 +33,13 @@
"Select attributes" : "Attribute auswählen",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfe Deine Loginattribute und Deinen Benutzernamen. Gültige Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
"User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwende möglicherweise einen engeren Filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte prüfe die Einstellungen und die Logdatei.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.",
"A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfe Host, Port und Anmeldeinformationen.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.",
+ "Please provide a login name to test against" : "Bitte gib einen Benutzernamen an, um gegen diesen zu testen",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte gib es in den erweiterten LDAP-Einstellungen selber an.",
@@ -53,10 +60,12 @@
"Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
"LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
- "Test Filter" : "Testfilter",
"Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:",
"LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.",
"LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
"Test Loginname" : "Loginnamen testen",
@@ -78,6 +87,7 @@
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
"Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js
index f296e62d242..7f36fe64be0 100644
--- a/apps/user_ldap/l10n/de_DE.js
+++ b/apps/user_ldap/l10n/de_DE.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte geben Sie sie manuell ein.",
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base DN gefunden, bitte überprüfen.",
+ "More than 1.000 directory entries available." : "Mehr als 1.000 Verzeichniseinträge verfügbar.",
" entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
@@ -34,7 +35,13 @@ OC.L10N.register(
"Select attributes" : "Attribute auswählen",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfen Sie Ihre Loginattribute und Ihren Benutzernamen. Gültiger Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
"User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwenden Sie möglicherweise einen engeren Filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte überprüfe die Einstellungen und die Logdatei.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.",
"A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfen Sie Host, Port und Anmeldeinformationen.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.",
+ "Please provide a login name to test against" : "Bitte geben Sie einen Benutzernamen an, um gegen diesen zu testen",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte geben Sie es in den erweiterten LDAP-Einstellungen selber an.",
@@ -55,10 +62,12 @@ OC.L10N.register(
"Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
"LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
- "Test Filter" : "Testfilter",
"Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:",
"LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.",
"LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
"Test Loginname" : "Loginnamen testen",
@@ -80,6 +89,7 @@ OC.L10N.register(
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
"Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json
index 0352ac47f7a..27190826a20 100644
--- a/apps/user_ldap/l10n/de_DE.json
+++ b/apps/user_ldap/l10n/de_DE.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte geben Sie sie manuell ein.",
"{nthServer}. Server" : "{nthServer}. - Server",
"No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base DN gefunden, bitte überprüfen.",
+ "More than 1.000 directory entries available." : "Mehr als 1.000 Verzeichniseinträge verfügbar.",
" entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
@@ -32,7 +33,13 @@
"Select attributes" : "Attribute auswählen",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfen Sie Ihre Loginattribute und Ihren Benutzernamen. Gültiger Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
"User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Einstellungen überprüft, aber einen Nutzer gefunden. Nur der Erste kann sich anmelden. Verwenden Sie möglicherweise einen engeren Filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "Ein nicht näher spezifizierter Fehler ist aufgetreten. Bitte überprüfe die Einstellungen und die Logdatei.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Der Suchfilter ist ungültig, möglicherweise bestehen Eingabefehler wie z.B. eine ungerade Anzahl von geöffneten und geschlossenen Klammern. Bitte überarbeiten.",
"A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfen Sie Host, Port und Anmeldeinformationen.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Der %uid - Platzhalter fehlt. Dieser wird mit dem Anmeldenamen beim Abfragen von LDAP / AD ersetzt.",
+ "Please provide a login name to test against" : "Bitte geben Sie einen Benutzernamen an, um gegen diesen zu testen",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Das Gruppenfeld wurde deaktiviert, da der LDAP / AD-Server memberOf nicht unterstützt.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte geben Sie es in den erweiterten LDAP-Einstellungen selber an.",
@@ -53,10 +60,12 @@
"Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
"LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
- "Test Filter" : "Testfilter",
"Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "When logging in, %s will find the user based on the following attributes:" : "Beim Anmelden wird %s die Nutzerbasis mit folgenden Attributen vorfinden:",
"LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Erlaubt das Anmelden gegen den LDAP / AD Nutzernamen, welcher entweder eine UID oder samaccountname ist und automatisch erkannt wird.",
"LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Erlaubt das Anmelden gegen ein E-Mail Attribut. Mail und mailPrimaryAddress sind erlaubt.",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
"Test Loginname" : "Loginnamen testen",
@@ -78,6 +87,7 @@
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Die häufigsten Objektklassen für Benutzer sind organizationalPerson, person, user und inetOrgPerson. Wenn Sie nicht sicher, welche Objektklasse Sie wählen sollen, fragen Sie bitte Ihren Verzeichnis-Admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
"Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js
index ff440b0c88a..939edd4d045 100644
--- a/apps/user_ldap/l10n/el.js
+++ b/apps/user_ldap/l10n/el.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Αδυναμία ανίχνευσης Base DN, παρακαλώ να το εισάγετε χειροκίνητα.",
"{nthServer}. Server" : "{nthServer}. Διακομιστής",
"No object found in the given Base DN. Please revise." : "Δεν βρέθηκε αντικείμενο στο δηλωθέν Base DN. Παρακαλώ αναθεωρήστε.",
+ "More than 1.000 directory entries available." : "Περισσότερες από 1.000 εγγραφές καταλόγων διαθέσιμες.",
" entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Παρουσιάστηκε σφάλμα. Παρακαλούμε ελέγξτε το Base DN καθώς και τις ρυθμίσεις και τα διαπιστευτήρια σύνδεσης.",
"Do you really want to delete the current Server Configuration?" : "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Επεξεργασία ερωτήματος ",
"LDAP Filter:" : "Φίλτρο LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
- "Test Filter" : "Φίλτρο Ελέγχου",
"Verify settings and count groups" : "Επιβεβαίωση ρυθμίσεων και καταμέτρηση ομάδων",
"When logging in, %s will find the user based on the following attributes:" : "Κατά τη σύνδεση, το %s θα βρει το χρήστη βασιζόμενος στις ακόλουθες ιδιότητες:",
"LDAP / AD Username:" : "Όνομα χρήστη LDAP / AD:",
diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json
index f12886a6a91..1e0add9ee44 100644
--- a/apps/user_ldap/l10n/el.json
+++ b/apps/user_ldap/l10n/el.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Αδυναμία ανίχνευσης Base DN, παρακαλώ να το εισάγετε χειροκίνητα.",
"{nthServer}. Server" : "{nthServer}. Διακομιστής",
"No object found in the given Base DN. Please revise." : "Δεν βρέθηκε αντικείμενο στο δηλωθέν Base DN. Παρακαλώ αναθεωρήστε.",
+ "More than 1.000 directory entries available." : "Περισσότερες από 1.000 εγγραφές καταλόγων διαθέσιμες.",
" entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Παρουσιάστηκε σφάλμα. Παρακαλούμε ελέγξτε το Base DN καθώς και τις ρυθμίσεις και τα διαπιστευτήρια σύνδεσης.",
"Do you really want to delete the current Server Configuration?" : "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Επεξεργασία ερωτήματος ",
"LDAP Filter:" : "Φίλτρο LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
- "Test Filter" : "Φίλτρο Ελέγχου",
"Verify settings and count groups" : "Επιβεβαίωση ρυθμίσεων και καταμέτρηση ομάδων",
"When logging in, %s will find the user based on the following attributes:" : "Κατά τη σύνδεση, το %s θα βρει το χρήστη βασιζόμενος στις ακόλουθες ιδιότητες:",
"LDAP / AD Username:" : "Όνομα χρήστη LDAP / AD:",
diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js
index 4f6e9c96a68..86c93e972d7 100644
--- a/apps/user_ldap/l10n/en_GB.js
+++ b/apps/user_ldap/l10n/en_GB.js
@@ -61,7 +61,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Edit LDAP Query",
"LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "The filter specifies which LDAP groups shall have access to the %s instance.",
- "Test Filter" : "Test Filter",
"Verify settings and count groups" : "Verify settings and count groups",
"When logging in, %s will find the user based on the following attributes:" : "When logging in, %s will find the user based on the following attributes:",
"LDAP / AD Username:" : "LDAP / AD Username:",
diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json
index 51df2fe845e..39366fd146b 100644
--- a/apps/user_ldap/l10n/en_GB.json
+++ b/apps/user_ldap/l10n/en_GB.json
@@ -59,7 +59,6 @@
"Edit LDAP Query" : "Edit LDAP Query",
"LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "The filter specifies which LDAP groups shall have access to the %s instance.",
- "Test Filter" : "Test Filter",
"Verify settings and count groups" : "Verify settings and count groups",
"When logging in, %s will find the user based on the following attributes:" : "When logging in, %s will find the user based on the following attributes:",
"LDAP / AD Username:" : "LDAP / AD Username:",
diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js
index d663c273729..fd90625352b 100644
--- a/apps/user_ldap/l10n/es.js
+++ b/apps/user_ldap/l10n/es.js
@@ -10,26 +10,27 @@ OC.L10N.register(
"No configuration specified" : "No se ha especificado la configuración",
"No data specified" : "No se han especificado los datos",
" Could not set configuration %s" : "No se pudo establecer la configuración %s",
- "Action does not exist" : "Acción no existe.",
+ "Action does not exist" : "La acción no existe.",
"Configuration incorrect" : "Configuración Incorrecta",
"Configuration incomplete" : "Configuración incompleta",
"Configuration OK" : "Configuración correcta",
"Select groups" : "Seleccionar grupos",
"Select object classes" : "Seleccionar la clase de objeto",
"Please check the credentials, they seem to be wrong." : "Por favor verifique las credenciales, parecen no ser correctas.",
- "Please specify the port, it could not be auto-detected." : "Por favor especifique el puerto, no pudo ser auto-detectado.",
+ "Please specify the port, it could not be auto-detected." : "Por favor especifique el puerto, no pudo ser autodetectado.",
"Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN no puede ser detectada automáticamente, por favor revise credenciales, host y puerto.",
"Could not detect Base DN, please enter it manually." : "No se pudo detectar Base DN, por favor ingrésela manualmente.",
"{nthServer}. Server" : "{nthServer}. servidor",
"No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.",
+ "More than 1.000 directory entries available." : "Más de 1.000 directorios disponibles.",
" entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar eliminación",
- "Mappings cleared successfully!" : "Asignaciones borrado exitosamente!",
+ "Mappings cleared successfully!" : "¡Asignaciones borradas exitosamente!",
"Error while clearing the mappings." : "Error mientras se borraban las asignaciones.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese que la base de datos esta en Operación. Actualizar antes de continuar.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. Desea cambiar el modo?",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese de que la base de datos está en Operación. Actualizar antes de continuar.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. ¿Desea cambiar el modo?",
"Mode switch" : "Modo interruptor",
"Select attributes" : "Seleccionar atributos",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Usuario no encontrado. Por favor verifique los atributos de inicio de sesión y nombre de usuario. Filtro eficaz (copie-y-pegue para validar desde la línea de comando):<br/>",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Editar consulta LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica que grupos LDAP tendrán acceso a %s.",
- "Test Filter" : "Filtro de prueba",
"Verify settings and count groups" : "Verificar configuraciones y contar grupos",
"When logging in, %s will find the user based on the following attributes:" : "Cuando se inicia sesión, %s encontrará al usuario basado en los siguientes atributos:",
"LDAP / AD Username:" : "Nombre de usuario LDAP /AD:",
@@ -89,7 +89,7 @@ OC.L10N.register(
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automáticas al LDAP. Mejor para grandes configuraciones, pero requiere cierto conocimiento de LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ingrese manualmente los filtros LDAP (Recomendado para grandes directorios)",
"Limit %s access to users meeting these criteria:" : "Limitar el acceso a %s a los usuarios que cumplan estos criterios:",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Los objetos de clases más comunes para los usuarios son organizationalPerson, persona, usuario y inetOrgPerson. Si no está seguro que objeto de clase seleccionar, por favor consulte con su administrador de directorio. ",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Los objetos de clases más comunes para los usuarios son organizationalPerson, persona, usuario y inetOrgPerson. Si no está seguro de qué objeto de clase seleccionar, por favor, consulte con su administrador de directorio. ",
"The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica que usuarios LDAP pueden tener acceso a %s.",
"Verify settings and count users" : "Verificar configuración y contar usuarios",
"Saving" : "Guardando",
diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json
index 5fdf921e620..3e939e07de2 100644
--- a/apps/user_ldap/l10n/es.json
+++ b/apps/user_ldap/l10n/es.json
@@ -8,26 +8,27 @@
"No configuration specified" : "No se ha especificado la configuración",
"No data specified" : "No se han especificado los datos",
" Could not set configuration %s" : "No se pudo establecer la configuración %s",
- "Action does not exist" : "Acción no existe.",
+ "Action does not exist" : "La acción no existe.",
"Configuration incorrect" : "Configuración Incorrecta",
"Configuration incomplete" : "Configuración incompleta",
"Configuration OK" : "Configuración correcta",
"Select groups" : "Seleccionar grupos",
"Select object classes" : "Seleccionar la clase de objeto",
"Please check the credentials, they seem to be wrong." : "Por favor verifique las credenciales, parecen no ser correctas.",
- "Please specify the port, it could not be auto-detected." : "Por favor especifique el puerto, no pudo ser auto-detectado.",
+ "Please specify the port, it could not be auto-detected." : "Por favor especifique el puerto, no pudo ser autodetectado.",
"Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN no puede ser detectada automáticamente, por favor revise credenciales, host y puerto.",
"Could not detect Base DN, please enter it manually." : "No se pudo detectar Base DN, por favor ingrésela manualmente.",
"{nthServer}. Server" : "{nthServer}. servidor",
"No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.",
+ "More than 1.000 directory entries available." : "Más de 1.000 directorios disponibles.",
" entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.",
"Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?",
"Confirm Deletion" : "Confirmar eliminación",
- "Mappings cleared successfully!" : "Asignaciones borrado exitosamente!",
+ "Mappings cleared successfully!" : "¡Asignaciones borradas exitosamente!",
"Error while clearing the mappings." : "Error mientras se borraban las asignaciones.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese que la base de datos esta en Operación. Actualizar antes de continuar.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. Desea cambiar el modo?",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese de que la base de datos está en Operación. Actualizar antes de continuar.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. ¿Desea cambiar el modo?",
"Mode switch" : "Modo interruptor",
"Select attributes" : "Seleccionar atributos",
"User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Usuario no encontrado. Por favor verifique los atributos de inicio de sesión y nombre de usuario. Filtro eficaz (copie-y-pegue para validar desde la línea de comando):<br/>",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Editar consulta LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica que grupos LDAP tendrán acceso a %s.",
- "Test Filter" : "Filtro de prueba",
"Verify settings and count groups" : "Verificar configuraciones y contar grupos",
"When logging in, %s will find the user based on the following attributes:" : "Cuando se inicia sesión, %s encontrará al usuario basado en los siguientes atributos:",
"LDAP / AD Username:" : "Nombre de usuario LDAP /AD:",
@@ -87,7 +87,7 @@
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automáticas al LDAP. Mejor para grandes configuraciones, pero requiere cierto conocimiento de LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ingrese manualmente los filtros LDAP (Recomendado para grandes directorios)",
"Limit %s access to users meeting these criteria:" : "Limitar el acceso a %s a los usuarios que cumplan estos criterios:",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Los objetos de clases más comunes para los usuarios son organizationalPerson, persona, usuario y inetOrgPerson. Si no está seguro que objeto de clase seleccionar, por favor consulte con su administrador de directorio. ",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Los objetos de clases más comunes para los usuarios son organizationalPerson, persona, usuario y inetOrgPerson. Si no está seguro de qué objeto de clase seleccionar, por favor, consulte con su administrador de directorio. ",
"The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica que usuarios LDAP pueden tener acceso a %s.",
"Verify settings and count users" : "Verificar configuración y contar usuarios",
"Saving" : "Guardando",
diff --git a/apps/user_ldap/l10n/et_EE.js b/apps/user_ldap/l10n/et_EE.js
index 08c696977d8..cfe06cf0d6e 100644
--- a/apps/user_ldap/l10n/et_EE.js
+++ b/apps/user_ldap/l10n/et_EE.js
@@ -30,7 +30,6 @@ OC.L10N.register(
"Help" : "Abiinfo",
"Groups meeting these criteria are available in %s:" : "Kriteeriumiga sobivad grupid on saadaval %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.",
- "Test Filter" : "Testi filtrit",
"Other Attributes:" : "Muud atribuudid:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime. Näide: \"uid=%%uid\"",
"1. Server" : "1. Server",
diff --git a/apps/user_ldap/l10n/et_EE.json b/apps/user_ldap/l10n/et_EE.json
index 21b25b52d1a..b592f01087d 100644
--- a/apps/user_ldap/l10n/et_EE.json
+++ b/apps/user_ldap/l10n/et_EE.json
@@ -28,7 +28,6 @@
"Help" : "Abiinfo",
"Groups meeting these criteria are available in %s:" : "Kriteeriumiga sobivad grupid on saadaval %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.",
- "Test Filter" : "Testi filtrit",
"Other Attributes:" : "Muud atribuudid:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime. Näide: \"uid=%%uid\"",
"1. Server" : "1. Server",
diff --git a/apps/user_ldap/l10n/eu.js b/apps/user_ldap/l10n/eu.js
index b846dfa1e10..096973d2f1c 100644
--- a/apps/user_ldap/l10n/eu.js
+++ b/apps/user_ldap/l10n/eu.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Help" : "Laguntza",
"Groups meeting these criteria are available in %s:" : "Baldintza horiek betetzen dituzten taldeak bertan eskuragarri %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Iragazkiak zehazten du ze LDAP taldek izango duten sarrera %s instantziara:",
- "Test Filter" : "Frogatu Iragazkia",
"Other Attributes:" : "Bestelako atributuak:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definitu aplikatu beharreko iragazkia sartzen saiatzean. %%uid erabiltzailearen izena ordezten du sartzeko ekintzan. Adibidez: \"uid=%%uid\"",
"1. Server" : "1. Zerbitzaria",
diff --git a/apps/user_ldap/l10n/eu.json b/apps/user_ldap/l10n/eu.json
index 247618ea884..84e8650d213 100644
--- a/apps/user_ldap/l10n/eu.json
+++ b/apps/user_ldap/l10n/eu.json
@@ -29,7 +29,6 @@
"Help" : "Laguntza",
"Groups meeting these criteria are available in %s:" : "Baldintza horiek betetzen dituzten taldeak bertan eskuragarri %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Iragazkiak zehazten du ze LDAP taldek izango duten sarrera %s instantziara:",
- "Test Filter" : "Frogatu Iragazkia",
"Other Attributes:" : "Bestelako atributuak:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definitu aplikatu beharreko iragazkia sartzen saiatzean. %%uid erabiltzailearen izena ordezten du sartzeko ekintzan. Adibidez: \"uid=%%uid\"",
"1. Server" : "1. Zerbitzaria",
diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js
index 5a2bb54cac9..eeb890c70c5 100644
--- a/apps/user_ldap/l10n/fr.js
+++ b/apps/user_ldap/l10n/fr.js
@@ -22,11 +22,12 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Impossible de détecter le DN de base, veuillez le spécifier manuellement",
"{nthServer}. Server" : "{nthServer}. Serveur",
"No object found in the given Base DN. Please revise." : "Aucun objet trouvé dans le DN de base spécifié. Veuillez le vérifier.",
+ "More than 1.000 directory entries available." : "Il y a plus de 1000 entrées de répertoire disponibles.",
" entries available within the provided Base DN" : "entrées disponibles dans le DN de base spécifié",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Une erreur est survenue. Veuillez vérifier le DN de base, ainsi que les paramètres de connexion et les informations d'identification",
"Do you really want to delete the current Server Configuration?" : "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?",
"Confirm Deletion" : "Confirmer la suppression",
- "Mappings cleared successfully!" : "Succès de la suppression des associations!",
+ "Mappings cleared successfully!" : "Associations supprimées avec succès !",
"Error while clearing the mappings." : "Erreur lors de la suppression des associations.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "La sauvegarde a échoué. Veuillez vérifier que la base de données est opérationnelle. Rechargez avant de poursuivre.",
"Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Changer de mode activera les requêtes LDAP automatiques. Selon la taille de votre annuaire LDAP, cela peut prendre du temps. Voulez-vous toujours changer de mode ?",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Modifier la requête LDAP",
"LDAP Filter:" : "Filtre LDAP :",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Le filtre spécifie quels groupes LDAP ont accès à l'instance %s.",
- "Test Filter" : "Test du filtre",
"Verify settings and count groups" : "Vérifier les paramètres et compter les groupes",
"When logging in, %s will find the user based on the following attributes:" : "Au login, %s cherchera l'utilisateur sur base de ces attributs :",
"LDAP / AD Username:" : "Nom d'utilisateur LDAP / AD :",
diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json
index 1dfbc319dcf..b6c1c9e9985 100644
--- a/apps/user_ldap/l10n/fr.json
+++ b/apps/user_ldap/l10n/fr.json
@@ -20,11 +20,12 @@
"Could not detect Base DN, please enter it manually." : "Impossible de détecter le DN de base, veuillez le spécifier manuellement",
"{nthServer}. Server" : "{nthServer}. Serveur",
"No object found in the given Base DN. Please revise." : "Aucun objet trouvé dans le DN de base spécifié. Veuillez le vérifier.",
+ "More than 1.000 directory entries available." : "Il y a plus de 1000 entrées de répertoire disponibles.",
" entries available within the provided Base DN" : "entrées disponibles dans le DN de base spécifié",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Une erreur est survenue. Veuillez vérifier le DN de base, ainsi que les paramètres de connexion et les informations d'identification",
"Do you really want to delete the current Server Configuration?" : "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?",
"Confirm Deletion" : "Confirmer la suppression",
- "Mappings cleared successfully!" : "Succès de la suppression des associations!",
+ "Mappings cleared successfully!" : "Associations supprimées avec succès !",
"Error while clearing the mappings." : "Erreur lors de la suppression des associations.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "La sauvegarde a échoué. Veuillez vérifier que la base de données est opérationnelle. Rechargez avant de poursuivre.",
"Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Changer de mode activera les requêtes LDAP automatiques. Selon la taille de votre annuaire LDAP, cela peut prendre du temps. Voulez-vous toujours changer de mode ?",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Modifier la requête LDAP",
"LDAP Filter:" : "Filtre LDAP :",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Le filtre spécifie quels groupes LDAP ont accès à l'instance %s.",
- "Test Filter" : "Test du filtre",
"Verify settings and count groups" : "Vérifier les paramètres et compter les groupes",
"When logging in, %s will find the user based on the following attributes:" : "Au login, %s cherchera l'utilisateur sur base de ces attributs :",
"LDAP / AD Username:" : "Nom d'utilisateur LDAP / AD :",
diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js
index add0dbd2d0f..63f7a2cdaf1 100644
--- a/apps/user_ldap/l10n/gl.js
+++ b/apps/user_ldap/l10n/gl.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Non foi posíbel detectar o DN base, introdúzao manualmente.",
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "Non se atopou o obxecto no DN base solicitado. Revíseo.",
+ "More than 1.000 directory entries available." : "Dispoñíbeis máis de 1.000 entradas de directorio.",
" entries available within the provided Base DN" : "entradas dispoñíbeis no DN base fornecido",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Produciuse un erro. Comprobe o DN base, os axustes de conexión e as credenciais.",
"Do you really want to delete the current Server Configuration?" : "Confirma que quere eliminar a configuración actual do servidor?",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Editar a consulta LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica que grupos LDAP teñen acceso á instancia %s.",
- "Test Filter" : "Filtro de probas",
"Verify settings and count groups" : "Verificar os axustes e contar os grupos",
"When logging in, %s will find the user based on the following attributes:" : "Ao acceder, %s atopa o usuario en función dos seguintes atributos:",
"LDAP / AD Username:" : "Nome de usuario LDAP / AD:",
diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json
index fc637ebe9d3..bcbef5d530e 100644
--- a/apps/user_ldap/l10n/gl.json
+++ b/apps/user_ldap/l10n/gl.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Non foi posíbel detectar o DN base, introdúzao manualmente.",
"{nthServer}. Server" : "{nthServer}. Servidor",
"No object found in the given Base DN. Please revise." : "Non se atopou o obxecto no DN base solicitado. Revíseo.",
+ "More than 1.000 directory entries available." : "Dispoñíbeis máis de 1.000 entradas de directorio.",
" entries available within the provided Base DN" : "entradas dispoñíbeis no DN base fornecido",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Produciuse un erro. Comprobe o DN base, os axustes de conexión e as credenciais.",
"Do you really want to delete the current Server Configuration?" : "Confirma que quere eliminar a configuración actual do servidor?",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Editar a consulta LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica que grupos LDAP teñen acceso á instancia %s.",
- "Test Filter" : "Filtro de probas",
"Verify settings and count groups" : "Verificar os axustes e contar os grupos",
"When logging in, %s will find the user based on the following attributes:" : "Ao acceder, %s atopa o usuario en función dos seguintes atributos:",
"LDAP / AD Username:" : "Nome de usuario LDAP / AD:",
diff --git a/apps/user_ldap/l10n/hu_HU.js b/apps/user_ldap/l10n/hu_HU.js
index d6fe2fde2d8..6d3ad2600f0 100644
--- a/apps/user_ldap/l10n/hu_HU.js
+++ b/apps/user_ldap/l10n/hu_HU.js
@@ -30,7 +30,6 @@ OC.L10N.register(
"Help" : "Súgó",
"Groups meeting these criteria are available in %s:" : "A %s szolgáltatás azon csoportok létezését veszi figyelembe, amik a következő feltételeknek felelnek meg:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "A szűrő meghatározza, hogy mely LDAP csoportok lesznek jogosultak %s elérésére.",
- "Test Filter" : "Test szűrő ",
"Other Attributes:" : "Más attribútumok:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\"",
"1. Server" : "1. Kiszolgáló",
diff --git a/apps/user_ldap/l10n/hu_HU.json b/apps/user_ldap/l10n/hu_HU.json
index d793887c0b2..19552648b73 100644
--- a/apps/user_ldap/l10n/hu_HU.json
+++ b/apps/user_ldap/l10n/hu_HU.json
@@ -28,7 +28,6 @@
"Help" : "Súgó",
"Groups meeting these criteria are available in %s:" : "A %s szolgáltatás azon csoportok létezését veszi figyelembe, amik a következő feltételeknek felelnek meg:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "A szűrő meghatározza, hogy mely LDAP csoportok lesznek jogosultak %s elérésére.",
- "Test Filter" : "Test szűrő ",
"Other Attributes:" : "Más attribútumok:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\"",
"1. Server" : "1. Kiszolgáló",
diff --git a/apps/user_ldap/l10n/id.js b/apps/user_ldap/l10n/id.js
index 255ee3ee1c8..23170f99864 100644
--- a/apps/user_ldap/l10n/id.js
+++ b/apps/user_ldap/l10n/id.js
@@ -10,15 +10,35 @@ OC.L10N.register(
"No configuration specified" : "Tidak ada konfigurasi yang ditetapkan",
"No data specified" : "Tidak ada data yang ditetapkan",
" Could not set configuration %s" : "Tidak dapat menyetel konfigurasi %s",
+ "Action does not exist" : "Tidak ada tindakan",
"Configuration incorrect" : "Konfigurasi salah",
"Configuration incomplete" : "Konfigurasi tidak lengkap",
"Configuration OK" : "Konfigurasi Oke",
"Select groups" : "Pilih grup",
"Select object classes" : "Pilik kelas obyek",
+ "Please check the credentials, they seem to be wrong." : "Mohon periksa kredensial, nampaknya ada kesalahan.",
+ "Please specify the port, it could not be auto-detected." : "Mohon tentukan port karena tidak terdeteksi secara otomatis.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN tidak terdeteksi secara otomatis, mohon periksa kembali kredensial, host dan port.",
+ "Could not detect Base DN, please enter it manually." : "Tidak dapat mendeteksi Base DN, mohon masukkan secara manual.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "Tidak ada obyek ditemukan di Base DN yang diberikan. Mohon diperiksa kembali.",
+ "More than 1.000 directory entries available." : "Lebih dari 1.000 entri direktori yang tersedia.",
+ " entries available within the provided Base DN" : "entri tersedia didalam Base DN yang diberikan",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Terjadi kesalahan. Silakan periksa Base DN, serta pengaturan sambungan dan kredensial.",
"Do you really want to delete the current Server Configuration?" : "Apakan Anda ingin menghapus Konfigurasi Server saat ini?",
"Confirm Deletion" : "Konfirmasi Penghapusan",
+ "Mappings cleared successfully!" : "Pemetaan berhasil dibersihkan!",
+ "Error while clearing the mappings." : "Kesalahan saat membersihkan pemetaan.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Menyimpan gagal. Mohon pastikan basis data di Operasi. Muat Ulang sebelum melanjutkan.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Beralih modus akan mengaktifkan kueri LDAP. Hal ini memerlukan beberapa saat tergantung pada ukuran LDAP Anda. Apakah Anda tetap ingin beralih modus?",
+ "Mode switch" : "Beralih modus",
"Select attributes" : "Pilih atribut",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Pengguna tidak ditemukan. Mohon periksa atribut login dan nama pengguna Anda. Penyaring efektif (salin dan tempel berikut untuk validasi baris perintah):\n<br/>",
+ "User found and settings verified." : "Pengguna ditemukan dan pengaturan terverifikasi.",
+ "An unspecified error occurred. Please check the settings and the log." : "Terjadi kesalahan yang tidak disebutkan. Mohon periksa pengaturan dan log.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Penyaring pencarian tidak sah, kemungkinan karena masalah sintaks seperti jumlah kurung buka dan tutup tidak sama. Mohon diperiksa.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Terjadi kesalahan sambungan ke LDAP / AD, mohon periksa host, port dan kredensial.",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Kotak grup telah diaktifkan, karena server LDAP / AD tidak mendukung keanggotaan.",
"_%s group found_::_%s groups found_" : ["%s grup ditemukan"],
"_%s user found_::_%s users found_" : ["%s pengguna ditemukan"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Tidak mendeteksi atribut nama tampilan pengguna. Silakan menentukannya sendiri di pengaturan ldap lanjutan.",
@@ -26,11 +46,20 @@ OC.L10N.register(
"Invalid Host" : "Host tidak sah",
"Server" : "Server",
"Users" : "Pengguna",
+ "Login Attributes" : "Atribut Login",
"Groups" : "Grup",
"Test Configuration" : "Uji Konfigurasi",
"Help" : "Bantuan",
"Groups meeting these criteria are available in %s:" : "Grup memenuhi kriteria ini tersedia di %s:",
- "Test Filter" : "Uji Penyaring",
+ "Only these object classes:" : "Hanya kelas obyek berikut:",
+ "Only from these groups:" : "Hanya dari grup berikut:",
+ "Search groups" : "Pencarian grup",
+ "Available groups" : "Grup tersedia",
+ "Selected groups" : "Grup terpilih",
+ "Edit LDAP Query" : "Sunting Kueri LDAP",
+ "LDAP Filter:" : "Penyaring LDAP:",
+ "LDAP / AD Username:" : "Nama pengguna LDAP / AD:",
+ "LDAP / AD Email Address:" : "Alamat Email LDAP / AD:",
"Other Attributes:" : "Atribut Lain:",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
diff --git a/apps/user_ldap/l10n/id.json b/apps/user_ldap/l10n/id.json
index bbff7d43f0b..fa0a0a7be20 100644
--- a/apps/user_ldap/l10n/id.json
+++ b/apps/user_ldap/l10n/id.json
@@ -8,15 +8,35 @@
"No configuration specified" : "Tidak ada konfigurasi yang ditetapkan",
"No data specified" : "Tidak ada data yang ditetapkan",
" Could not set configuration %s" : "Tidak dapat menyetel konfigurasi %s",
+ "Action does not exist" : "Tidak ada tindakan",
"Configuration incorrect" : "Konfigurasi salah",
"Configuration incomplete" : "Konfigurasi tidak lengkap",
"Configuration OK" : "Konfigurasi Oke",
"Select groups" : "Pilih grup",
"Select object classes" : "Pilik kelas obyek",
+ "Please check the credentials, they seem to be wrong." : "Mohon periksa kredensial, nampaknya ada kesalahan.",
+ "Please specify the port, it could not be auto-detected." : "Mohon tentukan port karena tidak terdeteksi secara otomatis.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN tidak terdeteksi secara otomatis, mohon periksa kembali kredensial, host dan port.",
+ "Could not detect Base DN, please enter it manually." : "Tidak dapat mendeteksi Base DN, mohon masukkan secara manual.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "Tidak ada obyek ditemukan di Base DN yang diberikan. Mohon diperiksa kembali.",
+ "More than 1.000 directory entries available." : "Lebih dari 1.000 entri direktori yang tersedia.",
+ " entries available within the provided Base DN" : "entri tersedia didalam Base DN yang diberikan",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Terjadi kesalahan. Silakan periksa Base DN, serta pengaturan sambungan dan kredensial.",
"Do you really want to delete the current Server Configuration?" : "Apakan Anda ingin menghapus Konfigurasi Server saat ini?",
"Confirm Deletion" : "Konfirmasi Penghapusan",
+ "Mappings cleared successfully!" : "Pemetaan berhasil dibersihkan!",
+ "Error while clearing the mappings." : "Kesalahan saat membersihkan pemetaan.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Menyimpan gagal. Mohon pastikan basis data di Operasi. Muat Ulang sebelum melanjutkan.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Beralih modus akan mengaktifkan kueri LDAP. Hal ini memerlukan beberapa saat tergantung pada ukuran LDAP Anda. Apakah Anda tetap ingin beralih modus?",
+ "Mode switch" : "Beralih modus",
"Select attributes" : "Pilih atribut",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Pengguna tidak ditemukan. Mohon periksa atribut login dan nama pengguna Anda. Penyaring efektif (salin dan tempel berikut untuk validasi baris perintah):\n<br/>",
+ "User found and settings verified." : "Pengguna ditemukan dan pengaturan terverifikasi.",
+ "An unspecified error occurred. Please check the settings and the log." : "Terjadi kesalahan yang tidak disebutkan. Mohon periksa pengaturan dan log.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Penyaring pencarian tidak sah, kemungkinan karena masalah sintaks seperti jumlah kurung buka dan tutup tidak sama. Mohon diperiksa.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Terjadi kesalahan sambungan ke LDAP / AD, mohon periksa host, port dan kredensial.",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Kotak grup telah diaktifkan, karena server LDAP / AD tidak mendukung keanggotaan.",
"_%s group found_::_%s groups found_" : ["%s grup ditemukan"],
"_%s user found_::_%s users found_" : ["%s pengguna ditemukan"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Tidak mendeteksi atribut nama tampilan pengguna. Silakan menentukannya sendiri di pengaturan ldap lanjutan.",
@@ -24,11 +44,20 @@
"Invalid Host" : "Host tidak sah",
"Server" : "Server",
"Users" : "Pengguna",
+ "Login Attributes" : "Atribut Login",
"Groups" : "Grup",
"Test Configuration" : "Uji Konfigurasi",
"Help" : "Bantuan",
"Groups meeting these criteria are available in %s:" : "Grup memenuhi kriteria ini tersedia di %s:",
- "Test Filter" : "Uji Penyaring",
+ "Only these object classes:" : "Hanya kelas obyek berikut:",
+ "Only from these groups:" : "Hanya dari grup berikut:",
+ "Search groups" : "Pencarian grup",
+ "Available groups" : "Grup tersedia",
+ "Selected groups" : "Grup terpilih",
+ "Edit LDAP Query" : "Sunting Kueri LDAP",
+ "LDAP Filter:" : "Penyaring LDAP:",
+ "LDAP / AD Username:" : "Nama pengguna LDAP / AD:",
+ "LDAP / AD Email Address:" : "Alamat Email LDAP / AD:",
"Other Attributes:" : "Atribut Lain:",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
diff --git a/apps/user_ldap/l10n/is.js b/apps/user_ldap/l10n/is.js
index 1532ec7baff..b880fd3b059 100644
--- a/apps/user_ldap/l10n/is.js
+++ b/apps/user_ldap/l10n/is.js
@@ -9,4 +9,4 @@ OC.L10N.register(
"Password" : "Lykilorð",
"Advanced" : "Ítarlegt"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/apps/user_ldap/l10n/is.json b/apps/user_ldap/l10n/is.json
index c3ae29c3735..f9c82ebf49f 100644
--- a/apps/user_ldap/l10n/is.json
+++ b/apps/user_ldap/l10n/is.json
@@ -6,5 +6,5 @@
"Host" : "Netþjónn",
"Password" : "Lykilorð",
"Advanced" : "Ítarlegt"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js
index 9713b25bc3b..342808994e4 100644
--- a/apps/user_ldap/l10n/it.js
+++ b/apps/user_ldap/l10n/it.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Impossibile rilevare il DN base, digitalo manualmente.",
"{nthServer}. Server" : "{nthServer}. server",
"No object found in the given Base DN. Please revise." : "Nessun oggetto trovato nel DN base specificato. Controlla.",
+ "More than 1.000 directory entries available." : "Più di 1.000 cartelle disponibili.",
" entries available within the provided Base DN" : "voci disponibili all'interno del DN base",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Si è verificato un errore. Controlla il DN base, così come le impostazioni di connessione e le credenziali.",
"Do you really want to delete the current Server Configuration?" : "Vuoi davvero eliminare la configurazione attuale del server?",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Modifica query LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Il filtro specifica quali gruppi LDAP devono avere accesso all'istanza %s.",
- "Test Filter" : "Prova filtro",
"Verify settings and count groups" : "Verifica le impostazioni e conta i gruppi",
"When logging in, %s will find the user based on the following attributes:" : "Quando accedi, %s troverà l'utente sulla base dei seguenti attributi:",
"LDAP / AD Username:" : "Nome utente LDAP / AD:",
diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json
index e88088f3b79..42ab5158a28 100644
--- a/apps/user_ldap/l10n/it.json
+++ b/apps/user_ldap/l10n/it.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Impossibile rilevare il DN base, digitalo manualmente.",
"{nthServer}. Server" : "{nthServer}. server",
"No object found in the given Base DN. Please revise." : "Nessun oggetto trovato nel DN base specificato. Controlla.",
+ "More than 1.000 directory entries available." : "Più di 1.000 cartelle disponibili.",
" entries available within the provided Base DN" : "voci disponibili all'interno del DN base",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Si è verificato un errore. Controlla il DN base, così come le impostazioni di connessione e le credenziali.",
"Do you really want to delete the current Server Configuration?" : "Vuoi davvero eliminare la configurazione attuale del server?",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Modifica query LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Il filtro specifica quali gruppi LDAP devono avere accesso all'istanza %s.",
- "Test Filter" : "Prova filtro",
"Verify settings and count groups" : "Verifica le impostazioni e conta i gruppi",
"When logging in, %s will find the user based on the following attributes:" : "Quando accedi, %s troverà l'utente sulla base dei seguenti attributi:",
"LDAP / AD Username:" : "Nome utente LDAP / AD:",
diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js
index 6dda509053a..60c8fce22f6 100644
--- a/apps/user_ldap/l10n/ja.js
+++ b/apps/user_ldap/l10n/ja.js
@@ -10,11 +10,13 @@ OC.L10N.register(
"No configuration specified" : "構成が指定されていません",
"No data specified" : "データが指定されていません",
" Could not set configuration %s" : "構成 %s を設定できませんでした",
+ "Action does not exist" : "アクションが存在しません",
"Configuration incorrect" : "設定に誤りがあります",
"Configuration incomplete" : "設定が不完全です",
"Configuration OK" : "設定OK",
"Select groups" : "グループを選択",
"Select object classes" : "オブジェクトクラスを選択",
+ "Please specify the port, it could not be auto-detected." : "ポートを指定してください。自動認識できません。",
"{nthServer}. Server" : "{nthServer}. サーバー",
"Do you really want to delete the current Server Configuration?" : "現在のサーバー設定を本当に削除してもよろしいですか?",
"Confirm Deletion" : "削除の確認",
@@ -26,22 +28,27 @@ OC.L10N.register(
"Invalid Host" : "無効なホスト",
"Server" : "サーバー",
"Users" : "ユーザー",
+ "Login Attributes" : "ログイン属性",
"Groups" : "グループ",
"Test Configuration" : "設定をテスト",
"Help" : "ヘルプ",
"Groups meeting these criteria are available in %s:" : "これらの基準を満たすグループが %s で利用可能:",
+ "Search groups" : "グループを検索",
+ "Available groups" : "利用可能なグループ",
+ "Selected groups" : "選択されたグループ",
"LDAP Filter:" : "LDAP フィルタ:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "フィルターは、どの LDAP グループが %s にアクセスするかを指定します。",
- "Test Filter" : "フィルターをテスト",
- "LDAP / AD Username:" : "LDAP / AD ユーザ名:",
+ "LDAP / AD Username:" : "LDAP/ADユーザー名:",
"LDAP / AD Email Address:" : "LDAP / AD メールアドレス:",
"Other Attributes:" : "その他の属性:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "ログイン実行時に適用するフィルターを定義します。%%uid にはログイン操作におけるユーザー名が入ります。例: \"uid=%%uid\"",
+ "Verify settings" : "設定のチェック",
"1. Server" : "1. Server",
"%s. Server:" : "%s. サーバー:",
"Host" : "ホスト",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。",
"Port" : "ポート",
+ "Detect Port" : "ポートの検出",
"User DN" : "ユーザーDN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "どのクライアントユーザーのDNで接続するか指定します。例えば uid=agent,dc=example,dc=com になります。匿名アクセスの場合、DNとパスワードは空のままにしてください。",
"Password" : "パスワード",
diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json
index d616a84e457..9b8433c18e3 100644
--- a/apps/user_ldap/l10n/ja.json
+++ b/apps/user_ldap/l10n/ja.json
@@ -8,11 +8,13 @@
"No configuration specified" : "構成が指定されていません",
"No data specified" : "データが指定されていません",
" Could not set configuration %s" : "構成 %s を設定できませんでした",
+ "Action does not exist" : "アクションが存在しません",
"Configuration incorrect" : "設定に誤りがあります",
"Configuration incomplete" : "設定が不完全です",
"Configuration OK" : "設定OK",
"Select groups" : "グループを選択",
"Select object classes" : "オブジェクトクラスを選択",
+ "Please specify the port, it could not be auto-detected." : "ポートを指定してください。自動認識できません。",
"{nthServer}. Server" : "{nthServer}. サーバー",
"Do you really want to delete the current Server Configuration?" : "現在のサーバー設定を本当に削除してもよろしいですか?",
"Confirm Deletion" : "削除の確認",
@@ -24,22 +26,27 @@
"Invalid Host" : "無効なホスト",
"Server" : "サーバー",
"Users" : "ユーザー",
+ "Login Attributes" : "ログイン属性",
"Groups" : "グループ",
"Test Configuration" : "設定をテスト",
"Help" : "ヘルプ",
"Groups meeting these criteria are available in %s:" : "これらの基準を満たすグループが %s で利用可能:",
+ "Search groups" : "グループを検索",
+ "Available groups" : "利用可能なグループ",
+ "Selected groups" : "選択されたグループ",
"LDAP Filter:" : "LDAP フィルタ:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "フィルターは、どの LDAP グループが %s にアクセスするかを指定します。",
- "Test Filter" : "フィルターをテスト",
- "LDAP / AD Username:" : "LDAP / AD ユーザ名:",
+ "LDAP / AD Username:" : "LDAP/ADユーザー名:",
"LDAP / AD Email Address:" : "LDAP / AD メールアドレス:",
"Other Attributes:" : "その他の属性:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "ログイン実行時に適用するフィルターを定義します。%%uid にはログイン操作におけるユーザー名が入ります。例: \"uid=%%uid\"",
+ "Verify settings" : "設定のチェック",
"1. Server" : "1. Server",
"%s. Server:" : "%s. サーバー:",
"Host" : "ホスト",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。",
"Port" : "ポート",
+ "Detect Port" : "ポートの検出",
"User DN" : "ユーザーDN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "どのクライアントユーザーのDNで接続するか指定します。例えば uid=agent,dc=example,dc=com になります。匿名アクセスの場合、DNとパスワードは空のままにしてください。",
"Password" : "パスワード",
diff --git a/apps/user_ldap/l10n/ko.js b/apps/user_ldap/l10n/ko.js
index 94be236ab63..dab98051611 100644
--- a/apps/user_ldap/l10n/ko.js
+++ b/apps/user_ldap/l10n/ko.js
@@ -10,15 +10,38 @@ OC.L10N.register(
"No configuration specified" : "설정이 지정되지 않음",
"No data specified" : "데이터가 지정되지 않음",
" Could not set configuration %s" : " 설정 %s을(를) 지정할 수 없음",
+ "Action does not exist" : "동작이 존재하지 않음",
"Configuration incorrect" : "설정 올바르지 않음",
"Configuration incomplete" : "설정 불완전함",
"Configuration OK" : "설정 올바름",
"Select groups" : "그룹 선택",
"Select object classes" : "객체 클래스 선택",
+ "Please check the credentials, they seem to be wrong." : "인증 정보가 잘못된 것 같습니다. 다시 확인해 주십시오.",
+ "Please specify the port, it could not be auto-detected." : "포트를 자동으로 감지할 수 없습니다. 포트를 입력해 주십시오.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "기본 DN을 자동으로 감지할 수 없습니다. 인증 정보, 호스트, 포트를 다시 확인하십시오.",
+ "Could not detect Base DN, please enter it manually." : "기본 DN을 자동으로 감지할 수 없습니다. 직접 입력하십시오.",
"{nthServer}. Server" : "{nthServer}. 서버",
+ "No object found in the given Base DN. Please revise." : "입력한 기본 DN에서 객체를 찾을 수 없습니다. 다시 입력하십시오.",
+ "More than 1.000 directory entries available." : "디렉터리 항목이 1,000개 이상 존재합니다.",
+ " entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "오류가 발생하였습니다. 기본 DN, 연결 설정, 인증 정보를 확인하십시오.",
"Do you really want to delete the current Server Configuration?" : "현재 서버 설정을 지우시겠습니까?",
"Confirm Deletion" : "삭제 확인",
+ "Mappings cleared successfully!" : "매핑을 삭제하였습니다!",
+ "Error while clearing the mappings." : "매핑을 삭제하는 중 오류가 발생하였습니다.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "저장할 수 없습니다. 데이터베이스 상태를 확인하십시오. 계속하기 전에 새로 고치십시오.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "모드를 전환하면 자동 LDAP 쿼리를 활성화합니다. LDAP 크기에 따라서 시간이 걸릴 수도 있습니다. 모드를 전환하시겠습니까?",
+ "Mode switch" : "모드 전환",
"Select attributes" : "속성 선택",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "사용자를 찾을 수 없습니다. 로그인 속성과 사용자 이름을 확인하십시오. 적용되는 필터(명령행에 붙여넣어 검증 가능):",
+ "User found and settings verified." : "사용자를 찾았고 설정을 확인하였습니다.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "설정을 확인하였으나 한 명의 사용자만 찾았습니다. 첫 사용자만 로그인할 수 있습니다. 더 좁은 필터를 지정하십시오.",
+ "An unspecified error occurred. Please check the settings and the log." : "알 수 없는 오류가 발생하였습니다. 설정과 로그를 확인하십시오.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "검색 필터가 잘못되었습니다. 열고 닫는 괄호 쌍이 맞지 않을 수도 있습니다. 확인 후 수정하십시오.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "LDAP/AD 연결 오류가 발생하였습니다. 호스트, 포트, 인증 정보를 확인하십시오.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "%uid 자리 비움자가 존재하지 않습니다. LDAP/AD에 조회할 때 로그인 사용자 이름으로 대체됩니다.",
+ "Please provide a login name to test against" : "테스트할 로그인 사용자 이름을 입력하십시오",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "LDAP/AD 서버에서 memberOf를 지원하지 않아서 그룹 상자를 비활성화합니다.",
"_%s group found_::_%s groups found_" : ["그룹 %s개 찾음"],
"_%s user found_::_%s users found_" : ["사용자 %s명 찾음"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "사용자 표시 이름을 결정할 수 없습니다. 고급 LDAP 설정에서 직접 입력하십시오.",
@@ -26,29 +49,49 @@ OC.L10N.register(
"Invalid Host" : "잘못된 호스트",
"Server" : "서버",
"Users" : "사용자",
+ "Login Attributes" : "로그인 속성",
"Groups" : "그룹",
"Test Configuration" : "설정 시험",
"Help" : "도움말",
"Groups meeting these criteria are available in %s:" : "이 조건을 만족하는 그룹은 %s에 있습니다:",
+ "Only these object classes:" : "다음 객체 클래스만:",
+ "Only from these groups:" : "다음 그룹만:",
+ "Search groups" : "그룹 검색",
+ "Available groups" : "사용 가능한 그룹",
+ "Selected groups" : "선택한 그룹",
+ "Edit LDAP Query" : "LDAP 쿼리 편집",
+ "LDAP Filter:" : "LDAP 필터:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.",
- "Test Filter" : "필터 시험",
+ "Verify settings and count groups" : "설정을 확인하고 그룹 수 계산",
+ "When logging in, %s will find the user based on the following attributes:" : "로그인할 때 %s에서 다음 속성을 기반으로 사용자를 찾습니다:",
+ "LDAP / AD Username:" : "LDAP/AD 사용자 이름:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "uid 또는 samaccountname에 해당하는 LDAP/AD 사용자 이름으로 로그인을 허용합니다. 속성은 자동으로 감지됩니다.",
+ "LDAP / AD Email Address:" : "LDAP/AD 이메일 주소:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "이메일 속성으로 로그인을 허용합니다. Mail 및 mailPrimaryAddress를 허용합니다.",
"Other Attributes:" : "기타 속성:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "로그인을 시도할 때 적용할 필터를 입력하십시오. %%uid는 로그인 동작의 사용자 이름으로 대체됩니다. 예: \"uid=%%uid\"",
+ "Test Loginname" : "로그인 이름 테스트",
+ "Verify settings" : "설정 검사",
"1. Server" : "1. 서버",
"%s. Server:" : "%s. 서버:",
"Host" : "호스트",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL을 사용하지 않으면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.",
"Port" : "포트",
+ "Detect Port" : "포트 감지",
"User DN" : "사용자 DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오.",
"Password" : "암호",
"For anonymous access, leave DN and Password empty." : "익명 접근을 허용하려면 DN과 암호를 비워 두십시오.",
"One Base DN per line" : "기본 DN을 한 줄에 하나씩 입력하십시오",
"You can specify Base DN for users and groups in the Advanced tab" : "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.",
+ "Detect Base DN" : "기본 DN 감지",
+ "Test Base DN" : "기본 DN 시험",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "자동 LDAP 요청을 줄입니다. 대형 사이트에서 유용하지만 LDAP에 관한 지식이 필요합니다.",
"Manually enter LDAP filters (recommended for large directories)" : "수동으로 LDAP 필터 입력(대형 사이트에 추천)",
"Limit %s access to users meeting these criteria:" : "다음 조건을 만족하는 사용자만 %s 접근 허용:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "일반적인 객체 클래스는 organizationalPerson, person, user, inetOrgPerson입니다. 어떤 객체 클래스를 사용해야 할 지 모르겠으면 디렉터리 서비스 관리자에게 연락하십시오.",
"The filter specifies which LDAP users shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.",
+ "Verify settings and count users" : "설정을 확인하고 사용자 수 계산",
"Saving" : "저장 중",
"Back" : "뒤로",
"Continue" : "계속",
@@ -102,6 +145,7 @@ OC.L10N.register(
"UUID Attribute for Users:" : "사용자 UUID 속성:",
"UUID Attribute for Groups:" : "그룹 UUID 속성:",
"Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑",
+ "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오.",
"Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기",
"Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기"
},
diff --git a/apps/user_ldap/l10n/ko.json b/apps/user_ldap/l10n/ko.json
index d426febafcd..ef04a2c8d93 100644
--- a/apps/user_ldap/l10n/ko.json
+++ b/apps/user_ldap/l10n/ko.json
@@ -8,15 +8,38 @@
"No configuration specified" : "설정이 지정되지 않음",
"No data specified" : "데이터가 지정되지 않음",
" Could not set configuration %s" : " 설정 %s을(를) 지정할 수 없음",
+ "Action does not exist" : "동작이 존재하지 않음",
"Configuration incorrect" : "설정 올바르지 않음",
"Configuration incomplete" : "설정 불완전함",
"Configuration OK" : "설정 올바름",
"Select groups" : "그룹 선택",
"Select object classes" : "객체 클래스 선택",
+ "Please check the credentials, they seem to be wrong." : "인증 정보가 잘못된 것 같습니다. 다시 확인해 주십시오.",
+ "Please specify the port, it could not be auto-detected." : "포트를 자동으로 감지할 수 없습니다. 포트를 입력해 주십시오.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "기본 DN을 자동으로 감지할 수 없습니다. 인증 정보, 호스트, 포트를 다시 확인하십시오.",
+ "Could not detect Base DN, please enter it manually." : "기본 DN을 자동으로 감지할 수 없습니다. 직접 입력하십시오.",
"{nthServer}. Server" : "{nthServer}. 서버",
+ "No object found in the given Base DN. Please revise." : "입력한 기본 DN에서 객체를 찾을 수 없습니다. 다시 입력하십시오.",
+ "More than 1.000 directory entries available." : "디렉터리 항목이 1,000개 이상 존재합니다.",
+ " entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "오류가 발생하였습니다. 기본 DN, 연결 설정, 인증 정보를 확인하십시오.",
"Do you really want to delete the current Server Configuration?" : "현재 서버 설정을 지우시겠습니까?",
"Confirm Deletion" : "삭제 확인",
+ "Mappings cleared successfully!" : "매핑을 삭제하였습니다!",
+ "Error while clearing the mappings." : "매핑을 삭제하는 중 오류가 발생하였습니다.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "저장할 수 없습니다. 데이터베이스 상태를 확인하십시오. 계속하기 전에 새로 고치십시오.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "모드를 전환하면 자동 LDAP 쿼리를 활성화합니다. LDAP 크기에 따라서 시간이 걸릴 수도 있습니다. 모드를 전환하시겠습니까?",
+ "Mode switch" : "모드 전환",
"Select attributes" : "속성 선택",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "사용자를 찾을 수 없습니다. 로그인 속성과 사용자 이름을 확인하십시오. 적용되는 필터(명령행에 붙여넣어 검증 가능):",
+ "User found and settings verified." : "사용자를 찾았고 설정을 확인하였습니다.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "설정을 확인하였으나 한 명의 사용자만 찾았습니다. 첫 사용자만 로그인할 수 있습니다. 더 좁은 필터를 지정하십시오.",
+ "An unspecified error occurred. Please check the settings and the log." : "알 수 없는 오류가 발생하였습니다. 설정과 로그를 확인하십시오.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "검색 필터가 잘못되었습니다. 열고 닫는 괄호 쌍이 맞지 않을 수도 있습니다. 확인 후 수정하십시오.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "LDAP/AD 연결 오류가 발생하였습니다. 호스트, 포트, 인증 정보를 확인하십시오.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "%uid 자리 비움자가 존재하지 않습니다. LDAP/AD에 조회할 때 로그인 사용자 이름으로 대체됩니다.",
+ "Please provide a login name to test against" : "테스트할 로그인 사용자 이름을 입력하십시오",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "LDAP/AD 서버에서 memberOf를 지원하지 않아서 그룹 상자를 비활성화합니다.",
"_%s group found_::_%s groups found_" : ["그룹 %s개 찾음"],
"_%s user found_::_%s users found_" : ["사용자 %s명 찾음"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "사용자 표시 이름을 결정할 수 없습니다. 고급 LDAP 설정에서 직접 입력하십시오.",
@@ -24,29 +47,49 @@
"Invalid Host" : "잘못된 호스트",
"Server" : "서버",
"Users" : "사용자",
+ "Login Attributes" : "로그인 속성",
"Groups" : "그룹",
"Test Configuration" : "설정 시험",
"Help" : "도움말",
"Groups meeting these criteria are available in %s:" : "이 조건을 만족하는 그룹은 %s에 있습니다:",
+ "Only these object classes:" : "다음 객체 클래스만:",
+ "Only from these groups:" : "다음 그룹만:",
+ "Search groups" : "그룹 검색",
+ "Available groups" : "사용 가능한 그룹",
+ "Selected groups" : "선택한 그룹",
+ "Edit LDAP Query" : "LDAP 쿼리 편집",
+ "LDAP Filter:" : "LDAP 필터:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.",
- "Test Filter" : "필터 시험",
+ "Verify settings and count groups" : "설정을 확인하고 그룹 수 계산",
+ "When logging in, %s will find the user based on the following attributes:" : "로그인할 때 %s에서 다음 속성을 기반으로 사용자를 찾습니다:",
+ "LDAP / AD Username:" : "LDAP/AD 사용자 이름:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "uid 또는 samaccountname에 해당하는 LDAP/AD 사용자 이름으로 로그인을 허용합니다. 속성은 자동으로 감지됩니다.",
+ "LDAP / AD Email Address:" : "LDAP/AD 이메일 주소:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "이메일 속성으로 로그인을 허용합니다. Mail 및 mailPrimaryAddress를 허용합니다.",
"Other Attributes:" : "기타 속성:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "로그인을 시도할 때 적용할 필터를 입력하십시오. %%uid는 로그인 동작의 사용자 이름으로 대체됩니다. 예: \"uid=%%uid\"",
+ "Test Loginname" : "로그인 이름 테스트",
+ "Verify settings" : "설정 검사",
"1. Server" : "1. 서버",
"%s. Server:" : "%s. 서버:",
"Host" : "호스트",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "SSL을 사용하지 않으면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.",
"Port" : "포트",
+ "Detect Port" : "포트 감지",
"User DN" : "사용자 DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오.",
"Password" : "암호",
"For anonymous access, leave DN and Password empty." : "익명 접근을 허용하려면 DN과 암호를 비워 두십시오.",
"One Base DN per line" : "기본 DN을 한 줄에 하나씩 입력하십시오",
"You can specify Base DN for users and groups in the Advanced tab" : "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.",
+ "Detect Base DN" : "기본 DN 감지",
+ "Test Base DN" : "기본 DN 시험",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "자동 LDAP 요청을 줄입니다. 대형 사이트에서 유용하지만 LDAP에 관한 지식이 필요합니다.",
"Manually enter LDAP filters (recommended for large directories)" : "수동으로 LDAP 필터 입력(대형 사이트에 추천)",
"Limit %s access to users meeting these criteria:" : "다음 조건을 만족하는 사용자만 %s 접근 허용:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "일반적인 객체 클래스는 organizationalPerson, person, user, inetOrgPerson입니다. 어떤 객체 클래스를 사용해야 할 지 모르겠으면 디렉터리 서비스 관리자에게 연락하십시오.",
"The filter specifies which LDAP users shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.",
+ "Verify settings and count users" : "설정을 확인하고 사용자 수 계산",
"Saving" : "저장 중",
"Back" : "뒤로",
"Continue" : "계속",
@@ -100,6 +143,7 @@
"UUID Attribute for Users:" : "사용자 UUID 속성:",
"UUID Attribute for Groups:" : "그룹 UUID 속성:",
"Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑",
+ "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오.",
"Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기",
"Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/user_ldap/l10n/nb_NO.js b/apps/user_ldap/l10n/nb_NO.js
index c28947a62fb..146efa56dfc 100644
--- a/apps/user_ldap/l10n/nb_NO.js
+++ b/apps/user_ldap/l10n/nb_NO.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Help" : "Hjelp",
"Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-grupper som skal ha tilgang til %s-instansen.",
- "Test Filter" : "Test filter",
"Other Attributes:" : "Andre attributter:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer filteret som skal brukes når noen prøver å logge inn. %%uid erstatter brukernavnet i innloggingen. Eksempel: \"uid=%%uid\"",
"1. Server" : "1. server",
diff --git a/apps/user_ldap/l10n/nb_NO.json b/apps/user_ldap/l10n/nb_NO.json
index cd399a4eb62..82950c884cb 100644
--- a/apps/user_ldap/l10n/nb_NO.json
+++ b/apps/user_ldap/l10n/nb_NO.json
@@ -29,7 +29,6 @@
"Help" : "Hjelp",
"Groups meeting these criteria are available in %s:" : "Grupper som tilfredsstiller disse kriteriene er tilgjengelige i %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret spesifiserer hvilke LDAP-grupper som skal ha tilgang til %s-instansen.",
- "Test Filter" : "Test filter",
"Other Attributes:" : "Andre attributter:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer filteret som skal brukes når noen prøver å logge inn. %%uid erstatter brukernavnet i innloggingen. Eksempel: \"uid=%%uid\"",
"1. Server" : "1. server",
diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js
index 59b4fcef9a2..4600b251564 100644
--- a/apps/user_ldap/l10n/nl.js
+++ b/apps/user_ldap/l10n/nl.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Kon basis DN niet vaststellen, voer de gegevens handmatig in.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "Geen object gevonden in de basis DN. Review instellingen.",
+ "More than 1.000 directory entries available." : "Meer dan 1000 directory namen beschikbaar.",
" entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Er trad een fout op. Controleer de Basis DN en de verbindingsinstellingen en inloggegevens.",
"Do you really want to delete the current Server Configuration?" : "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Bewerken LDAP bevraging",
"LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Dit filter geeft aan welke LDAP groepen toegang hebben tot %s.",
- "Test Filter" : "Testfilter",
"Verify settings and count groups" : "Verifiëren instellingen en tel groepen",
"When logging in, %s will find the user based on the following attributes:" : "Bij inloggen vindt %s de gebruiker gebaseerd op de volgende attributen:",
"LDAP / AD Username:" : "LDAP / AD gebruikersnaam:",
diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json
index e36a672eacf..63d8720555d 100644
--- a/apps/user_ldap/l10n/nl.json
+++ b/apps/user_ldap/l10n/nl.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Kon basis DN niet vaststellen, voer de gegevens handmatig in.",
"{nthServer}. Server" : "{nthServer}. Server",
"No object found in the given Base DN. Please revise." : "Geen object gevonden in de basis DN. Review instellingen.",
+ "More than 1.000 directory entries available." : "Meer dan 1000 directory namen beschikbaar.",
" entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Er trad een fout op. Controleer de Basis DN en de verbindingsinstellingen en inloggegevens.",
"Do you really want to delete the current Server Configuration?" : "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Bewerken LDAP bevraging",
"LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Dit filter geeft aan welke LDAP groepen toegang hebben tot %s.",
- "Test Filter" : "Testfilter",
"Verify settings and count groups" : "Verifiëren instellingen en tel groepen",
"When logging in, %s will find the user based on the following attributes:" : "Bij inloggen vindt %s de gebruiker gebaseerd op de volgende attributen:",
"LDAP / AD Username:" : "LDAP / AD gebruikersnaam:",
diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js
index 1c8a4d17e7b..f0a6af6f6b8 100644
--- a/apps/user_ldap/l10n/pl.js
+++ b/apps/user_ldap/l10n/pl.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Help" : "Pomoc",
"Groups meeting these criteria are available in %s:" : "Przyłączenie do grupy z tymi ustawieniami dostępne jest w %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr określa, które grupy LDAP powinny mieć dostęp do instancji %s.",
- "Test Filter" : "Testuj filtr",
"Other Attributes:" : "Inne atrybuty:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Określa jakiego filtru użyć podczas próby zalogowania. %%uid zastępuje nazwę użytkownika w procesie logowania. Przykład: \"uid=%%uid\"",
"1. Server" : "1. Serwer",
diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json
index 28fba352023..ed5beeefaba 100644
--- a/apps/user_ldap/l10n/pl.json
+++ b/apps/user_ldap/l10n/pl.json
@@ -29,7 +29,6 @@
"Help" : "Pomoc",
"Groups meeting these criteria are available in %s:" : "Przyłączenie do grupy z tymi ustawieniami dostępne jest w %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr określa, które grupy LDAP powinny mieć dostęp do instancji %s.",
- "Test Filter" : "Testuj filtr",
"Other Attributes:" : "Inne atrybuty:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Określa jakiego filtru użyć podczas próby zalogowania. %%uid zastępuje nazwę użytkownika w procesie logowania. Przykład: \"uid=%%uid\"",
"1. Server" : "1. Serwer",
diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js
index 6c98f979128..37d5de96d38 100644
--- a/apps/user_ldap/l10n/pt_BR.js
+++ b/apps/user_ldap/l10n/pt_BR.js
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Não foi possível detectar a Base DN, por favor entre manualmente.",
"{nthServer}. Server" : "Servidor {nthServer}.",
"No object found in the given Base DN. Please revise." : "Nenhum objeto encontrado ba Base DN informada. Por favor revise.",
+ "More than 1.000 directory entries available." : "Mais de 1.000 entradas de diretórios disponíveis.",
" entries available within the provided Base DN" : "entradas disponíveis na Base DN disponibilizada",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Um erro ocorreu. Por favor verifique a Base DN, e também a conexção e credenciais.",
"Do you really want to delete the current Server Configuration?" : "Você quer realmente deletar as atuais Configurações de Servidor?",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Editar consulta LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância do %s.",
- "Test Filter" : "Filtro Teste",
"Verify settings and count groups" : "Verificar as configurações e grupos de conta",
"When logging in, %s will find the user based on the following attributes:" : "Ao entrar, %s vai encontrar o usuário com base nos seguintes atributos:",
"LDAP / AD Username:" : "Nome do usuário LDAP / AD:",
diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json
index 5f57180d93c..5980b372c8b 100644
--- a/apps/user_ldap/l10n/pt_BR.json
+++ b/apps/user_ldap/l10n/pt_BR.json
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Não foi possível detectar a Base DN, por favor entre manualmente.",
"{nthServer}. Server" : "Servidor {nthServer}.",
"No object found in the given Base DN. Please revise." : "Nenhum objeto encontrado ba Base DN informada. Por favor revise.",
+ "More than 1.000 directory entries available." : "Mais de 1.000 entradas de diretórios disponíveis.",
" entries available within the provided Base DN" : "entradas disponíveis na Base DN disponibilizada",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Um erro ocorreu. Por favor verifique a Base DN, e também a conexção e credenciais.",
"Do you really want to delete the current Server Configuration?" : "Você quer realmente deletar as atuais Configurações de Servidor?",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Editar consulta LDAP",
"LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância do %s.",
- "Test Filter" : "Filtro Teste",
"Verify settings and count groups" : "Verificar as configurações e grupos de conta",
"When logging in, %s will find the user based on the following attributes:" : "Ao entrar, %s vai encontrar o usuário com base nos seguintes atributos:",
"LDAP / AD Username:" : "Nome do usuário LDAP / AD:",
diff --git a/apps/user_ldap/l10n/pt_PT.js b/apps/user_ldap/l10n/pt_PT.js
index 2b275908770..55cccb28022 100644
--- a/apps/user_ldap/l10n/pt_PT.js
+++ b/apps/user_ldap/l10n/pt_PT.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"No configuration specified" : "Nenhuma configuração especificada",
"No data specified" : "Nenhuma data especificada",
" Could not set configuration %s" : "Não foi possível definir a configuração %s",
+ "Action does not exist" : "Não existe esta acção",
"Configuration incorrect" : "Configuração incorreta",
"Configuration incomplete" : "Configuração incompleta",
"Configuration OK" : "Configuração OK",
@@ -31,7 +32,6 @@ OC.L10N.register(
"Help" : "Ajuda",
"Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância %s.",
- "Test Filter" : "Testar Filtro",
"Other Attributes:" : "Outros Atributos:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a aplicar, quando se tenta uma sessão. %%uid substitui o nome de utilizador na ação de início de sessão. Exemplo: \"uid=%%uid\"",
"1. Server" : "1. Servidor",
diff --git a/apps/user_ldap/l10n/pt_PT.json b/apps/user_ldap/l10n/pt_PT.json
index 9d94106818e..2b0c81a96f4 100644
--- a/apps/user_ldap/l10n/pt_PT.json
+++ b/apps/user_ldap/l10n/pt_PT.json
@@ -8,6 +8,7 @@
"No configuration specified" : "Nenhuma configuração especificada",
"No data specified" : "Nenhuma data especificada",
" Could not set configuration %s" : "Não foi possível definir a configuração %s",
+ "Action does not exist" : "Não existe esta acção",
"Configuration incorrect" : "Configuração incorreta",
"Configuration incomplete" : "Configuração incompleta",
"Configuration OK" : "Configuração OK",
@@ -29,7 +30,6 @@
"Help" : "Ajuda",
"Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância %s.",
- "Test Filter" : "Testar Filtro",
"Other Attributes:" : "Outros Atributos:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a aplicar, quando se tenta uma sessão. %%uid substitui o nome de utilizador na ação de início de sessão. Exemplo: \"uid=%%uid\"",
"1. Server" : "1. Servidor",
diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js
index 84f4aef0585..50ec2122070 100644
--- a/apps/user_ldap/l10n/ru.js
+++ b/apps/user_ldap/l10n/ru.js
@@ -26,8 +26,8 @@ OC.L10N.register(
"Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?",
"Confirm Deletion" : "Подтверждение удаления",
"Select attributes" : "Выберите атрибуты",
- "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено"],
- "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено"],
+ "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"],
+ "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не удалось автоматически определить атрибут содержащий отображаемое имя пользователя. Зайдите в расширенные настройки ldap и укажите его вручную.",
"Could not find the desired feature" : "Не удается найти требуемую функциональность",
"Invalid Host" : "Некорректный адрес сервера",
@@ -41,7 +41,6 @@ OC.L10N.register(
"Available groups" : "Доступные группы",
"Selected groups" : "Выбранные группы",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.",
- "Test Filter" : "Проверить фильтр",
"LDAP / AD Username:" : "Имя пользователя LDAP/AD:",
"Other Attributes:" : "Другие атрибуты:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"",
@@ -117,4 +116,4 @@ OC.L10N.register(
"Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP",
"Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json
index a1dc39252aa..1e828573fe2 100644
--- a/apps/user_ldap/l10n/ru.json
+++ b/apps/user_ldap/l10n/ru.json
@@ -24,8 +24,8 @@
"Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?",
"Confirm Deletion" : "Подтверждение удаления",
"Select attributes" : "Выберите атрибуты",
- "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено"],
- "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено"],
+ "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"],
+ "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не удалось автоматически определить атрибут содержащий отображаемое имя пользователя. Зайдите в расширенные настройки ldap и укажите его вручную.",
"Could not find the desired feature" : "Не удается найти требуемую функциональность",
"Invalid Host" : "Некорректный адрес сервера",
@@ -39,7 +39,6 @@
"Available groups" : "Доступные группы",
"Selected groups" : "Выбранные группы",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.",
- "Test Filter" : "Проверить фильтр",
"LDAP / AD Username:" : "Имя пользователя LDAP/AD:",
"Other Attributes:" : "Другие атрибуты:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"",
@@ -114,5 +113,5 @@
"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется доменное имя (DN) для уменьшения числа обращений к LDAP, однако оно не используется для идентификации. Если доменное имя было изменено, об этом станет известно ownCloud. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования.",
"Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP",
"Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/sk_SK.js b/apps/user_ldap/l10n/sk_SK.js
index a8f9cb398da..745f17a0145 100644
--- a/apps/user_ldap/l10n/sk_SK.js
+++ b/apps/user_ldap/l10n/sk_SK.js
@@ -36,7 +36,6 @@ OC.L10N.register(
"Selected groups" : "Vybrané skupiny",
"LDAP Filter:" : "LDAP filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.",
- "Test Filter" : "Otestovať filter",
"LDAP / AD Username:" : "Používateľské meno LDAP / AD:",
"LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
"Other Attributes:" : "Iné atribúty:",
diff --git a/apps/user_ldap/l10n/sk_SK.json b/apps/user_ldap/l10n/sk_SK.json
index c7d877bae69..269ca3e076d 100644
--- a/apps/user_ldap/l10n/sk_SK.json
+++ b/apps/user_ldap/l10n/sk_SK.json
@@ -34,7 +34,6 @@
"Selected groups" : "Vybrané skupiny",
"LDAP Filter:" : "LDAP filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.",
- "Test Filter" : "Otestovať filter",
"LDAP / AD Username:" : "Používateľské meno LDAP / AD:",
"LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
"Other Attributes:" : "Iné atribúty:",
diff --git a/apps/user_ldap/l10n/sl.js b/apps/user_ldap/l10n/sl.js
index 12ae0632005..925f802f3a9 100644
--- a/apps/user_ldap/l10n/sl.js
+++ b/apps/user_ldap/l10n/sl.js
@@ -10,15 +10,19 @@ OC.L10N.register(
"No configuration specified" : "Ni določenih nastavitev",
"No data specified" : "Ni navedenih podatkov",
" Could not set configuration %s" : "Ni mogoče uveljaviti nastavitev %s",
+ "Action does not exist" : "Operacija ne obstaja",
"Configuration incorrect" : "Nastavitev ni ustrezna",
"Configuration incomplete" : "Nastavitev je nepopolna",
"Configuration OK" : "Nastavitev je ustrezna",
"Select groups" : "Izberi skupine",
"Select object classes" : "Izbor razredov predmeta",
"{nthServer}. Server" : "{nthServer}. strežnik",
+ "More than 1.000 directory entries available." : "Na voljo je več kot 1.000 elementov imenika.",
"Do you really want to delete the current Server Configuration?" : "Ali res želite izbrisati trenutne nastavitve strežnika?",
"Confirm Deletion" : "Potrdi brisanje",
+ "Mode switch" : "Preklop načina",
"Select attributes" : "Izbor atributov",
+ "User found and settings verified." : "Uporabnik najden in nastavitve preverjene.",
"_%s group found_::_%s groups found_" : ["%s najdena skupina","%s najdeni skupini","%s najdene skupine","%s najdenih skupin"],
"_%s user found_::_%s users found_" : ["%s najden uporabnik","%s najdena uporabnika","%s najdeni uporabniki","%s najdenih uporabnikov"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Ni mogoče prebrati atributa prikaznega imena. Določiti ga je treba ročno med nastavitvami LDAP.",
@@ -26,14 +30,21 @@ OC.L10N.register(
"Invalid Host" : "Neveljaven gostitelj",
"Server" : "Strežnik",
"Users" : "Uporabniki",
+ "Login Attributes" : "Parametri prijave",
"Groups" : "Skupine",
"Test Configuration" : "Preizkusne nastavitve",
"Help" : "Pomoč",
"Groups meeting these criteria are available in %s:" : "Skupine, ki so skladne s kriterijem, so na voljo v %s:",
+ "Only these object classes:" : "Samo tej razredi objektov:",
+ "Only from these groups:" : "Samo te skupine:",
+ "Search groups" : "Skupine za iskanje",
+ "Available groups" : "Razpoložljive skupine",
+ "Selected groups" : "Izbrane skupine",
+ "LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filter določa, katere skupine LDAP bodo imele dostop do %s.",
- "Test Filter" : "Preizkusi filter",
"Other Attributes:" : "Drugi atributi:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Določi filter, ki bo uveljavljen ob poskusu prijave. %%uid zamenja uporabniško ime pri prijavi, na primer: \"uid=%%uid\"",
+ "Verify settings" : "Preveri nastavitve",
"1. Server" : "1. strežnik",
"%s. Server:" : "%s. strežnik:",
"Host" : "Gostitelj",
diff --git a/apps/user_ldap/l10n/sl.json b/apps/user_ldap/l10n/sl.json
index 2025e381d90..4674f513589 100644
--- a/apps/user_ldap/l10n/sl.json
+++ b/apps/user_ldap/l10n/sl.json
@@ -8,15 +8,19 @@
"No configuration specified" : "Ni določenih nastavitev",
"No data specified" : "Ni navedenih podatkov",
" Could not set configuration %s" : "Ni mogoče uveljaviti nastavitev %s",
+ "Action does not exist" : "Operacija ne obstaja",
"Configuration incorrect" : "Nastavitev ni ustrezna",
"Configuration incomplete" : "Nastavitev je nepopolna",
"Configuration OK" : "Nastavitev je ustrezna",
"Select groups" : "Izberi skupine",
"Select object classes" : "Izbor razredov predmeta",
"{nthServer}. Server" : "{nthServer}. strežnik",
+ "More than 1.000 directory entries available." : "Na voljo je več kot 1.000 elementov imenika.",
"Do you really want to delete the current Server Configuration?" : "Ali res želite izbrisati trenutne nastavitve strežnika?",
"Confirm Deletion" : "Potrdi brisanje",
+ "Mode switch" : "Preklop načina",
"Select attributes" : "Izbor atributov",
+ "User found and settings verified." : "Uporabnik najden in nastavitve preverjene.",
"_%s group found_::_%s groups found_" : ["%s najdena skupina","%s najdeni skupini","%s najdene skupine","%s najdenih skupin"],
"_%s user found_::_%s users found_" : ["%s najden uporabnik","%s najdena uporabnika","%s najdeni uporabniki","%s najdenih uporabnikov"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Ni mogoče prebrati atributa prikaznega imena. Določiti ga je treba ročno med nastavitvami LDAP.",
@@ -24,14 +28,21 @@
"Invalid Host" : "Neveljaven gostitelj",
"Server" : "Strežnik",
"Users" : "Uporabniki",
+ "Login Attributes" : "Parametri prijave",
"Groups" : "Skupine",
"Test Configuration" : "Preizkusne nastavitve",
"Help" : "Pomoč",
"Groups meeting these criteria are available in %s:" : "Skupine, ki so skladne s kriterijem, so na voljo v %s:",
+ "Only these object classes:" : "Samo tej razredi objektov:",
+ "Only from these groups:" : "Samo te skupine:",
+ "Search groups" : "Skupine za iskanje",
+ "Available groups" : "Razpoložljive skupine",
+ "Selected groups" : "Izbrane skupine",
+ "LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filter določa, katere skupine LDAP bodo imele dostop do %s.",
- "Test Filter" : "Preizkusi filter",
"Other Attributes:" : "Drugi atributi:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Določi filter, ki bo uveljavljen ob poskusu prijave. %%uid zamenja uporabniško ime pri prijavi, na primer: \"uid=%%uid\"",
+ "Verify settings" : "Preveri nastavitve",
"1. Server" : "1. strežnik",
"%s. Server:" : "%s. strežnik:",
"Host" : "Gostitelj",
diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js
index 1bf136ab66b..4e1402d95cf 100644
--- a/apps/user_ldap/l10n/sr.js
+++ b/apps/user_ldap/l10n/sr.js
@@ -10,7 +10,7 @@ OC.L10N.register(
"No configuration specified" : "Није наведена постава",
"No data specified" : "Нису наведени подаци",
" Could not set configuration %s" : "Нисам могао да подесим конфигурацију %s",
- "Action does not exist" : "Акција не постоји",
+ "Action does not exist" : "Радња не постоји",
"Configuration incorrect" : "Конфигурација је неисправна",
"Configuration incomplete" : "Конфигурација није комплетна",
"Configuration OK" : "Конфигурација је у реду",
@@ -22,6 +22,7 @@ OC.L10N.register(
"Could not detect Base DN, please enter it manually." : "Не могу да откријем базни ДН. Унесите га ручно.",
"{nthServer}. Server" : "{nthServer}. Сервер",
"No object found in the given Base DN. Please revise." : "Нема објекта за дати базни ДН. Проверите.",
+ "More than 1.000 directory entries available." : "Више од 1000 уноса је доступно.",
" entries available within the provided Base DN" : "уноса доступно за дати базни ДН",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Грешка. Проверите базни ДН као и поставке везе и акредитиве.",
"Do you really want to delete the current Server Configuration?" : "Да ли стварно желите да обришете тренутну конфигурацију сервера?",
@@ -50,7 +51,7 @@ OC.L10N.register(
"Users" : "Корисници",
"Login Attributes" : "Атрибути пријаве",
"Groups" : "Групе",
- "Test Configuration" : "Тестирај конфигурацију",
+ "Test Configuration" : "Испробај поставу",
"Help" : "Помоћ",
"Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:",
"Only these object classes:" : "Само ове класе објеката:",
@@ -61,7 +62,6 @@ OC.L10N.register(
"Edit LDAP Query" : "Уреди ЛДАП упит",
"LDAP Filter:" : "ЛДАП филтер:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.",
- "Test Filter" : "Тестни филтер",
"Verify settings and count groups" : "Провери поставке и преброј групе",
"When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:",
"LDAP / AD Username:" : "ЛДАП / АД корисничко име:",
@@ -92,7 +92,7 @@ OC.L10N.register(
"The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.",
"Verify settings and count users" : "Провери поставке и преброј кориснике",
- "Saving" : "Чувам",
+ "Saving" : "Снимам",
"Back" : "Назад",
"Continue" : "Настави",
"LDAP" : "LDAP",
@@ -100,7 +100,7 @@ OC.L10N.register(
"Advanced" : "Напредно",
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> ПХП ЛДАП модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.",
- "Connection Settings" : "Подешавања везе",
+ "Connection Settings" : "Поставке везе",
"Configuration Active" : "Конфигурација активна",
"When unchecked, this configuration will be skipped." : "Када није штриклирано, ова конфигурација ће бити прескочена.",
"Backup (Replica) Host" : "Домаћин Резервне копије (Реплике)",
diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json
index 17beea5aa83..c2a9c2898eb 100644
--- a/apps/user_ldap/l10n/sr.json
+++ b/apps/user_ldap/l10n/sr.json
@@ -8,7 +8,7 @@
"No configuration specified" : "Није наведена постава",
"No data specified" : "Нису наведени подаци",
" Could not set configuration %s" : "Нисам могао да подесим конфигурацију %s",
- "Action does not exist" : "Акција не постоји",
+ "Action does not exist" : "Радња не постоји",
"Configuration incorrect" : "Конфигурација је неисправна",
"Configuration incomplete" : "Конфигурација није комплетна",
"Configuration OK" : "Конфигурација је у реду",
@@ -20,6 +20,7 @@
"Could not detect Base DN, please enter it manually." : "Не могу да откријем базни ДН. Унесите га ручно.",
"{nthServer}. Server" : "{nthServer}. Сервер",
"No object found in the given Base DN. Please revise." : "Нема објекта за дати базни ДН. Проверите.",
+ "More than 1.000 directory entries available." : "Више од 1000 уноса је доступно.",
" entries available within the provided Base DN" : "уноса доступно за дати базни ДН",
"An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Грешка. Проверите базни ДН као и поставке везе и акредитиве.",
"Do you really want to delete the current Server Configuration?" : "Да ли стварно желите да обришете тренутну конфигурацију сервера?",
@@ -48,7 +49,7 @@
"Users" : "Корисници",
"Login Attributes" : "Атрибути пријаве",
"Groups" : "Групе",
- "Test Configuration" : "Тестирај конфигурацију",
+ "Test Configuration" : "Испробај поставу",
"Help" : "Помоћ",
"Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:",
"Only these object classes:" : "Само ове класе објеката:",
@@ -59,7 +60,6 @@
"Edit LDAP Query" : "Уреди ЛДАП упит",
"LDAP Filter:" : "ЛДАП филтер:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.",
- "Test Filter" : "Тестни филтер",
"Verify settings and count groups" : "Провери поставке и преброј групе",
"When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:",
"LDAP / AD Username:" : "ЛДАП / АД корисничко име:",
@@ -90,7 +90,7 @@
"The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.",
"Verify settings and count users" : "Провери поставке и преброј кориснике",
- "Saving" : "Чувам",
+ "Saving" : "Снимам",
"Back" : "Назад",
"Continue" : "Настави",
"LDAP" : "LDAP",
@@ -98,7 +98,7 @@
"Advanced" : "Напредно",
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> ПХП ЛДАП модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.",
- "Connection Settings" : "Подешавања везе",
+ "Connection Settings" : "Поставке везе",
"Configuration Active" : "Конфигурација активна",
"When unchecked, this configuration will be skipped." : "Када није штриклирано, ова конфигурација ће бити прескочена.",
"Backup (Replica) Host" : "Домаћин Резервне копије (Реплике)",
diff --git a/apps/user_ldap/l10n/sv.js b/apps/user_ldap/l10n/sv.js
index f9920f6ca7d..95921f20467 100644
--- a/apps/user_ldap/l10n/sv.js
+++ b/apps/user_ldap/l10n/sv.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Help" : "Hjälp",
"Groups meeting these criteria are available in %s:" : "Grupper som uppfyller dessa kriterier finns i %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtret specifierar vilka LDAD-grupper som ska ha åtkomst till %s instans",
- "Test Filter" : "Testfilter",
"Other Attributes:" : "Övriga attribut:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definierar filter som tillämpas vid inloggning. %%uid ersätter användarnamn vid inloggningen. Exempel: \"uid=%%uid\"",
"1. Server" : "1. Server",
diff --git a/apps/user_ldap/l10n/sv.json b/apps/user_ldap/l10n/sv.json
index 53155976d98..3f2b74e8dad 100644
--- a/apps/user_ldap/l10n/sv.json
+++ b/apps/user_ldap/l10n/sv.json
@@ -29,7 +29,6 @@
"Help" : "Hjälp",
"Groups meeting these criteria are available in %s:" : "Grupper som uppfyller dessa kriterier finns i %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtret specifierar vilka LDAD-grupper som ska ha åtkomst till %s instans",
- "Test Filter" : "Testfilter",
"Other Attributes:" : "Övriga attribut:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definierar filter som tillämpas vid inloggning. %%uid ersätter användarnamn vid inloggningen. Exempel: \"uid=%%uid\"",
"1. Server" : "1. Server",
diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js
index 449ad9334cc..e0e46731a59 100644
--- a/apps/user_ldap/l10n/tr.js
+++ b/apps/user_ldap/l10n/tr.js
@@ -36,7 +36,6 @@ OC.L10N.register(
"Help" : "Yardım",
"Groups meeting these criteria are available in %s:" : "Bu kriterlerle eşleşen gruplar %s içinde mevcut:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtre, %s örneğine erişmesi gereken LDAP gruplarını belirtir.",
- "Test Filter" : "Filtreyi Test Et",
"Other Attributes:" : "Diğer Nitelikler:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Oturum açma girişimi olduğunda uygulanacak filtreyi tanımlar. %%uid, oturum işleminde kullanıcı adı ile değiştirilir. Örneğin: \"uid=%%uid\"",
"1. Server" : "1. Sunucu",
diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json
index 45945eb009f..01cfc4c94a4 100644
--- a/apps/user_ldap/l10n/tr.json
+++ b/apps/user_ldap/l10n/tr.json
@@ -34,7 +34,6 @@
"Help" : "Yardım",
"Groups meeting these criteria are available in %s:" : "Bu kriterlerle eşleşen gruplar %s içinde mevcut:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtre, %s örneğine erişmesi gereken LDAP gruplarını belirtir.",
- "Test Filter" : "Filtreyi Test Et",
"Other Attributes:" : "Diğer Nitelikler:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Oturum açma girişimi olduğunda uygulanacak filtreyi tanımlar. %%uid, oturum işleminde kullanıcı adı ile değiştirilir. Örneğin: \"uid=%%uid\"",
"1. Server" : "1. Sunucu",
diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js
index 40941e3479f..038657a5065 100644
--- a/apps/user_ldap/l10n/uk.js
+++ b/apps/user_ldap/l10n/uk.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Help" : "Допомога",
"Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.",
- "Test Filter" : "Тест Фільтр",
"Other Attributes:" : "Інші Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Визначає фільтр, який слід застосовувати при спробі входу.\n%%uid замінює ім'я користувача при вході в систему. Приклад: \"uid=%%uid\"",
"1. Server" : "1. Сервер",
diff --git a/apps/user_ldap/l10n/uk.json b/apps/user_ldap/l10n/uk.json
index daa03c128d3..bfd877a1892 100644
--- a/apps/user_ldap/l10n/uk.json
+++ b/apps/user_ldap/l10n/uk.json
@@ -29,7 +29,6 @@
"Help" : "Допомога",
"Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.",
- "Test Filter" : "Тест Фільтр",
"Other Attributes:" : "Інші Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Визначає фільтр, який слід застосовувати при спробі входу.\n%%uid замінює ім'я користувача при вході в систему. Приклад: \"uid=%%uid\"",
"1. Server" : "1. Сервер",
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index b9d83aad684..d6f4bdcde04 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -78,8 +78,6 @@ class Connection extends LDAPUtility {
$memcache = \OC::$server->getMemCacheFactory();
if($memcache->isAvailable()) {
$this->cache = $memcache->create();
- } else {
- $this->cache = \OC\Cache::getGlobalCache();
}
$this->hasPagedResultSupport =
$this->ldap->hasPagedResultSupport();
@@ -195,7 +193,7 @@ class Connection extends LDAPUtility {
if(!$this->configured) {
$this->readConfiguration();
}
- if(!$this->configuration->ldapCacheTTL) {
+ if(is_null($this->cache) || !$this->configuration->ldapCacheTTL) {
return null;
}
if(!$this->isCached($key)) {
@@ -215,7 +213,7 @@ class Connection extends LDAPUtility {
if(!$this->configured) {
$this->readConfiguration();
}
- if(!$this->configuration->ldapCacheTTL) {
+ if(is_null($this->cache) || !$this->configuration->ldapCacheTTL) {
return false;
}
$key = $this->getCacheKey($key);
@@ -225,12 +223,15 @@ class Connection extends LDAPUtility {
/**
* @param string $key
* @param mixed $value
+ *
+ * @return string
*/
public function writeToCache($key, $value) {
if(!$this->configured) {
$this->readConfiguration();
}
- if(!$this->configuration->ldapCacheTTL
+ if(is_null($this->cache)
+ || !$this->configuration->ldapCacheTTL
|| !$this->configuration->ldapConfigurationActive) {
return null;
}
@@ -240,7 +241,9 @@ class Connection extends LDAPUtility {
}
public function clearCache() {
- $this->cache->clear($this->getCacheKey(null));
+ if(!is_null($this->cache)) {
+ $this->cache->clear($this->getCacheKey(null));
+ }
}
/**
diff --git a/apps/user_ldap/lib/ldap.php b/apps/user_ldap/lib/ldap.php
index b4ca3499f49..74df3dd8ae7 100644
--- a/apps/user_ldap/lib/ldap.php
+++ b/apps/user_ldap/lib/ldap.php
@@ -26,6 +26,8 @@
namespace OCA\user_ldap\lib;
+use OC\ServerNotAvailableException;
+
class LDAP implements ILDAPWrapper {
protected $curFunc = '';
protected $curArgs = array();
@@ -283,6 +285,8 @@ class LDAP implements ILDAPWrapper {
//for now
} else if ($errorCode === 10) {
//referrals, we switch them off, but then there is AD :)
+ } else if ($errorCode === -1) {
+ throw new ServerNotAvailableException('Lost connection to LDAP server.');
} else {
\OCP\Util::writeLog('user_ldap',
'LDAP error '.$errorMsg.' (' .
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index 7bb5752352f..824923eecbf 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -958,7 +958,6 @@ class Wizard extends LDAPUtility {
$userAttributes = array_change_key_case(array_flip($userAttributes));
$parts = 0;
- $x = $this->configuration->ldapLoginFilterUsername;
if($this->configuration->ldapLoginFilterUsername === '1') {
$attr = '';
if(isset($userAttributes['uid'])) {
diff --git a/apps/user_ldap/templates/part.wizard-groupfilter.php b/apps/user_ldap/templates/part.wizard-groupfilter.php
index bfcfd115218..2f663b858e2 100644
--- a/apps/user_ldap/templates/part.wizard-groupfilter.php
+++ b/apps/user_ldap/templates/part.wizard-groupfilter.php
@@ -47,9 +47,6 @@
placeholder="<?php p($l->t('Edit LDAP Query'));?>"
title="<?php p($l->t('The filter specifies which LDAP groups shall have access to the %s instance.', $theme->getName()));?>">
</textarea>
- <button class="ldapGetEntryCount hidden" name="ldapGetEntryCount" type="button">
- <?php p($l->t('Test Filter'));?>
- </button>
</p>
<p>
<div class="ldapWizardInfo invisible">&nbsp;</div>
diff --git a/apps/user_ldap/templates/part.wizard-loginfilter.php b/apps/user_ldap/templates/part.wizard-loginfilter.php
index fa17a9b430b..8d9fccf24b8 100644
--- a/apps/user_ldap/templates/part.wizard-loginfilter.php
+++ b/apps/user_ldap/templates/part.wizard-loginfilter.php
@@ -58,4 +58,4 @@
</p>
<?php print_unescaped($_['wizardControls']); ?>
</div>
-</fieldset> \ No newline at end of file
+</fieldset>
diff --git a/apps/user_ldap/tests/integration/exceptionOnLostConnection.php b/apps/user_ldap/tests/integration/exceptionOnLostConnection.php
new file mode 100644
index 00000000000..a55d4822689
--- /dev/null
+++ b/apps/user_ldap/tests/integration/exceptionOnLostConnection.php
@@ -0,0 +1,192 @@
+<?php
+/**
+ * @author Arthur Schiwon <blizzz@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+use OC\ServerNotAvailableException;
+use OCA\user_ldap\lib\LDAP;
+
+/**
+ * Class ExceptionOnLostConnection
+ *
+ * integration test, ensures that an exception is thrown, when the connection is lost.
+ *
+ * LDAP must be available via toxiproxy.
+ *
+ * This test must be run manually.
+ *
+ */
+class ExceptionOnLostConnection {
+ /** @var string */
+ private $toxiProxyHost;
+
+ /** @var string */
+ private $toxiProxyName;
+
+ /** @var string */
+ private $ldapBase;
+
+ /** @var string|null */
+ private $ldapBindDN;
+
+ /** @var string|null */
+ private $ldapBindPwd;
+
+ /** @var string */
+ private $ldapHost;
+
+ /** @var OCA\user_ldap\lib\LDAP */
+ private $ldap;
+
+ /** @var bool */
+ private $originalProxyState;
+
+ /**
+ * @param string $proxyHost host of toxiproxy as url, like http://localhost:8474
+ * @param string $proxyName name of the LDAP proxy service as configured in toxiProxy
+ * @param string $ldapBase any valid LDAP base DN
+ * @param null $bindDN optional, bind DN if anonymous bind is not possible
+ * @param null $bindPwd optional
+ */
+ public function __construct($proxyHost, $proxyName, $ldapBase, $bindDN = null, $bindPwd = null) {
+ $this->toxiProxyHost = $proxyHost;
+ $this->toxiProxyName = $proxyName;
+ $this->ldapBase = $ldapBase;
+ $this->ldapBindDN = $bindDN;
+ $this->ldapBindPwd = $bindPwd;
+
+ $this->setUp();
+ }
+
+ /**
+ * destructor
+ */
+ public function __destruct() {
+ $this->cleanUp();
+ }
+
+ /**
+ * prepares everything for the test run. Includes loading ownCloud and
+ * the LDAP backend, as well as getting information about toxiproxy.
+ * Also creates an instance of the LDAP class, the testee
+ *
+ * @throws Exception
+ */
+ public function setUp() {
+ require_once __DIR__ . '/../../../../lib/base.php';
+ \OC_App::loadApps('user_ldap');
+
+ $ch = $this->getCurl();
+ $proxyInfoJson = curl_exec($ch);
+ $this->checkCurlResult($ch, $proxyInfoJson);
+ $proxyInfo = json_decode($proxyInfoJson, true);
+ $this->originalProxyState = $proxyInfo['enabled'];
+ $this->ldapHost = 'ldap://' . $proxyInfo['listen']; // contains port as well
+
+ $this->ldap = new LDAP();
+ }
+
+ /**
+ * restores original state of the LDAP proxy, if necessary
+ */
+ public function cleanUp() {
+ if($this->originalProxyState === true) {
+ $this->setProxyState(true);
+ }
+ }
+
+ /**
+ * runs the test and prints the result. Exit code is 0 if successful, 1 on
+ * fail
+ */
+ public function run() {
+ if($this->originalProxyState === false) {
+ $this->setProxyState(true);
+ }
+ //host contains port, 2nd parameter will be ignored
+ $cr = $this->ldap->connect($this->ldapHost, 0);
+ $this->ldap->bind($cr, $this->ldapBindDN, $this->ldapBindPwd);
+ $this->ldap->search($cr, $this->ldapBase, 'objectClass=*', array('dn'), true, 5);
+
+ // disable LDAP, will cause lost connection
+ $this->setProxyState(false);
+ try {
+ $this->ldap->search($cr, $this->ldapBase, 'objectClass=*', array('dn'), true, 5);
+ } catch (ServerNotAvailableException $e) {
+ print("Test PASSED" . PHP_EOL);
+ exit(0);
+ }
+ print("Test FAILED" . PHP_EOL);
+ exit(1);
+ }
+
+ /**
+ * tests whether a curl operation ran successfully. If not, an exception
+ * is thrown
+ *
+ * @param resource $ch
+ * @param mixed $result
+ * @throws Exception
+ */
+ private function checkCurlResult($ch, $result) {
+ if($result === false) {
+ $error = curl_error($ch);
+ curl_close($ch);
+ throw new \Exception($error);
+ }
+ }
+
+ /**
+ * enables or disabled the LDAP proxy service in toxiproxy
+ *
+ * @param bool $isEnabled whether is should be enabled or disables
+ * @throws Exception
+ */
+ private function setProxyState($isEnabled) {
+ if(!is_bool($isEnabled)) {
+ throw new \InvalidArgumentException('Bool expected');
+ }
+ $postData = json_encode(['enabled' => $isEnabled]);
+ $ch = $this->getCurl();
+ curl_setopt($ch, CURLOPT_POST, true);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+ 'Content-Type: application/json',
+ 'Content-Length: ' . strlen($postData))
+ );
+ $recvd = curl_exec($ch);
+ $this->checkCurlResult($ch, $recvd);
+ }
+
+ /**
+ * initializes a curl handler towards the toxiproxy LDAP proxy service
+ * @return resource
+ */
+ private function getCurl() {
+ $ch = curl_init();
+ curl_setopt($ch, CURLOPT_URL, $this->toxiProxyHost . '/proxies/' . $this->toxiProxyName);
+ curl_setopt($ch, CURLOPT_HEADER, false);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+ return $ch;
+ }
+}
+
+$test = new ExceptionOnLostConnection('http://localhost:8474', 'ldap', 'dc=owncloud,dc=bzoc');
+$test->run();
+
diff --git a/autotest-hhvm.sh b/autotest-hhvm.sh
index 7a8452c7f06..6f3645c3aef 100755
--- a/autotest-hhvm.sh
+++ b/autotest-hhvm.sh
@@ -1,214 +1,3 @@
-#!/bin/bash
-#
-# ownCloud
-#
-# @author Vincent Petry
-# @author Morris Jobke
-# @author Robin McCorkell
-# @author Thomas Müller
-# @author Andreas Fischer
-# @author Joas Schilling
-# @author Lukas Reschke
-# @copyright 2012-2015 Thomas Müller thomas.mueller@tmit.eu
-#
-
-set -e
-
-#$EXECUTOR_NUMBER is set by Jenkins and allows us to run autotest in parallel
-DATABASENAME=oc_autotest$EXECUTOR_NUMBER
-DATABASEUSER=oc_autotest$EXECUTOR_NUMBER
-ADMINLOGIN=admin$EXECUTOR_NUMBER
-BASEDIR=$PWD
-
-DBCONFIGS="sqlite mysql pgsql oci"
-PHPUNIT=$(which phpunit)
-HHVM=$(which hhvm)
-
-function print_syntax {
- echo -e "Syntax: ./autotest-hhvm.sh [dbconfigname] [testfile]\n" >&2
- echo -e "\t\"dbconfigname\" can be one of: $DBCONFIGS" >&2
- echo -e "\t\"testfile\" is the name of a test file, for example lib/template.php" >&2
- echo -e "\nExample: ./autotest.sh sqlite lib/template.php" >&2
- echo "will run the test suite from \"tests/lib/template.php\"" >&2
- echo -e "\nIf no arguments are specified, all tests will be run with all database configs" >&2
-}
-
-if ! [ -x "$PHPUNIT" ]; then
- echo "phpunit executable not found, please install phpunit version >= 3.7" >&2
- exit 3
-fi
-
-if ! [ -x "$HHVM" ]; then
- echo "hhvm executable not found, please install hhvm" >&2
- exit 3
-fi
-
-PHPUNIT_VERSION=$(hhvm "$PHPUNIT" --version | cut -d" " -f2)
-PHPUNIT_MAJOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f1)
-PHPUNIT_MINOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f2)
-
-if ! [ $PHPUNIT_MAJOR_VERSION -gt 3 -o \( $PHPUNIT_MAJOR_VERSION -eq 3 -a $PHPUNIT_MINOR_VERSION -ge 7 \) ]; then
- echo "phpunit version >= 3.7 required. Version found: $PHPUNIT_VERSION" >&2
- exit 4
-fi
-
-if ! [ -w config -a -w config/config.php ]; then
- echo "Please enable write permissions on config and config/config.php" >&2
- exit 1
-fi
-
-if [ "$1" ]; then
- FOUND=0
- for DBCONFIG in $DBCONFIGS; do
- if [ "$1" = $DBCONFIG ]; then
- FOUND=1
- break
- fi
- done
- if [ $FOUND = 0 ]; then
- echo -e "Unknown database config name \"$1\"\n" >&2
- print_syntax
- exit 2
- fi
-fi
-
-# Back up existing (dev) config if one exists and backup not already there
-if [ -f config/config.php ] && [ ! -f config/config-autotest-backup.php ]; then
- mv config/config.php config/config-autotest-backup.php
-fi
-
-function cleanup_config {
- cd "$BASEDIR"
- # Restore existing config
- if [ -f config/config-autotest-backup.php ]; then
- mv config/config-autotest-backup.php config/config.php
- fi
- # Remove autotest config
- if [ -f config/autoconfig.php ]; then
- rm config/autoconfig.php
- fi
-}
-
-# restore config on exit
-trap cleanup_config EXIT
-
-# use tmpfs for datadir - should speedup unit test execution
-if [ -d /dev/shm ]; then
- DATADIR=/dev/shm/data-autotest$EXECUTOR_NUMBER
-else
- DATADIR=$BASEDIR/data-autotest
-fi
-
-echo "Using database $DATABASENAME"
-
-function execute_tests {
- echo "Setup environment for $1 testing ..."
- # back to root folder
- cd "$BASEDIR"
-
- # revert changes to tests/data
- git checkout tests/data
-
- # reset data directory
- rm -rf "$DATADIR"
- mkdir "$DATADIR"
-
- # remove the old config file
- #rm -rf config/config.php
- cp tests/preseed-config.php config/config.php
-
- # drop database
- if [ "$1" == "mysql" ] ; then
- mysql -u $DATABASEUSER -powncloud -e "DROP DATABASE IF EXISTS $DATABASENAME" || true
- fi
- if [ "$1" == "pgsql" ] ; then
- dropdb -U $DATABASEUSER $DATABASENAME || true
- fi
- if [ "$1" == "oci" ] ; then
- echo "drop the database"
- sqlplus -s -l / as sysdba <<EOF
- drop user $DATABASENAME cascade;
-EOF
-
- echo "create the database"
- sqlplus -s -l / as sysdba <<EOF
- create user $DATABASENAME identified by owncloud;
- alter user $DATABASENAME default tablespace users
- temporary tablespace temp
- quota unlimited on users;
- grant create session
- , create table
- , create procedure
- , create sequence
- , create trigger
- , create view
- , create synonym
- , alter session
- to $DATABASENAME;
- exit;
-EOF
- DATABASEUSER=$DATABASENAME
- DATABASENAME='XE'
- fi
-
- # copy autoconfig
- cp "$BASEDIR/tests/autoconfig-$1.php" "$BASEDIR/config/autoconfig.php"
-
- # trigger installation
- echo "Installing ...."
- hhvm ./occ maintenance:install --database=$1 --database-name=$DATABASENAME --database-host=localhost --database-user=$DATABASEUSER --database-pass=owncloud --database-table-prefix=oc_ --admin-user=$ADMINLOGIN --admin-pass=admin --data-dir=$DATADIR
-
- #test execution
- echo "Testing with $1 ..."
- cd tests
- rm -rf "coverage-html-$1"
- mkdir "coverage-html-$1"
- hhvm -f enable_all.php | grep -i -C9999 error && echo "Error during setup" && exit 101
- if [ -z "$NOCOVERAGE" ]; then
- hhvm "$PHPUNIT" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" --coverage-clover "autotest-clover-$1.xml" --coverage-html "coverage-html-$1" "$2" "$3"
- RESULT=$?
- else
- echo "No coverage"
- hhvm "$PHPUNIT" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" "$2" "$3"
- RESULT=$?
- fi
-}
-
-#
-# start test execution
-#
-if [ -z "$1" ]
- then
- # run all known database configs
- for DBCONFIG in $DBCONFIGS; do
- execute_tests $DBCONFIG
- done
-else
- execute_tests "$1" "$2" "$3"
-fi
-
-#
-# NOTES on mysql:
-# - CREATE DATABASE oc_autotest;
-# - CREATE USER 'oc_autotest'@'localhost' IDENTIFIED BY 'owncloud';
-# - grant all on oc_autotest.* to 'oc_autotest'@'localhost';
-#
-# - for parallel executor support with EXECUTOR_NUMBER=0:
-# - CREATE DATABASE oc_autotest0;
-# - CREATE USER 'oc_autotest0'@'localhost' IDENTIFIED BY 'owncloud';
-# - grant all on oc_autotest0.* to 'oc_autotest0'@'localhost';
-#
-# NOTES on pgsql:
-# - su - postgres
-# - createuser -P oc_autotest (enter password and enable superuser)
-# - to enable dropdb I decided to add following line to pg_hba.conf (this is not the safest way but I don't care for the testing machine):
-# local all all trust
-#
-# - for parallel executor support with EXECUTOR_NUMBER=0:
-# - createuser -P oc_autotest0 (enter password and enable superuser)
-#
-# NOTES on oci:
-# - it's a pure nightmare to install Oracle on a Linux-System
-# - DON'T TRY THIS AT HOME!
-# - if you really need it: we feel sorry for you
-#
+#!/bin/sh -e
+HERE=$(dirname "$0")
+PHP_EXE=hhvm "$HERE/autotest.sh" "$@"
diff --git a/autotest.sh b/autotest.sh
index 0c0d5ba0996..3ce88c64974 100755
--- a/autotest.sh
+++ b/autotest.sh
@@ -22,6 +22,14 @@ ADMINLOGIN=admin$EXECUTOR_NUMBER
BASEDIR=$PWD
DBCONFIGS="sqlite mysql pgsql oci"
+
+# $PHP_EXE is run through 'which' and as such e.g. 'php' or 'hhvm' is usually
+# sufficient. Due to the behaviour of 'which', $PHP_EXE may also be a path
+# (absolute or not) to an executable, e.g. ./code/projects/php-src/sapi/cli/php.
+if [ -z "$PHP_EXE" ]; then
+ PHP_EXE=php
+fi
+PHP=$(which "$PHP_EXE")
PHPUNIT=$(which phpunit)
function print_syntax {
@@ -33,16 +41,30 @@ function print_syntax {
echo -e "\nIf no arguments are specified, all tests will be run with all database configs" >&2
}
+if [ -x "$PHP" ]; then
+ echo "Using PHP executable $PHP"
+else
+ echo "Could not find PHP executable $PHP_EXE" >&2
+ exit 3
+fi
+
if ! [ -x "$PHPUNIT" ]; then
echo "phpunit executable not found, please install phpunit version >= 3.7" >&2
exit 3
fi
-PHPUNIT_VERSION=$("$PHPUNIT" --version | cut -d" " -f2)
-PHPUNIT_MAJOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f1)
-PHPUNIT_MINOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f2)
+# PHPUnit might also be installed via a facade binary script
+if [[ "$PHPUNIT" =~ \.phar$ ]]; then
+ PHPUNIT=( "$PHP" "$PHPUNIT" )
+else
+ PHPUNIT=( "$PHPUNIT" )
+fi
+
+PHPUNIT_VERSION=$($PHPUNIT --version | cut -d" " -f2)
+PHPUNIT_MAJOR_VERSION=$(echo "$PHPUNIT_VERSION" | cut -d"." -f1)
+PHPUNIT_MINOR_VERSION=$(echo "$PHPUNIT_VERSION" | cut -d"." -f2)
-if ! [ $PHPUNIT_MAJOR_VERSION -gt 3 -o \( $PHPUNIT_MAJOR_VERSION -eq 3 -a $PHPUNIT_MINOR_VERSION -ge 7 \) ]; then
+if ! [ "$PHPUNIT_MAJOR_VERSION" -gt 3 -o \( "$PHPUNIT_MAJOR_VERSION" -eq 3 -a "$PHPUNIT_MINOR_VERSION" -ge 7 \) ]; then
echo "phpunit version >= 3.7 required. Version found: $PHPUNIT_VERSION" >&2
exit 4
fi
@@ -55,7 +77,7 @@ fi
if [ "$1" ]; then
FOUND=0
for DBCONFIG in $DBCONFIGS; do
- if [ "$1" = $DBCONFIG ]; then
+ if [ "$1" = "$DBCONFIG" ]; then
FOUND=1
break
fi
@@ -75,7 +97,7 @@ fi
function cleanup_config {
if [ ! -z "$DOCKER_CONTAINER_ID" ]; then
echo "Kill the docker $DOCKER_CONTAINER_ID"
- docker rm -f $DOCKER_CONTAINER_ID
+ docker rm -f "$DOCKER_CONTAINER_ID"
fi
cd "$BASEDIR"
@@ -117,15 +139,15 @@ function execute_tests {
# drop database
if [ "$1" == "mysql" ] ; then
- mysql -u $DATABASEUSER -powncloud -e "DROP DATABASE IF EXISTS $DATABASENAME" -h $DATABASEHOST || true
+ mysql -u "$DATABASEUSER" -powncloud -e "DROP DATABASE IF EXISTS $DATABASENAME" -h $DATABASEHOST || true
fi
if [ "$1" == "pgsql" ] ; then
- dropdb -U $DATABASEUSER $DATABASENAME || true
+ dropdb -U "$DATABASEUSER" "$DATABASENAME" || true
fi
if [ "$1" == "oci" ] ; then
echo "Fire up the oracle docker"
- DOCKER_CONTAINER_ID=`docker run -d deepdiver/docker-oracle-xe-11g`
- DATABASEHOST=`docker inspect $DOCKER_CONTAINER_ID | grep IPAddress | cut -d '"' -f 4`
+ DOCKER_CONTAINER_ID=$(docker run -d deepdiver/docker-oracle-xe-11g)
+ DATABASEHOST=$(docker inspect "$DOCKER_CONTAINER_ID" | grep IPAddress | cut -d '"' -f 4)
echo "Waiting 60 seconds for Oracle initialization ... "
sleep 60
@@ -136,20 +158,20 @@ function execute_tests {
# trigger installation
echo "Installing ...."
- ./occ maintenance:install --database=$1 --database-name=$DATABASENAME --database-host=$DATABASEHOST --database-user=$DATABASEUSER --database-pass=owncloud --database-table-prefix=oc_ --admin-user=$ADMINLOGIN --admin-pass=admin --data-dir=$DATADIR
+ "$PHP" ./occ maintenance:install --database="$1" --database-name="$DATABASENAME" --database-host="$DATABASEHOST" --database-user="$DATABASEUSER" --database-pass=owncloud --database-table-prefix=oc_ --admin-user="$ADMINLOGIN" --admin-pass=admin --data-dir="$DATADIR"
#test execution
echo "Testing with $1 ..."
cd tests
rm -rf "coverage-html-$1"
mkdir "coverage-html-$1"
- php -f enable_all.php | grep -i -C9999 error && echo "Error during setup" && exit 101
+ "$PHP" -f enable_all.php | grep -i -C9999 error && echo "Error during setup" && exit 101
if [ -z "$NOCOVERAGE" ]; then
- "$PHPUNIT" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" --coverage-clover "autotest-clover-$1.xml" --coverage-html "coverage-html-$1" "$2" "$3"
+ "${PHPUNIT[@]}" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" --coverage-clover "autotest-clover-$1.xml" --coverage-html "coverage-html-$1" "$2" "$3"
RESULT=$?
else
echo "No coverage"
- "$PHPUNIT" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" "$2" "$3"
+ "${PHPUNIT[@]}" --configuration phpunit-autotest.xml --log-junit "autotest-results-$1.xml" "$2" "$3"
RESULT=$?
fi
}
@@ -161,7 +183,7 @@ if [ -z "$1" ]
then
# run all known database configs
for DBCONFIG in $DBCONFIGS; do
- execute_tests $DBCONFIG
+ execute_tests "$DBCONFIG"
done
else
FILENAME="$2"
diff --git a/config/ca-bundle.crt b/config/ca-bundle.crt
index 7366a6dfaf7..c93d3c4d4a7 100644
--- a/config/ca-bundle.crt
+++ b/config/ca-bundle.crt
@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
-## Certificate data from Mozilla as of: Wed Feb 25 16:40:11 2015
+## Certificate data from Mozilla as of: Mon Apr 27 08:58:04 2015
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,7 +14,7 @@
## Just configure this file as the SSLCACertificateFile.
##
## Conversion done with mk-ca-bundle.pl version 1.25.
-## SHA1: f9bc9fa76145720d94124527f82a7185d921975e
+## SHA1: ed3c0bbfb7912bcc00cd2033b0cb85c98d10559c
##
@@ -174,23 +174,6 @@ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
-----END CERTIFICATE-----
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
-bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
-b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
-PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
-qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
-hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
-BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
-MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
-I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
-NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
AddTrust Low-Value Services Root
================================
-----BEGIN CERTIFICATE-----
@@ -1633,33 +1616,6 @@ JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
vQ==
-----END CERTIFICATE-----
-TC TrustCenter Class 3 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
-MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
-yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
-6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
-uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
-2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
-O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
-yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
-IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
-092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
-5A==
------END CERTIFICATE-----
-
TC TrustCenter Universal CA I
=============================
-----BEGIN CERTIFICATE-----
@@ -2277,28 +2233,6 @@ yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
LXpUq3DDfSJlgnCW
-----END CERTIFICATE-----
-E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
-===================================================
------BEGIN CERTIFICATE-----
-MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
-ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
-MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
-cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
-aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
-8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
-jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
-JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
-9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
-AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
-SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
-F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
-D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
-Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
-fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
------END CERTIFICATE-----
-
GlobalSign Root CA - R3
=======================
-----BEGIN CERTIFICATE-----
@@ -3857,4 +3791,198 @@ h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
+-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G3
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
+olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
+x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
+EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
+Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
+mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
+1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
+07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
+FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
+41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
+yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
+U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
+KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
+v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
+8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
+8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
+mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
+1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
+JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
+tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden EV Root CA
+================================
+-----BEGIN CERTIFICATE-----
+MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
+MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
+cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
+SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
+O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
+0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
+Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
+XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
+08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
+0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
+74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
+fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
+ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
+eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
+c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
+5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
+b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
+f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
+5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
+WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
+DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
+eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
+-----END CERTIFICATE-----
+
+IdenTrust Commercial Root CA 1
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS
+b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES
+MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB
+IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld
+hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/
+mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi
+1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C
+XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl
+3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy
+NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV
+WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg
+xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix
+uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI
+hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
+6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg
+ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt
+ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV
+YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX
+feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro
+kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe
+2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz
+Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
+cGzM7vRX+Bi6hG6H
+-----END CERTIFICATE-----
+
+IdenTrust Public Sector Root CA 1
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv
+ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV
+UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS
+b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy
+P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6
+Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI
+rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf
+qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS
+mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn
+ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh
+LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v
+iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
+4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
+Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw
+DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
+t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A
+mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt
+GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt
+m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx
+NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4
+Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI
+ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC
+ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ
+3Wl9af0AVqW3rLatt8o+Ae+c
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
+bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
+b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
+HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
+DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
+OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
+/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
+HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
+s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
+TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
+AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
+0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
+iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
+Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
+nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
+e4pIb4tF9g==
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - EC1
+==========================================
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
+FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
+YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
+ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
+FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
+LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
+IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
+AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
+9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
+vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
+kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
+-----END CERTIFICATE-----
+
+CFCA EV ROOT
+============
+-----BEGIN CERTIFICATE-----
+MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE
+CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB
+IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw
+MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD
+DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV
+BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD
+7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN
+uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW
+ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7
+xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f
+py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K
+gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol
+hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ
+tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf
+BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
+ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q
+ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua
+4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG
+E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
+BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn
+aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy
+PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
+kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
+ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
-----END CERTIFICATE----- \ No newline at end of file
diff --git a/console.php b/console.php
index 2e55accab21..781905b04b5 100644
--- a/console.php
+++ b/console.php
@@ -28,6 +28,14 @@ use Symfony\Component\Console\Output\ConsoleOutput;
define('OC_CONSOLE', 1);
+// Show warning if a PHP version below 5.4.0 is used, this has to happen here
+// because base.php will already use 5.4 syntax.
+if (version_compare(PHP_VERSION, '5.4.0') === -1) {
+ echo 'This version of ownCloud requires at least PHP 5.4.0'.PHP_EOL;
+ echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.'.PHP_EOL;
+ return;
+}
+
try {
require_once 'lib/base.php';
diff --git a/core/ajax/share.php b/core/ajax/share.php
index d9bf97d6464..a0db77fd1f9 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -354,7 +354,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$sorter = new \OC\Share\SearchResultSorter((string)$_GET['search'],
'label',
- new \OC\Log());
+ \OC::$server->getLogger());
usort($shareWith, array($sorter, 'sort'));
OC_JSON::success(array('data' => $shareWith));
}
diff --git a/core/command/app/checkcode.php b/core/command/app/checkcode.php
index 75b945286f3..6d10714d410 100644
--- a/core/command/app/checkcode.php
+++ b/core/command/app/checkcode.php
@@ -35,7 +35,7 @@ class CheckCode extends Command {
->addArgument(
'app-id',
InputArgument::REQUIRED,
- 'enable the specified app'
+ 'check the specified app'
);
}
@@ -43,16 +43,27 @@ class CheckCode extends Command {
$appId = $input->getArgument('app-id');
$codeChecker = new \OC\App\CodeChecker();
$codeChecker->listen('CodeChecker', 'analyseFileBegin', function($params) use ($output) {
- $output->writeln("<info>Analysing {$params}</info>");
+ if(OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
+ $output->writeln("<info>Analysing {$params}</info>");
+ }
});
- $codeChecker->listen('CodeChecker', 'analyseFileFinished', function($params) use ($output) {
- $count = count($params);
- $output->writeln(" {$count} errors");
- usort($params, function($a, $b) {
+ $codeChecker->listen('CodeChecker', 'analyseFileFinished', function($filename, $errors) use ($output) {
+ $count = count($errors);
+
+ // show filename if the verbosity is low, but there are errors in a file
+ if($count > 0 && OutputInterface::VERBOSITY_VERBOSE > $output->getVerbosity()) {
+ $output->writeln("<info>Analysing {$filename}</info>");
+ }
+
+ // show error count if there are errros present or the verbosity is high
+ if($count > 0 || OutputInterface::VERBOSITY_VERBOSE <= $output->getVerbosity()) {
+ $output->writeln(" {$count} errors");
+ }
+ usort($errors, function($a, $b) {
return $a['line'] >$b['line'];
});
- foreach($params as $p) {
+ foreach($errors as $p) {
$line = sprintf("%' 4d", $p['line']);
$output->writeln(" <error>line $line: {$p['disallowedToken']} - {$p['reason']}</error>");
}
diff --git a/core/command/encryption/disable.php b/core/command/encryption/disable.php
index b5fce5cbd90..e3c0b8d7489 100644
--- a/core/command/encryption/disable.php
+++ b/core/command/encryption/disable.php
@@ -50,7 +50,7 @@ class Disable extends Command {
$output->writeln('Encryption is already disabled');
} else {
$this->config->setAppValue('core', 'encryption_enabled', 'no');
- $output->writeln('Encryption disabled');
+ $output->writeln('<info>Encryption disabled</info>');
}
}
}
diff --git a/core/command/encryption/enable.php b/core/command/encryption/enable.php
index 0b403f86a68..b615a7f4f85 100644
--- a/core/command/encryption/enable.php
+++ b/core/command/encryption/enable.php
@@ -21,6 +21,7 @@
namespace OC\Core\Command\Encryption;
+use OCP\Encryption\IManager;
use OCP\IConfig;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
@@ -30,11 +31,17 @@ class Enable extends Command {
/** @var IConfig */
protected $config;
+ /** @var IManager */
+ protected $encryptionManager;
+
/**
* @param IConfig $config
+ * @param IManager $encryptionManager
*/
- public function __construct(IConfig $config) {
+ public function __construct(IConfig $config, IManager $encryptionManager) {
parent::__construct();
+
+ $this->encryptionManager = $encryptionManager;
$this->config = $config;
}
@@ -50,9 +57,22 @@ class Enable extends Command {
$output->writeln('Encryption is already enabled');
} else {
$this->config->setAppValue('core', 'encryption_enabled', 'yes');
- $output->writeln('Encryption enabled');
+ $output->writeln('<info>Encryption enabled</info>');
}
+ $output->writeln('');
- $output->writeln('Default module: ' . $this->config->getAppValue('core', 'default_encryption_module', 'OC_DEFAULT_MODULE'));
+ $modules = $this->encryptionManager->getEncryptionModules();
+ if (empty($modules)) {
+ $output->writeln('<error>No encryption module is loaded</error>');
+ } else {
+ $defaultModule = $this->config->getAppValue('core', 'default_encryption_module', null);
+ if ($defaultModule === null) {
+ $output->writeln('<error>No default module is set</error>');
+ } else if (!isset($modules[$defaultModule])) {
+ $output->writeln('<error>The current default module does not exist: ' . $defaultModule . '</error>');
+ } else {
+ $output->writeln('Default module: ' . $defaultModule);
+ }
+ }
}
}
diff --git a/core/command/encryption/status.php b/core/command/encryption/status.php
new file mode 100644
index 00000000000..1a52500cf29
--- /dev/null
+++ b/core/command/encryption/status.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * @author Joas Schilling <nickvergessen@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Core\Command\Encryption;
+
+use OC\Core\Command\Base;
+use OCP\Encryption\IManager;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Status extends Base {
+ /** @var IManager */
+ protected $encryptionManager;
+
+ /**
+ * @param IManager $encryptionManager
+ */
+ public function __construct(IManager $encryptionManager) {
+ parent::__construct();
+ $this->encryptionManager = $encryptionManager;
+ }
+
+ protected function configure() {
+ parent::configure();
+
+ $this
+ ->setName('encryption:status')
+ ->setDescription('Lists the current status of encryption')
+ ;
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+ $this->writeArrayInOutputFormat($input, $output, [
+ 'enabled' => $this->encryptionManager->isEnabled(),
+ 'defaultModule' => $this->encryptionManager->getDefaultEncryptionModuleId(),
+ ]);
+ }
+}
diff --git a/core/command/upgrade.php b/core/command/upgrade.php
index 6d01288a404..7f5d943bb8b 100644
--- a/core/command/upgrade.php
+++ b/core/command/upgrade.php
@@ -130,6 +130,9 @@ class Upgrade extends Command {
$updater->listen('\OC\Updater', 'thirdPartyAppDisabled', function ($app) use($output) {
$output->writeln('<info>Disabled 3rd-party app: ' . $app . '</info>');
});
+ $updater->listen('\OC\Updater', 'upgradeAppStoreApp', function ($app) use($output) {
+ $output->writeln('<info>Update 3rd-party app: ' . $app . '</info>');
+ });
$updater->listen('\OC\Updater', 'repairWarning', function ($app) use($output) {
$output->writeln('<error>Repair warning: ' . $app . '</error>');
});
diff --git a/core/css/apps.css b/core/css/apps.css
index 9b662cc31af..57133729f15 100644
--- a/core/css/apps.css
+++ b/core/css/apps.css
@@ -495,6 +495,12 @@ button.loading {
.section.hidden {
display: none !important;
}
+.sub-section {
+ position: relative;
+ margin-top: 10px;
+ margin-left: 27px;
+ margin-bottom: 10px;
+}
/* no top border for first settings item */
#app-content > .section:first-child {
border-top: none;
diff --git a/core/css/multiselect.css b/core/css/multiselect.css
index b3393c450d4..17fd81bf6c3 100644
--- a/core/css/multiselect.css
+++ b/core/css/multiselect.css
@@ -51,7 +51,7 @@ ul.multiselectoptions > li input[type='checkbox']:checked+label {
div.multiselect, select.multiselect {
display: inline-block;
max-width: 200px;
- min-width: 150px;
+ min-width: 150px !important;
padding-right: 10px;
min-height: 20px;
position: relative;
@@ -88,6 +88,7 @@ div.multiselect>span:first-child {
overflow: hidden;
text-overflow: ellipsis;
width: 90%;
+ white-space: nowrap;
}
div.multiselect>span:last-child {
diff --git a/core/css/styles.css b/core/css/styles.css
index 4cf5e4e18ca..c8704066cf1 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -224,6 +224,10 @@ textarea:disabled {
color: #999;
cursor: default;
}
+input:disabled+label, input:disabled:hover+label, input:disabled:focus+label {
+ color: #999 !important;
+ cursor: default;
+}
/* Primary action button, use sparingly */
.primary, input[type="submit"].primary, input[type="button"].primary, button.primary, .button.primary {
diff --git a/core/js/jquery.ocdialog.js b/core/js/jquery.ocdialog.js
index e48e3e8df6a..ea034f0aff7 100644
--- a/core/js/jquery.ocdialog.js
+++ b/core/js/jquery.ocdialog.js
@@ -78,8 +78,12 @@
var pos = self.parent.position();
self.$dialog.css({
left: pos.left + ($(window).innerWidth() - self.$dialog.outerWidth())/2,
- top: pos.top + ($(window).innerHeight() - self.$dialog.outerHeight())/2
+ top: pos.top + ($(window).innerHeight() - self.$dialog.outerHeight())/2,
+ width: Math.min(self.options.width, $(window).innerWidth() - 20 ),
+ height: Math.min(self.options.height, $(window).innerHeight() - 20)
});
+ // set sizes of content
+ self._setSizes();
});
this._setOptions(this.options);
diff --git a/core/js/maintenance-check.js b/core/js/maintenance-check.js
index 061a434214b..663f7fb5f00 100644
--- a/core/js/maintenance-check.js
+++ b/core/js/maintenance-check.js
@@ -3,10 +3,7 @@ window.setInterval(checkStatus, 20000);
function checkStatus() {
var request = new XMLHttpRequest();
- var ocroot = location.pathname.substr(
- 0, location.pathname.indexOf('index.php')
- );
- request.open("GET", ocroot+'status.php', true);
+ request.open("GET", OC.webroot+'/status.php', true);
request.onreadystatechange = function() {
if (request.readyState === 4) {
var response = request.responseText;
diff --git a/core/js/multiselect.js b/core/js/multiselect.js
index 97a3dcfad9c..96144d39ee0 100644
--- a/core/js/multiselect.js
+++ b/core/js/multiselect.js
@@ -191,7 +191,8 @@
});
button.parent().data('preventHide',false);
if(settings.createText){
- var li=$('<li class="creator">+ '+settings.createText+'</li>');
+ var li=$('<li class="creator" title="' + settings.createText +
+ '">+ ' + settings.createText + '</li>');
li.click(function(event){
li.empty();
var input=$('<input type="text" class="new">');
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index afd7debb695..0692a9df5ca 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -207,7 +207,8 @@ var OCdialogs = {
self.$filePicker.ocdialog({
closeOnEscape: true,
- width: (4/5)*$(document).width(),
+ // max-width of 600
+ width: Math.min((4/5)*$(document).width(), 600),
height: 420,
modal: modal,
buttons: buttonlist,
diff --git a/core/js/share.js b/core/js/share.js
index 45873ca870e..121ee97d17f 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -356,7 +356,7 @@ OC.Share={
var data = OC.Share.loadItem(itemType, itemSource);
var dropDownEl;
var html = '<div id="dropdown" class="drop shareDropDown" data-item-type="'+itemType+'" data-item-source="'+itemSource+'">';
- if (data !== false && data.reshare !== false && data.reshare.uid_owner !== undefined) {
+ if (data !== false && data.reshare !== false && data.reshare.uid_owner !== undefined && data.reshare.uid_owner !== OC.currentUser) {
html += '<span class="reshare">';
if (oc_config.enable_avatars === true) {
html += '<div class="avatar"></div> ';
@@ -839,6 +839,24 @@ OC.Share={
$('#defaultExpireMessage').slideDown(OC.menuSpeed);
}
$.datepicker.setDefaults(datePickerOptions);
+ },
+ /**
+ * Get the default Expire date
+ *
+ * @return {String} The expire date
+ */
+ getDefaultExpirationDate:function() {
+ var expireDateString = '';
+ if (oc_appconfig.core.defaultExpireDateEnabled) {
+ var date = new Date().getTime();
+ var expireAfterMs = oc_appconfig.core.defaultExpireDate * 24 * 60 * 60 * 1000;
+ var expireDate = new Date(date + expireAfterMs);
+ var month = expireDate.getMonth() + 1;
+ var year = expireDate.getFullYear();
+ var day = expireDate.getDate();
+ expireDateString = year + "-" + month + '-' + day + ' 00:00:00';
+ }
+ return expireDateString;
}
};
@@ -986,18 +1004,15 @@ $(document).ready(function() {
$('#linkPassText').attr('placeholder', t('core', 'Choose a password for the public link'));
// Reset link
$('#linkText').val('');
+ $('#showPassword').prop('checked', false);
+ $('#linkPass').hide();
+ $('#sharingDialogAllowPublicUpload').prop('checked', false);
+ $('#expirationCheckbox').prop('checked', false);
+ $('#expirationDate').hide();
var expireDateString = '';
- if (oc_appconfig.core.defaultExpireDateEnabled) {
- var date = new Date().getTime();
- var expireAfterMs = oc_appconfig.core.defaultExpireDate * 24 * 60 * 60 * 1000;
- var expireDate = new Date(date + expireAfterMs);
- var month = expireDate.getMonth() + 1;
- var year = expireDate.getFullYear();
- var day = expireDate.getDate();
- expireDateString = year + "-" + month + '-' + day + ' 00:00:00';
- }
// Create a link
if (oc_appconfig.core.enforcePasswordForPublicLink === false) {
+ expireDateString = OC.Share.getDefaultExpirationDate();
$loading.removeClass('hidden');
$button.addClass('hidden');
$button.prop('disabled', true);
@@ -1135,8 +1150,10 @@ $(document).ready(function() {
permissions = OC.PERMISSION_READ;
}
+ var expireDateString = OC.Share.getDefaultExpirationDate();
+
$loading.removeClass('hidden');
- OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, $('#linkPassText').val(), permissions, itemSourceName, function(data) {
+ OC.Share.share(itemType, itemSource, OC.Share.SHARE_TYPE_LINK, $('#linkPassText').val(), permissions, itemSourceName, expireDateString, function(data) {
$loading.addClass('hidden');
linkPassText.val('');
linkPassText.attr('placeholder', t('core', 'Password protected'));
@@ -1145,8 +1162,12 @@ $(document).ready(function() {
OC.Share.showLink(data.token, "password set", itemSource);
OC.Share.updateIcon(itemType, itemSource);
}
+ $('#dropdown').trigger(new $.Event('sharesChanged', {shares: OC.Share.currentShares}));
});
+ if (expireDateString !== '') {
+ OC.Share.showExpirationDate(expireDateString);
+ }
}
});
diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js
index a16358b55c5..c075351b9f5 100644
--- a/core/js/tests/specs/shareSpec.js
+++ b/core/js/tests/specs/shareSpec.js
@@ -29,6 +29,7 @@ describe('OC.Share tests', function() {
var oldEnableAvatars;
var avatarStub;
var placeholderStub;
+ var oldCurrentUser;
beforeEach(function() {
$('#testArea').append($('<div id="shareContainer"></div>'));
@@ -62,8 +63,12 @@ describe('OC.Share tests', function() {
oc_config.enable_avatars = false;
avatarStub = sinon.stub($.fn, 'avatar');
placeholderStub = sinon.stub($.fn, 'imageplaceholder');
+
+ oldCurrentUser = OC.currentUser;
+ OC.currentUser = 'user0';
});
afterEach(function() {
+ OC.currentUser = oldCurrentUser;
/* jshint camelcase:false */
oc_appconfig.core = oldAppConfig;
loadItemStub.restore();
@@ -223,6 +228,112 @@ describe('OC.Share tests', function() {
oc_appconfig.core.enforcePasswordForPublicLink = old;
});
+ it('reset password on toggle of share', function() {
+ $('#allowShareWithLink').val('yes');
+ OC.Share.showDropDown(
+ 'file',
+ 123,
+ $container,
+ true,
+ 31,
+ 'shared_file_name.txt'
+ );
+ $('#dropdown [name=linkCheckbox]').click();
+ fakeServer.requests[0].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({data: {token: 'xyz'}, status: 'success'})
+ );
+
+ //Password protection should be unchecked and password field not visible
+ expect($('#dropdown [name=showPassword]').prop('checked')).toEqual(false);
+ expect($('#dropdown #linkPass').is(":visible")).toEqual(false);
+
+ // Toggle and set password
+ $('#dropdown [name=showPassword]').click();
+ $('#dropdown #linkPassText').val('foo');
+ $('#dropdown #linkPassText').trigger(new $.Event('keyup', {keyCode: 13}));
+ fakeServer.requests[1].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({data: {token: 'xyz2'}, status: 'success'})
+ );
+
+ // Unshare
+ $('#dropdown [name=linkCheckbox]').click();
+ fakeServer.requests[2].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({status: 'success'})
+ );
+
+ // Toggle share again
+ $('#dropdown [name=linkCheckbox]').click();
+ fakeServer.requests[3].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({data: {token: 'xyz3'}, status: 'success'})
+ );
+
+
+ // Password checkbox should be unchecked
+ expect($('#dropdown [name=showPassword]').prop('checked')).toEqual(false);
+ expect($('#dropdown #linkPass').is(":visible")).toEqual(false);
+ });
+ it('reset expiration on toggle of share', function() {
+ $('#allowShareWithLink').val('yes');
+ OC.Share.showDropDown(
+ 'file',
+ 123,
+ $container,
+ true,
+ 31,
+ 'shared_file_name.txt'
+ );
+ $('#dropdown [name=linkCheckbox]').click();
+ fakeServer.requests[0].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({data: {token: 'xyz'}, status: 'success'})
+ );
+
+ //Expiration should be unchecked and expiration field not visible
+ expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(false);
+ expect($('#dropdown #expirationDate').is(":visible")).toEqual(false);
+
+ // Toggle and set password
+ $('#dropdown [name=expirationCheckbox]').click();
+ d = new Date();
+ d.setDate(d.getDate() + 1);
+ date=d.getDate() + '-' + (d.getMonth()+1) + '-' + d.getFullYear();
+ $('#dropdown #expirationDate').val(date);
+ $('#dropdown #expirationDate').change();
+ fakeServer.requests[1].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({data: {token: 'xyz2'}, status: 'success'})
+ );
+
+ // Unshare
+ $('#dropdown [name=linkCheckbox]').click();
+ fakeServer.requests[2].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({status: 'success'})
+ );
+
+ // Toggle share again
+ $('#dropdown [name=linkCheckbox]').click();
+ fakeServer.requests[3].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({data: {token: 'xyz3'}, status: 'success'})
+ );
+
+ // Recheck expire visibility
+ expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(false);
+ expect($('#dropdown #expirationDate').is(":visible")).toEqual(false);
+ });
it('shows populated link share when a link share exists', function() {
loadItemStub.returns({
reshare: [],
@@ -414,6 +525,7 @@ describe('OC.Share tests', function() {
};
loadItemStub.returns(shareData);
oc_appconfig.core.defaultExpireDate = 7;
+ oc_appconfig.core.enforcePasswordForPublicLink = false;
oc_appconfig.core.defaultExpireDateEnabled = false;
oc_appconfig.core.defaultExpireDateEnforced = false;
});
@@ -469,6 +581,32 @@ describe('OC.Share tests', function() {
$('#dropdown [name=expirationCheckbox]').click();
expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(true);
});
+ it('enforces default date when enforced date setting is enabled and password is enforced', function() {
+ /* jshint camelcase:false */
+ oc_appconfig.core.enforcePasswordForPublicLink = true;
+ oc_appconfig.core.defaultExpireDateEnabled = true;
+ oc_appconfig.core.defaultExpireDateEnforced = true;
+ showDropDown();
+ $('#dropdown [name=linkCheckbox]').click();
+
+ //Enter password
+ $('#dropdown #linkPassText').val('foo');
+ $('#dropdown #linkPassText').trigger(new $.Event('keyup', {keyCode: 13}));
+ fakeServer.requests[0].respond(
+ 200,
+ { 'Content-Type': 'application/json' },
+ JSON.stringify({data: {token: 'xyz'}, status: 'success'})
+ );
+
+ expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(true);
+ // TODO: those zeros must go...
+ expect($('#dropdown #expirationDate').val()).toEqual('2014-1-27 00:00:00');
+
+ // disabling is not allowed
+ expect($('#dropdown [name=expirationCheckbox]').prop('disabled')).toEqual(true);
+ $('#dropdown [name=expirationCheckbox]').click();
+ expect($('#dropdown [name=expirationCheckbox]').prop('checked')).toEqual(true);
+ });
it('displayes email form when sending emails is enabled', function() {
$('input[name=mailPublicNotificationEnabled]').val('yes');
showDropDown();
@@ -864,6 +1002,26 @@ describe('OC.Share tests', function() {
);
expect($('#dropdown #shareWithList').length).toEqual(0);
});
+ it('allows owner to share their own share when they are also the recipient', function() {
+ OC.currentUser = 'user1';
+ loadItemStub.returns({
+ reshare: {
+ permissions: OC.PERMISSION_READ,
+ uid_owner: 'user1'
+ },
+ shares: []
+ });
+ OC.Share.showDropDown(
+ 'file',
+ 123,
+ $container,
+ true,
+ OC.PERMISSION_ALL,
+ 'shared_file_name.txt'
+ );
+ // sharing still allowed
+ expect($('#dropdown #shareWithList').length).toEqual(1);
+ });
});
});
});
diff --git a/core/js/update-notification.js b/core/js/update-notification.js
new file mode 100644
index 00000000000..42baa7f4c28
--- /dev/null
+++ b/core/js/update-notification.js
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2015 ownCloud Inc
+ *
+ * @author Morris Jobke <hey@morrisjobke.de>
+ *
+ * This file is licensed under the Affero General Public License version 3
+ * or later.
+ *
+ * See the COPYING-README file.
+ *
+ */
+
+/**
+ * this gets only loaded if an update is available and then shows a temporary notification
+ */
+$(document).ready(function(){
+ var head = $('html > head'),
+ version = head.data('update-version'),
+ docLink = head.data('update-link'),
+ text = t('core', '{version} is available. Get more information on how to update.', {version: version}),
+ element = $('<a>').attr('href', docLink).text(text);
+
+ OC.Notification.showTemporary(
+ element,
+ {
+ isHTML: true
+ }
+ );
+});
+
diff --git a/core/l10n/af_ZA.js b/core/l10n/af_ZA.js
index e5a3b2541d3..43f895fce87 100644
--- a/core/l10n/af_ZA.js
+++ b/core/l10n/af_ZA.js
@@ -108,7 +108,6 @@ OC.L10N.register(
"Database tablespace" : "Databasis tabelspasie",
"Database host" : "Databasis gasheer",
"Finish setup" : "Maak opstelling klaar",
- "%s is available. Get more information on how to update." : "%s is beskikbaar. Kry meer inligting oor opdatering.",
"Log out" : "Teken uit",
"remember" : "onthou",
"Log in" : "Teken aan",
diff --git a/core/l10n/af_ZA.json b/core/l10n/af_ZA.json
index b4a2b5df623..a919524c8c5 100644
--- a/core/l10n/af_ZA.json
+++ b/core/l10n/af_ZA.json
@@ -106,7 +106,6 @@
"Database tablespace" : "Databasis tabelspasie",
"Database host" : "Databasis gasheer",
"Finish setup" : "Maak opstelling klaar",
- "%s is available. Get more information on how to update." : "%s is beskikbaar. Kry meer inligting oor opdatering.",
"Log out" : "Teken uit",
"remember" : "onthou",
"Log in" : "Teken aan",
diff --git a/core/l10n/ast.js b/core/l10n/ast.js
index d80238d71d5..0eb8951a046 100644
--- a/core/l10n/ast.js
+++ b/core/l10n/ast.js
@@ -145,7 +145,6 @@ OC.L10N.register(
"Database host" : "Agospiador de la base de datos",
"Finish setup" : "Finar la configuración ",
"Finishing …" : "Finando ...",
- "%s is available. Get more information on how to update." : "Ta disponible %s. Consigui más información en cómo anovar·",
"Log out" : "Zarrar sesión",
"Search" : "Guetar",
"Server side authentication failed!" : "Falló l'autenticación nel sirvidor!",
diff --git a/core/l10n/ast.json b/core/l10n/ast.json
index ec159007f04..4a6ffcbc03c 100644
--- a/core/l10n/ast.json
+++ b/core/l10n/ast.json
@@ -143,7 +143,6 @@
"Database host" : "Agospiador de la base de datos",
"Finish setup" : "Finar la configuración ",
"Finishing …" : "Finando ...",
- "%s is available. Get more information on how to update." : "Ta disponible %s. Consigui más información en cómo anovar·",
"Log out" : "Zarrar sesión",
"Search" : "Guetar",
"Server side authentication failed!" : "Falló l'autenticación nel sirvidor!",
diff --git a/core/l10n/be.js b/core/l10n/be.js
index a5ed364dc51..defe9f70337 100644
--- a/core/l10n/be.js
+++ b/core/l10n/be.js
@@ -29,4 +29,4 @@ OC.L10N.register(
"The object type is not specified." : "Тып аб'екта не ўдакладняецца.",
"Finish setup" : "Завяршыць ўстаноўку."
},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/core/l10n/be.json b/core/l10n/be.json
index 1c65371e88c..50e1a29dcaf 100644
--- a/core/l10n/be.json
+++ b/core/l10n/be.json
@@ -26,5 +26,5 @@
"Error" : "Памылка",
"The object type is not specified." : "Тып аб'екта не ўдакладняецца.",
"Finish setup" : "Завяршыць ўстаноўку."
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/core/l10n/bg_BG.js b/core/l10n/bg_BG.js
index d6799dd21bf..7c76dd9859e 100644
--- a/core/l10n/bg_BG.js
+++ b/core/l10n/bg_BG.js
@@ -191,7 +191,6 @@ OC.L10N.register(
"Finish setup" : "Завършване на настройките",
"Finishing …" : "Завършване...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Това приложение изисква JavaScript, за да функционира правилно. Моля, {linkstart}включи JavaScript{linkend} и презареди страницата.",
- "%s is available. Get more information on how to update." : "%s е на разположение. Прочети повече как да обновиш. ",
"Log out" : "Отписване",
"Search" : "Търсене",
"Server side authentication failed!" : "Удостоверяването от страна на сървъра е неуспешно!",
diff --git a/core/l10n/bg_BG.json b/core/l10n/bg_BG.json
index d1e57eddb1e..78e769f46f1 100644
--- a/core/l10n/bg_BG.json
+++ b/core/l10n/bg_BG.json
@@ -189,7 +189,6 @@
"Finish setup" : "Завършване на настройките",
"Finishing …" : "Завършване...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Това приложение изисква JavaScript, за да функционира правилно. Моля, {linkstart}включи JavaScript{linkend} и презареди страницата.",
- "%s is available. Get more information on how to update." : "%s е на разположение. Прочети повече как да обновиш. ",
"Log out" : "Отписване",
"Search" : "Търсене",
"Server side authentication failed!" : "Удостоверяването от страна на сървъра е неуспешно!",
diff --git a/core/l10n/bs.js b/core/l10n/bs.js
index 011814fd92d..819308dd66e 100644
--- a/core/l10n/bs.js
+++ b/core/l10n/bs.js
@@ -166,7 +166,6 @@ OC.L10N.register(
"Database host" : "Glavno računalo (host) baze podataka",
"Finish setup" : "Završite postavke",
"Finishing …" : "Završavanje...",
- "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.",
"Log out" : "Odjava",
"Search" : "Potraži",
"Server side authentication failed!" : "Autentikacija na strani servera nije uspjela!",
diff --git a/core/l10n/bs.json b/core/l10n/bs.json
index 6278af062ed..b1f860fda14 100644
--- a/core/l10n/bs.json
+++ b/core/l10n/bs.json
@@ -164,7 +164,6 @@
"Database host" : "Glavno računalo (host) baze podataka",
"Finish setup" : "Završite postavke",
"Finishing …" : "Završavanje...",
- "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.",
"Log out" : "Odjava",
"Search" : "Potraži",
"Server side authentication failed!" : "Autentikacija na strani servera nije uspjela!",
diff --git a/core/l10n/ca.js b/core/l10n/ca.js
index bacde34924a..8aa4c608f75 100644
--- a/core/l10n/ca.js
+++ b/core/l10n/ca.js
@@ -193,7 +193,6 @@ OC.L10N.register(
"Need help?" : "Necessites ajuda?",
"See the documentation" : "Consulti la documentació",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.",
- "%s is available. Get more information on how to update." : "%s està disponible. Obtingueu més informació de com actualitzar.",
"Log out" : "Surt",
"Search" : "Cerca",
"Server side authentication failed!" : "L'autenticació del servidor ha fallat!",
diff --git a/core/l10n/ca.json b/core/l10n/ca.json
index 92f7186558e..bb846a1d3ef 100644
--- a/core/l10n/ca.json
+++ b/core/l10n/ca.json
@@ -191,7 +191,6 @@
"Need help?" : "Necessites ajuda?",
"See the documentation" : "Consulti la documentació",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.",
- "%s is available. Get more information on how to update." : "%s està disponible. Obtingueu més informació de com actualitzar.",
"Log out" : "Surt",
"Search" : "Cerca",
"Server side authentication failed!" : "L'autenticació del servidor ha fallat!",
diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js
index 99dced0c102..283f97c3be1 100644
--- a/core/l10n/cs_CZ.js
+++ b/core/l10n/cs_CZ.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Ahoj {name}, je {weather}",
"Hello {name}" : "Vítej, {name}",
"_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"],
+ "{version} is available. Get more information on how to update." : "Je dostupná {version}. Přečtěte si více informací jak aktualizovat.",
"Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.",
"Please reload the page." : "Načtěte stránku znovu, prosím.",
"The update was unsuccessful. " : "Aktualizace nebyla úspěšná.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Potřebujete pomoc?",
"See the documentation" : "Shlédnout dokumentaci",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tato aplikace potřebuje pro správnou funkčnost JavaScript. Prosím {linkstart}povolte JavaScript{linkend} a znovu načtěte stránku.",
- "%s is available. Get more information on how to update." : "%s je dostupná. Získejte více informací k postupu aktualizace.",
"Log out" : "Odhlásit se",
"Search" : "Hledat",
"Server side authentication failed!" : "Autentizace na serveru selhala!",
diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json
index 33514bac3cc..a2ff9f9dda1 100644
--- a/core/l10n/cs_CZ.json
+++ b/core/l10n/cs_CZ.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Ahoj {name}, je {weather}",
"Hello {name}" : "Vítej, {name}",
"_download %n file_::_download %n files_" : ["stáhnout %n soubor","stáhnout %n soubory","stáhnout %n souborů"],
+ "{version} is available. Get more information on how to update." : "Je dostupná {version}. Přečtěte si více informací jak aktualizovat.",
"Updating {productName} to version {version}, this may take a while." : "Aktualizuji {productName} na verzi {version}, může to chvíli trvat.",
"Please reload the page." : "Načtěte stránku znovu, prosím.",
"The update was unsuccessful. " : "Aktualizace nebyla úspěšná.",
@@ -202,7 +203,6 @@
"Need help?" : "Potřebujete pomoc?",
"See the documentation" : "Shlédnout dokumentaci",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tato aplikace potřebuje pro správnou funkčnost JavaScript. Prosím {linkstart}povolte JavaScript{linkend} a znovu načtěte stránku.",
- "%s is available. Get more information on how to update." : "%s je dostupná. Získejte více informací k postupu aktualizace.",
"Log out" : "Odhlásit se",
"Search" : "Hledat",
"Server side authentication failed!" : "Autentizace na serveru selhala!",
diff --git a/core/l10n/cy_GB.js b/core/l10n/cy_GB.js
index 351634259bb..f72771889d6 100644
--- a/core/l10n/cy_GB.js
+++ b/core/l10n/cy_GB.js
@@ -79,7 +79,6 @@ OC.L10N.register(
"Database tablespace" : "Tablespace cronfa ddata",
"Database host" : "Gwesteiwr cronfa ddata",
"Finish setup" : "Gorffen sefydlu",
- "%s is available. Get more information on how to update." : "%s ar gael. Mwy o wybodaeth am sut i ddiweddaru.",
"Log out" : "Allgofnodi",
"Search" : "Chwilio",
"remember" : "cofio",
diff --git a/core/l10n/cy_GB.json b/core/l10n/cy_GB.json
index 88cf0713eeb..a8cac06d4fb 100644
--- a/core/l10n/cy_GB.json
+++ b/core/l10n/cy_GB.json
@@ -77,7 +77,6 @@
"Database tablespace" : "Tablespace cronfa ddata",
"Database host" : "Gwesteiwr cronfa ddata",
"Finish setup" : "Gorffen sefydlu",
- "%s is available. Get more information on how to update." : "%s ar gael. Mwy o wybodaeth am sut i ddiweddaru.",
"Log out" : "Allgofnodi",
"Search" : "Chwilio",
"remember" : "cofio",
diff --git a/core/l10n/da.js b/core/l10n/da.js
index 4faab8d979d..92070deb47a 100644
--- a/core/l10n/da.js
+++ b/core/l10n/da.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Hej {name}, vejret er {weather}",
"Hello {name}" : "Hej {name}",
"_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"],
+ "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.",
"Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.",
"Please reload the page." : "Genindlæs venligst siden",
"The update was unsuccessful. " : "Opdateringen blev ikke gennemført.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Brug for hjælp?",
"See the documentation" : "Se dokumentationen",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden. ",
- "%s is available. Get more information on how to update." : "%s er tilgængelig. Få mere information om, hvordan du opdaterer.",
"Log out" : "Log ud",
"Search" : "Søg",
"Server side authentication failed!" : "Server side godkendelse mislykkedes!",
diff --git a/core/l10n/da.json b/core/l10n/da.json
index 1e14894735e..1e330003cfe 100644
--- a/core/l10n/da.json
+++ b/core/l10n/da.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Hej {name}, vejret er {weather}",
"Hello {name}" : "Hej {name}",
"_download %n file_::_download %n files_" : ["hent %n fil","hent %n filer"],
+ "{version} is available. Get more information on how to update." : "{version} er tilgængelig. Få mere information om hvordan du opdaterer.",
"Updating {productName} to version {version}, this may take a while." : "Opdaterer {productName} til version {version}, det kan tage et stykke tid.",
"Please reload the page." : "Genindlæs venligst siden",
"The update was unsuccessful. " : "Opdateringen blev ikke gennemført.",
@@ -202,7 +203,6 @@
"Need help?" : "Brug for hjælp?",
"See the documentation" : "Se dokumentationen",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikation kræver JavaScript for at fungere korrekt. {linkstart}Slå venligst JavaScript til{linkend} og genindlæs siden. ",
- "%s is available. Get more information on how to update." : "%s er tilgængelig. Få mere information om, hvordan du opdaterer.",
"Log out" : "Log ud",
"Search" : "Søg",
"Server side authentication failed!" : "Server side godkendelse mislykkedes!",
diff --git a/core/l10n/de.js b/core/l10n/de.js
index e3813f094a5..4177a028cd4 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}",
"Hello {name}" : "Hallo {name}",
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.",
"Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.",
"Please reload the page." : "Bitte lade die Seite neu.",
"The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Hilfe nötig?",
"See the documentation" : "Schau in die Dokumentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktiviere JavaScript{linkend} und lade die Seite neu.",
- "%s is available. Get more information on how to update." : "%s ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.",
"Log out" : "Abmelden",
"Search" : "Suche",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 469d72b1df3..9959c62385c 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}",
"Hello {name}" : "Hallo {name}",
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.",
"Updating {productName} to version {version}, this may take a while." : "Aktualisiere {productName} auf Version {version}. Dies könnte eine Weile dauern.",
"Please reload the page." : "Bitte lade die Seite neu.",
"The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
@@ -202,7 +203,6 @@
"Need help?" : "Hilfe nötig?",
"See the documentation" : "Schau in die Dokumentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktiviere JavaScript{linkend} und lade die Seite neu.",
- "%s is available. Get more information on how to update." : "%s ist verfügbar. Hole weitere Informationen zu Aktualisierungen ein.",
"Log out" : "Abmelden",
"Search" : "Suche",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
diff --git a/core/l10n/de_AT.js b/core/l10n/de_AT.js
index 360ddbeae90..7fafeb40208 100644
--- a/core/l10n/de_AT.js
+++ b/core/l10n/de_AT.js
@@ -21,11 +21,15 @@ OC.L10N.register(
"November" : "November",
"December" : "Dezember",
"Settings" : "Einstellungen",
+ "No" : "Nein",
+ "Yes" : "Ja",
"Cancel" : "Abbrechen",
"Continue" : "Weiter",
"Share" : "Freigeben",
"Error" : "Fehler",
+ "Share link" : "Link teilen",
"Password" : "Passwort",
+ "Send" : "Senden",
"group" : "Gruppe",
"Unshare" : "Teilung zurücknehmen",
"can share" : "Kann teilen",
@@ -33,6 +37,7 @@ OC.L10N.register(
"Delete" : "Löschen",
"Add" : "Hinzufügen",
"Personal" : "Persönlich",
- "Help" : "Hilfe"
+ "Help" : "Hilfe",
+ "Username" : "Benutzername"
},
"nplurals=2; plural=(n != 1);");
diff --git a/core/l10n/de_AT.json b/core/l10n/de_AT.json
index 5acbc0a888f..56557d96d9c 100644
--- a/core/l10n/de_AT.json
+++ b/core/l10n/de_AT.json
@@ -19,11 +19,15 @@
"November" : "November",
"December" : "Dezember",
"Settings" : "Einstellungen",
+ "No" : "Nein",
+ "Yes" : "Ja",
"Cancel" : "Abbrechen",
"Continue" : "Weiter",
"Share" : "Freigeben",
"Error" : "Fehler",
+ "Share link" : "Link teilen",
"Password" : "Passwort",
+ "Send" : "Senden",
"group" : "Gruppe",
"Unshare" : "Teilung zurücknehmen",
"can share" : "Kann teilen",
@@ -31,6 +35,7 @@
"Delete" : "Löschen",
"Add" : "Hinzufügen",
"Personal" : "Persönlich",
- "Help" : "Hilfe"
+ "Help" : "Hilfe",
+ "Username" : "Benutzername"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index af00fd203c8..61cd7869768 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}",
"Hello {name}" : "Hallo {name}",
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.",
"Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.",
"Please reload the page." : "Bitte laden Sie die Seite neu.",
"The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Hilfe nötig?",
"See the documentation" : "Schauen Sie in die Dokumentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktivieren Sie JavaScript{linkend} und laden Sie die Seite neu.",
- "%s is available. Get more information on how to update." : "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.",
"Log out" : "Abmelden",
"Search" : "Suche",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 79b71510c6f..86ec7e75b02 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Hallo {name}, das Wetter ist {weather}",
"Hello {name}" : "Hallo {name}",
"_download %n file_::_download %n files_" : ["Lade %n Datei herunter","Lade %n Dateien herunter"],
+ "{version} is available. Get more information on how to update." : "{version} ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.",
"Updating {productName} to version {version}, this may take a while." : "{productName} wird auf Version {version} aktualisiert. Das könnte eine Weile dauern.",
"Please reload the page." : "Bitte laden Sie die Seite neu.",
"The update was unsuccessful. " : "Die Aktualisierung war nicht erfolgreich.",
@@ -202,7 +203,6 @@
"Need help?" : "Hilfe nötig?",
"See the documentation" : "Schauen Sie in die Dokumentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Diese Anwendung benötigt zum ordnungsgemäßen Betrieb JavaScript. Bitte {linkstart}aktivieren Sie JavaScript{linkend} und laden Sie die Seite neu.",
- "%s is available. Get more information on how to update." : "%s ist verfügbar. Holen Sie weitere Informationen zu Aktualisierungen ein.",
"Log out" : "Abmelden",
"Search" : "Suche",
"Server side authentication failed!" : "Serverseitige Authentifizierung fehlgeschlagen!",
diff --git a/core/l10n/el.js b/core/l10n/el.js
index dbcf71da33a..4c9cf8e018d 100644
--- a/core/l10n/el.js
+++ b/core/l10n/el.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Γειά σου {name}, ο καιρός είναι {weather}",
"Hello {name}" : "Γεια σου {name}",
"_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"],
+ "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.",
"Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.",
"Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.",
"The update was unsuccessful. " : "Η ενημέρωση ήταν ανεπιτυχής.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Θέλετε βοήθεια;",
"See the documentation" : "Δείτε την τεκμηρίωση",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Αυτή η εφαρμογή απαιτεί JavaScript για σωστή λειτουργία. Παρακαλώ {linkstart} ενεργοποιήστε τη JavaScrip {linkend} και επαναφορτώστε τη σελίδα.",
- "%s is available. Get more information on how to update." : "%s είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες στο πώς να αναβαθμίσετε.",
"Log out" : "Αποσύνδεση",
"Search" : "Αναζήτηση",
"Server side authentication failed!" : "Η διαδικασία επικύρωσης απέτυχε από την πλευρά του διακομιστή!",
diff --git a/core/l10n/el.json b/core/l10n/el.json
index 1d303a0a5e3..3cf513b2e9a 100644
--- a/core/l10n/el.json
+++ b/core/l10n/el.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Γειά σου {name}, ο καιρός είναι {weather}",
"Hello {name}" : "Γεια σου {name}",
"_download %n file_::_download %n files_" : ["λήψη %n αρχείου","λήψη %n αρχείων"],
+ "{version} is available. Get more information on how to update." : "Η έκδοση {version} είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες για το πως να κάνετε την ενημέρωση.",
"Updating {productName} to version {version}, this may take a while." : "Ενημέρωση του {productName} στην έκδοση {version}, αυτό μπορεί να διαρκέσει λίγη ώρα.",
"Please reload the page." : "Παρακαλώ επαναφορτώστε τη σελίδα.",
"The update was unsuccessful. " : "Η ενημέρωση ήταν ανεπιτυχής.",
@@ -202,7 +203,6 @@
"Need help?" : "Θέλετε βοήθεια;",
"See the documentation" : "Δείτε την τεκμηρίωση",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Αυτή η εφαρμογή απαιτεί JavaScript για σωστή λειτουργία. Παρακαλώ {linkstart} ενεργοποιήστε τη JavaScrip {linkend} και επαναφορτώστε τη σελίδα.",
- "%s is available. Get more information on how to update." : "%s είναι διαθέσιμη. Δείτε περισσότερες πληροφορίες στο πώς να αναβαθμίσετε.",
"Log out" : "Αποσύνδεση",
"Search" : "Αναζήτηση",
"Server side authentication failed!" : "Η διαδικασία επικύρωσης απέτυχε από την πλευρά του διακομιστή!",
diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js
index 3710c36940f..910419fc498 100644
--- a/core/l10n/en_GB.js
+++ b/core/l10n/en_GB.js
@@ -204,7 +204,6 @@ OC.L10N.register(
"Need help?" : "Need help?",
"See the documentation" : "See the documentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.",
- "%s is available. Get more information on how to update." : "%s is available. Get more information on how to update.",
"Log out" : "Log out",
"Search" : "Search",
"Server side authentication failed!" : "Server side authentication failed!",
diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json
index 0890e6e6cdb..6087dfcf4eb 100644
--- a/core/l10n/en_GB.json
+++ b/core/l10n/en_GB.json
@@ -202,7 +202,6 @@
"Need help?" : "Need help?",
"See the documentation" : "See the documentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.",
- "%s is available. Get more information on how to update." : "%s is available. Get more information on how to update.",
"Log out" : "Log out",
"Search" : "Search",
"Server side authentication failed!" : "Server side authentication failed!",
diff --git a/core/l10n/eo.js b/core/l10n/eo.js
index 384c60388e0..576ca002f1b 100644
--- a/core/l10n/eo.js
+++ b/core/l10n/eo.js
@@ -107,7 +107,6 @@ OC.L10N.register(
"Database host" : "Datumbaza gastigo",
"Finish setup" : "Fini la instalon",
"Finishing …" : "Finante...",
- "%s is available. Get more information on how to update." : "%s haveblas. Ekhavi pli da informo pri kiel ĝisdatigi.",
"Log out" : "Elsaluti",
"Search" : "Serĉi",
"Please contact your administrator." : "Bonvolu kontakti vian administranton.",
diff --git a/core/l10n/eo.json b/core/l10n/eo.json
index ac1d5fdb05f..7a822177209 100644
--- a/core/l10n/eo.json
+++ b/core/l10n/eo.json
@@ -105,7 +105,6 @@
"Database host" : "Datumbaza gastigo",
"Finish setup" : "Fini la instalon",
"Finishing …" : "Finante...",
- "%s is available. Get more information on how to update." : "%s haveblas. Ekhavi pli da informo pri kiel ĝisdatigi.",
"Log out" : "Elsaluti",
"Search" : "Serĉi",
"Please contact your administrator." : "Bonvolu kontakti vian administranton.",
diff --git a/core/l10n/es.js b/core/l10n/es.js
index 3f6342db271..0f6239bac2f 100644
--- a/core/l10n/es.js
+++ b/core/l10n/es.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Hola {name}, el día es {weather}",
"Hello {name}" : "Hola {name}",
"_download %n file_::_download %n files_" : ["descargar %n ficheros","descargar %n ficheros"],
+ "{version} is available. Get more information on how to update." : "Una nueva {version} está disponible. Consiga mas información de como actualizar.",
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a la versión {version}. Esto puede tardar un poco.",
"Please reload the page." : "Recargue/Actualice la página",
"The update was unsuccessful. " : "La actualización ha fallado.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Necesita ayuda?",
"See the documentation" : "Vea la documentación",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.",
- "%s is available. Get more information on how to update." : "%s está disponible. Obtener más información de como actualizar.",
"Log out" : "Salir",
"Search" : "Buscar",
"Server side authentication failed!" : "La autenticación a fallado en el servidor.",
diff --git a/core/l10n/es.json b/core/l10n/es.json
index acede300e0e..f978e29c713 100644
--- a/core/l10n/es.json
+++ b/core/l10n/es.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Hola {name}, el día es {weather}",
"Hello {name}" : "Hola {name}",
"_download %n file_::_download %n files_" : ["descargar %n ficheros","descargar %n ficheros"],
+ "{version} is available. Get more information on how to update." : "Una nueva {version} está disponible. Consiga mas información de como actualizar.",
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a la versión {version}. Esto puede tardar un poco.",
"Please reload the page." : "Recargue/Actualice la página",
"The update was unsuccessful. " : "La actualización ha fallado.",
@@ -202,7 +203,6 @@
"Need help?" : "Necesita ayuda?",
"See the documentation" : "Vea la documentación",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.",
- "%s is available. Get more information on how to update." : "%s está disponible. Obtener más información de como actualizar.",
"Log out" : "Salir",
"Search" : "Buscar",
"Server side authentication failed!" : "La autenticación a fallado en el servidor.",
diff --git a/core/l10n/es_AR.js b/core/l10n/es_AR.js
index 34de8d1bddf..5ab12bd93f2 100644
--- a/core/l10n/es_AR.js
+++ b/core/l10n/es_AR.js
@@ -126,7 +126,6 @@ OC.L10N.register(
"Database host" : "Huésped de la base de datos",
"Finish setup" : "Completar la instalación",
"Finishing …" : "Finalizando...",
- "%s is available. Get more information on how to update." : "%s está disponible. Obtené más información sobre cómo actualizar.",
"Log out" : "Cerrar la sesión",
"Search" : "Buscar",
"Server side authentication failed!" : "¡Falló la autenticación del servidor!",
diff --git a/core/l10n/es_AR.json b/core/l10n/es_AR.json
index e6b66145b56..69c7732c436 100644
--- a/core/l10n/es_AR.json
+++ b/core/l10n/es_AR.json
@@ -124,7 +124,6 @@
"Database host" : "Huésped de la base de datos",
"Finish setup" : "Completar la instalación",
"Finishing …" : "Finalizando...",
- "%s is available. Get more information on how to update." : "%s está disponible. Obtené más información sobre cómo actualizar.",
"Log out" : "Cerrar la sesión",
"Search" : "Buscar",
"Server side authentication failed!" : "¡Falló la autenticación del servidor!",
diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js
index 12c213409d6..cc01b07c8c6 100644
--- a/core/l10n/es_MX.js
+++ b/core/l10n/es_MX.js
@@ -120,7 +120,6 @@ OC.L10N.register(
"Database host" : "Host de la base de datos",
"Finish setup" : "Completar la instalación",
"Finishing …" : "Finalizando …",
- "%s is available. Get more information on how to update." : "%s esta disponible. Obtener mas información de como actualizar.",
"Log out" : "Salir",
"Search" : "Buscar",
"Server side authentication failed!" : "La autenticación a fallado en el servidor.",
diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json
index 9261effe9aa..265788ee9a8 100644
--- a/core/l10n/es_MX.json
+++ b/core/l10n/es_MX.json
@@ -118,7 +118,6 @@
"Database host" : "Host de la base de datos",
"Finish setup" : "Completar la instalación",
"Finishing …" : "Finalizando …",
- "%s is available. Get more information on how to update." : "%s esta disponible. Obtener mas información de como actualizar.",
"Log out" : "Salir",
"Search" : "Buscar",
"Server side authentication failed!" : "La autenticación a fallado en el servidor.",
diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js
index 40195e2769c..f984f2ceac8 100644
--- a/core/l10n/et_EE.js
+++ b/core/l10n/et_EE.js
@@ -171,7 +171,6 @@ OC.L10N.register(
"Database host" : "Andmebaasi host",
"Finish setup" : "Lõpeta seadistamine",
"Finishing …" : "Lõpetamine ...",
- "%s is available. Get more information on how to update." : "%s on saadaval. Vaata lähemalt kuidas uuendada.",
"Log out" : "Logi välja",
"Search" : "Otsi",
"Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!",
diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json
index 3ab79a04cde..83b8ba6fb9c 100644
--- a/core/l10n/et_EE.json
+++ b/core/l10n/et_EE.json
@@ -169,7 +169,6 @@
"Database host" : "Andmebaasi host",
"Finish setup" : "Lõpeta seadistamine",
"Finishing …" : "Lõpetamine ...",
- "%s is available. Get more information on how to update." : "%s on saadaval. Vaata lähemalt kuidas uuendada.",
"Log out" : "Logi välja",
"Search" : "Otsi",
"Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!",
diff --git a/core/l10n/eu.js b/core/l10n/eu.js
index 60ff75b40c5..d5e5685241b 100644
--- a/core/l10n/eu.js
+++ b/core/l10n/eu.js
@@ -177,7 +177,6 @@ OC.L10N.register(
"Database host" : "Datubasearen hostalaria",
"Finish setup" : "Bukatu konfigurazioa",
"Finishing …" : "Bukatzen...",
- "%s is available. Get more information on how to update." : "%s erabilgarri dago. Eguneratzeaz argibide gehiago eskuratu.",
"Log out" : "Saioa bukatu",
"Search" : "Bilatu",
"Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!",
diff --git a/core/l10n/eu.json b/core/l10n/eu.json
index f60ea87120c..96dbd223347 100644
--- a/core/l10n/eu.json
+++ b/core/l10n/eu.json
@@ -175,7 +175,6 @@
"Database host" : "Datubasearen hostalaria",
"Finish setup" : "Bukatu konfigurazioa",
"Finishing …" : "Bukatzen...",
- "%s is available. Get more information on how to update." : "%s erabilgarri dago. Eguneratzeaz argibide gehiago eskuratu.",
"Log out" : "Saioa bukatu",
"Search" : "Bilatu",
"Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!",
diff --git a/core/l10n/fa.js b/core/l10n/fa.js
index a454ba75ee0..7263c05da88 100644
--- a/core/l10n/fa.js
+++ b/core/l10n/fa.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Database host" : "هاست پایگاه داده",
"Finish setup" : "اتمام نصب",
"Finishing …" : "در حال اتمام ...",
- "%s is available. Get more information on how to update." : "%s در دسترس است. برای چگونگی به روز رسانی اطلاعات بیشتر را دریافت نمایید.",
"Log out" : "خروج",
"Search" : "جست‌و‌جو",
"remember" : "بیاد آوری",
diff --git a/core/l10n/fa.json b/core/l10n/fa.json
index d7e58ef43ed..804a8a66fa1 100644
--- a/core/l10n/fa.json
+++ b/core/l10n/fa.json
@@ -122,7 +122,6 @@
"Database host" : "هاست پایگاه داده",
"Finish setup" : "اتمام نصب",
"Finishing …" : "در حال اتمام ...",
- "%s is available. Get more information on how to update." : "%s در دسترس است. برای چگونگی به روز رسانی اطلاعات بیشتر را دریافت نمایید.",
"Log out" : "خروج",
"Search" : "جست‌و‌جو",
"remember" : "بیاد آوری",
diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js
index 60a4a643bd4..47edd9464bf 100644
--- a/core/l10n/fi_FI.js
+++ b/core/l10n/fi_FI.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Hei {name}, sää on {weather}",
"Hello {name}" : "Hei {name}",
"_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"],
+ "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.",
"Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.",
"Please reload the page." : "Päivitä sivu.",
"The update was unsuccessful. " : "Päivitys epäonnistui.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Tarvitsetko apua?",
"See the documentation" : "Tutustu dokumentaatioon",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.",
- "%s is available. Get more information on how to update." : "%s on saatavilla. Lue lisätietoja, miten päivitys asennetaan.",
"Log out" : "Kirjaudu ulos",
"Search" : "Etsi",
"Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!",
diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json
index 48368424402..198bec2f9fb 100644
--- a/core/l10n/fi_FI.json
+++ b/core/l10n/fi_FI.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Hei {name}, sää on {weather}",
"Hello {name}" : "Hei {name}",
"_download %n file_::_download %n files_" : ["lataa %n tiedosto","lataa %n tiedostoa"],
+ "{version} is available. Get more information on how to update." : "{version} on saatavilla. Tarjolla on lisätietoja päivittämisestä.",
"Updating {productName} to version {version}, this may take a while." : "Päivitetään {productName} versioon {version}, tämä saattaa kestää hetken.",
"Please reload the page." : "Päivitä sivu.",
"The update was unsuccessful. " : "Päivitys epäonnistui.",
@@ -202,7 +203,6 @@
"Need help?" : "Tarvitsetko apua?",
"See the documentation" : "Tutustu dokumentaatioon",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.",
- "%s is available. Get more information on how to update." : "%s on saatavilla. Lue lisätietoja, miten päivitys asennetaan.",
"Log out" : "Kirjaudu ulos",
"Search" : "Etsi",
"Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!",
diff --git a/core/l10n/fr.js b/core/l10n/fr.js
index f08e19415a1..8f5bff70d4e 100644
--- a/core/l10n/fr.js
+++ b/core/l10n/fr.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}",
"Hello {name}" : "Hello {name}",
"_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"],
+ "{version} is available. Get more information on how to update." : "La version {version} est disponible. Obtenez plus d'informations à propos de cette mise à jour.",
"Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.",
"Please reload the page." : "Veuillez recharger la page.",
"The update was unsuccessful. " : "La mise à jour a échoué.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Besoin d'aide?",
"See the documentation" : "Lire la documentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.",
- "%s is available. Get more information on how to update." : "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour.",
"Log out" : "Se déconnecter",
"Search" : "Rechercher",
"Server side authentication failed!" : "L'authentification sur le serveur a échoué !",
diff --git a/core/l10n/fr.json b/core/l10n/fr.json
index 93e04bc39f7..6e0e9f4aa18 100644
--- a/core/l10n/fr.json
+++ b/core/l10n/fr.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}",
"Hello {name}" : "Hello {name}",
"_download %n file_::_download %n files_" : ["Télécharger %n fichier","Télécharger %n fichiers"],
+ "{version} is available. Get more information on how to update." : "La version {version} est disponible. Obtenez plus d'informations à propos de cette mise à jour.",
"Updating {productName} to version {version}, this may take a while." : "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.",
"Please reload the page." : "Veuillez recharger la page.",
"The update was unsuccessful. " : "La mise à jour a échoué.",
@@ -202,7 +203,6 @@
"Need help?" : "Besoin d'aide?",
"See the documentation" : "Lire la documentation",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.",
- "%s is available. Get more information on how to update." : "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour.",
"Log out" : "Se déconnecter",
"Search" : "Rechercher",
"Server side authentication failed!" : "L'authentification sur le serveur a échoué !",
diff --git a/core/l10n/gl.js b/core/l10n/gl.js
index 789d24b13f3..79119d32ce2 100644
--- a/core/l10n/gl.js
+++ b/core/l10n/gl.js
@@ -43,7 +43,7 @@ OC.L10N.register(
"Saving..." : "Gardando...",
"Couldn't send reset email. Please contact your administrator." : "Non foi posíbel enviar o coreo do restablecemento. Póñase en contacto co administrador.",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "A ligazón para restabelecer o seu contrasinal foi enviada ao seu correo. Se non a recibe nun prazo razoábel de tempo, vexa o seu cartafol de correo lixo. <br> Se non está ali pregúntelle ao administrador local.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere?",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere continuar?",
"I know what I'm doing" : "Sei o estou a facer",
"Password can not be changed. Please contact your administrator." : "Non é posíbel cambiar o contrasinal. Póñase en contacto co administrador.",
"No" : "Non",
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Ola {name}, o tempo é {weather}",
"Hello {name}" : "Ola {name}",
"_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"],
+ "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar.",
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.",
"Please reload the page." : "Volva cargar a páxina.",
"The update was unsuccessful. " : "Fracasou a actualización.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Precisa axuda?",
"See the documentation" : "Vexa a documentación",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación require JavaScript para un correcto funcionamento. {linkstart}Active JavaScript{linkend} e volva cargar a páxina.",
- "%s is available. Get more information on how to update." : "%s está dispoñíbel. Obteña máis información sobre como actualizar.",
"Log out" : "Desconectar",
"Search" : "Buscar",
"Server side authentication failed!" : "A autenticación fracasou do lado do servidor!",
diff --git a/core/l10n/gl.json b/core/l10n/gl.json
index 0800e96c699..c1d17291e45 100644
--- a/core/l10n/gl.json
+++ b/core/l10n/gl.json
@@ -41,7 +41,7 @@
"Saving..." : "Gardando...",
"Couldn't send reset email. Please contact your administrator." : "Non foi posíbel enviar o coreo do restablecemento. Póñase en contacto co administrador.",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "A ligazón para restabelecer o seu contrasinal foi enviada ao seu correo. Se non a recibe nun prazo razoábel de tempo, vexa o seu cartafol de correo lixo. <br> Se non está ali pregúntelle ao administrador local.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere?",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros están cifrados. Se non activou a chave de recuperación, non haberá maneira de recuperar os datos após o restabelecemento do contrasinal. <br />Se non está seguro de que facer, póñase en contacto co administrador antes de continuar. <br /> Confirma que quere continuar?",
"I know what I'm doing" : "Sei o estou a facer",
"Password can not be changed. Please contact your administrator." : "Non é posíbel cambiar o contrasinal. Póñase en contacto co administrador.",
"No" : "Non",
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Ola {name}, o tempo é {weather}",
"Hello {name}" : "Ola {name}",
"_download %n file_::_download %n files_" : ["descargar %n ficheiro","descargar %n ficheiros"],
+ "{version} is available. Get more information on how to update." : "{version} está dispoñíbel. Obteña máis información sobre como actualizar.",
"Updating {productName} to version {version}, this may take a while." : "Actualizando {productName} a versión {version}, isto pode levar un anaco.",
"Please reload the page." : "Volva cargar a páxina.",
"The update was unsuccessful. " : "Fracasou a actualización.",
@@ -202,7 +203,6 @@
"Need help?" : "Precisa axuda?",
"See the documentation" : "Vexa a documentación",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación require JavaScript para un correcto funcionamento. {linkstart}Active JavaScript{linkend} e volva cargar a páxina.",
- "%s is available. Get more information on how to update." : "%s está dispoñíbel. Obteña máis información sobre como actualizar.",
"Log out" : "Desconectar",
"Search" : "Buscar",
"Server side authentication failed!" : "A autenticación fracasou do lado do servidor!",
diff --git a/core/l10n/he.js b/core/l10n/he.js
index a2eeb817fd4..e53e3f37b2f 100644
--- a/core/l10n/he.js
+++ b/core/l10n/he.js
@@ -82,7 +82,6 @@ OC.L10N.register(
"Database tablespace" : "מרחב הכתובות של מסד הנתונים",
"Database host" : "שרת בסיס נתונים",
"Finish setup" : "סיום התקנה",
- "%s is available. Get more information on how to update." : "%s זמינה להורדה. ניתן ללחוץ כדי לקבל מידע נוסף כיצד לעדכן.",
"Log out" : "התנתקות",
"Search" : "חיפוש",
"remember" : "שמירת הססמה",
diff --git a/core/l10n/he.json b/core/l10n/he.json
index 0955e9283a1..6f6686240e3 100644
--- a/core/l10n/he.json
+++ b/core/l10n/he.json
@@ -80,7 +80,6 @@
"Database tablespace" : "מרחב הכתובות של מסד הנתונים",
"Database host" : "שרת בסיס נתונים",
"Finish setup" : "סיום התקנה",
- "%s is available. Get more information on how to update." : "%s זמינה להורדה. ניתן ללחוץ כדי לקבל מידע נוסף כיצד לעדכן.",
"Log out" : "התנתקות",
"Search" : "חיפוש",
"remember" : "שמירת הססמה",
diff --git a/core/l10n/hr.js b/core/l10n/hr.js
index 754e0e069b2..7647af84c51 100644
--- a/core/l10n/hr.js
+++ b/core/l10n/hr.js
@@ -177,7 +177,6 @@ OC.L10N.register(
"Database host" : "Glavno računalo baze podataka",
"Finish setup" : "Završite postavljanje",
"Finishing …" : "Završavanje...",
- "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.",
"Log out" : "Odjavite se",
"Search" : "pretraži",
"Server side authentication failed!" : "Autentikacija na strani poslužitelja nije uspjela!",
diff --git a/core/l10n/hr.json b/core/l10n/hr.json
index 18dcfc5a01f..07d723f38e5 100644
--- a/core/l10n/hr.json
+++ b/core/l10n/hr.json
@@ -175,7 +175,6 @@
"Database host" : "Glavno računalo baze podataka",
"Finish setup" : "Završite postavljanje",
"Finishing …" : "Završavanje...",
- "%s is available. Get more information on how to update." : "%s je dostupan. Saznajte više informacija o tome kako ažurirati.",
"Log out" : "Odjavite se",
"Search" : "pretraži",
"Server side authentication failed!" : "Autentikacija na strani poslužitelja nije uspjela!",
diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js
index 071e9125589..c548bee3b34 100644
--- a/core/l10n/hu_HU.js
+++ b/core/l10n/hu_HU.js
@@ -179,7 +179,6 @@ OC.L10N.register(
"Database host" : "Adatbázis szerver",
"Finish setup" : "A beállítások befejezése",
"Finishing …" : "Befejezés ...",
- "%s is available. Get more information on how to update." : "%s rendelkezésre áll. További információ a frissítéshez.",
"Log out" : "Kilépés",
"Search" : "Keresés",
"Server side authentication failed!" : "A szerveroldali hitelesítés sikertelen!",
diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json
index d52b8fb4cb4..9b5f39fcc2a 100644
--- a/core/l10n/hu_HU.json
+++ b/core/l10n/hu_HU.json
@@ -177,7 +177,6 @@
"Database host" : "Adatbázis szerver",
"Finish setup" : "A beállítások befejezése",
"Finishing …" : "Befejezés ...",
- "%s is available. Get more information on how to update." : "%s rendelkezésre áll. További információ a frissítéshez.",
"Log out" : "Kilépés",
"Search" : "Keresés",
"Server side authentication failed!" : "A szerveroldali hitelesítés sikertelen!",
diff --git a/core/l10n/id.js b/core/l10n/id.js
index a2016d4168c..29ad557fa4b 100644
--- a/core/l10n/id.js
+++ b/core/l10n/id.js
@@ -8,11 +8,18 @@ OC.L10N.register(
"Checked database schema update" : "Pembaruan skema basis data terperiksa",
"Checked database schema update for apps" : "Pembaruan skema basis data terperiksa untuk aplikasi",
"Updated \"%s\" to %s" : "Terbaru \"%s\" sampai %s",
+ "Repair warning: " : "Peringatan perbaikan:",
+ "Repair error: " : "Kesalahan perbaikan:",
+ "Following incompatible apps have been disabled: %s" : "Aplikasi tidak kompatibel berikut telah dinonaktifkan: %s",
+ "Following 3rd party apps have been disabled: %s" : "Aplikasi pihak ke-3 berikut telah dinonaktifkan: %s",
+ "Invalid file provided" : "Berkas yang diberikan tidak sah",
"No image or file provided" : "Tidak ada gambar atau berkas yang disediakan",
"Unknown filetype" : "Tipe berkas tidak dikenal",
"Invalid image" : "Gambar tidak sah",
"No temporary profile picture available, try again" : "Tidak ada gambar profil sementara yang tersedia, coba lagi",
"No crop data provided" : "Tidak ada data krop tersedia",
+ "No valid crop data provided" : "Tidak ada data valid untuk dipangkas",
+ "Crop is not square" : "Pangkas ini tidak persegi",
"Sunday" : "Minggu",
"Monday" : "Senin",
"Tuesday" : "Selasa",
@@ -62,7 +69,14 @@ OC.L10N.register(
"So-so password" : "Sandi lumayan",
"Good password" : "Sandi baik",
"Strong password" : "Sandi kuat",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Server web Anda belum diatur dengan benar untuk mengizinkan sinkronisasi berkas karena antarmuka WebDAV nampaknya rusak.",
+ "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Server ini tidak tersambung ke internet. Ini berarti beberapa fitur seperti me-mount penyimpanan eksternal, notifikasi pembaruan atau instalasi aplikasi pihak ketiga tidak akan bekerja. Mengakses berkas secara remote dan mengirim notifikasi email juga tidak bekerja. Kami menyarankan untuk mengaktifkan koneksi internet untuk server ini jika Anda ingin memiliki fitur ini.",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Direktori data dan berkas Anda kemungkinan dapat diakses dari Internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan Anda untuk mengkonfigurasi server web agar direktori data tidak lagi dapat diakses atau pindahkan direktori data Anda di luar root dokumen server web.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Tembolok memori tidak dikonfigurasi. Untuk meningkatkan kinerja, mohon konfigurasi memcache jika tersedia. Informasi lebih lanjut dapat ditemukan di <a href=\"{docLink}\">dokumentasi</a> kami.",
"Error occurred while checking server setup" : "Kesalahan tidak terduga saat memeriksa setelan server",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "Header HTTP \"{header}\" tidak dikonfigurasi sama dengan \"{expected}\". Hal ini berpotensi pada resiko keamanan dan privasi. Kami sarankan untuk menyesuaikan pengaturan ini.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "Header HTTP \"Strict-Transport-Security\" tidak dikonfigurasi setidaknya dalam waktu \"2,678,400\" detik. Hal ini berpotensi pada resiko keamanan dan privasi. Kami sarankan untuk menyesuaikan pengaturan ini.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Anda mengakses situs ini via HTTP. Kami sangat menyarankan Anda mengkonfigurasi server Anda untuk menggunakan HTTPS.",
"Shared" : "Dibagikan",
"Shared with {recipients}" : "Dibagikan dengan {recipients}",
"Share" : "Bagikan",
@@ -72,6 +86,9 @@ OC.L10N.register(
"Error while changing permissions" : "Kesalahan saat mengubah izin",
"Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}",
"Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}",
+ "Share with users or groups …" : "Bagikan dengan pengguna atau grup ...",
+ "Share with users, groups or remote users …" : "Bagikan dengan pengguna, grup atau pengguna remote ...",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Bagikan dengan orang lain di ownCloud menggunakan sintaks username@example.com/owncloud",
"Share link" : "Bagikan tautan",
"The public link will expire no later than {days} days after it is created" : "Tautan publik akan kadaluarsa tidak lebih dari {days} hari setelah ini dibuat",
"Link" : "Tautan",
@@ -84,6 +101,7 @@ OC.L10N.register(
"Set expiration date" : "Atur tanggal kedaluwarsa",
"Expiration" : "Kedaluwarsa",
"Expiration date" : "Tanggal kedaluwarsa",
+ "An error occured. Please try again" : "Terjadi masalah. Mohon coba kembali",
"Adding user..." : "Menambahkan pengguna...",
"group" : "grup",
"remote" : "remote",
@@ -157,11 +175,13 @@ OC.L10N.register(
"Technical details" : "Rincian teknis",
"Remote Address: %s" : "Alamat remote: %s",
"Request ID: %s" : "ID Permintaan: %s",
+ "Type: %s" : "Tipe: %s",
"Code: %s" : "Kode: %s",
"Message: %s" : "Pesan: %s",
"File: %s" : "Berkas: %s",
"Line: %s" : "Baris: %s",
"Trace" : "Jejak",
+ "Security warning" : "Peringatan keamanan",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Kemungkinan direktori data dan berkas anda dapat diakses dari internet karena berkas .htaccess tidak berfungsi.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Untuk informasi cara mengkonfigurasi server anda dengan benar, silakan lihat <a href=\"%s\" target=\"_blank\">dokumentasi</a>.",
"Create an <strong>admin account</strong>" : "Buat sebuah <strong>akun admin</strong>",
@@ -175,13 +195,21 @@ OC.L10N.register(
"Database name" : "Nama basis data",
"Database tablespace" : "Tablespace basis data",
"Database host" : "Host basis data",
+ "Performance warning" : "Peringatan kinerja",
+ "SQLite will be used as database." : "SQLite akan digunakan sebagai basis data.",
+ "For larger installations we recommend to choose a different database backend." : "Untuk instalasi yang lebih besar, kami menyarankan untuk memilih backend basis data yang berbeda.",
+ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.",
"Finish setup" : "Selesaikan instalasi",
"Finishing …" : "Menyelesaikan ...",
- "%s is available. Get more information on how to update." : "%s tersedia. Dapatkan informasi lebih lanjut tentang cara memperbarui.",
+ "Need help?" : "Butuh bantuan?",
+ "See the documentation" : "Lihat dokumentasi",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.",
"Log out" : "Keluar",
"Search" : "Cari",
"Server side authentication failed!" : "Otentikasi dari sisi server gagal!",
"Please contact your administrator." : "Silahkan hubungi administrator anda.",
+ "An internal error occured." : "Terjadi kesalahan internal.",
+ "Please try again or contact your administrator." : "Mohon coba lagi atau hubungi administrator Anda.",
"Forgot your password? Reset it!" : "Lupa sandi Anda? Setel ulang!",
"remember" : "selalu masuk",
"Log in" : "Masuk",
@@ -201,6 +229,7 @@ OC.L10N.register(
"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Pastikan bahwa basis data, folder konfig, dan folder data telah dicadangkan sebelum melanjutkan.",
"Start update" : "Jalankan pembaruan",
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Untuk menghindari waktu habis dengan instalasi yang lebih besar, Anda bisa menjalankan perintah berikut dari direktori instalasi Anda:",
+ "This %s instance is currently in maintenance mode, which may take a while." : "Instansi %s ini sedang dalam modus pemeliharaan, mungkin memerlukan beberapa saat.",
"This page will refresh itself when the %s instance is available again." : "Halaman ini akan disegarkan dengan sendiri saat instansi %s tersebut tersedia kembali."
},
"nplurals=1; plural=0;");
diff --git a/core/l10n/id.json b/core/l10n/id.json
index 9b5cb7c8021..82bf45a48c0 100644
--- a/core/l10n/id.json
+++ b/core/l10n/id.json
@@ -6,11 +6,18 @@
"Checked database schema update" : "Pembaruan skema basis data terperiksa",
"Checked database schema update for apps" : "Pembaruan skema basis data terperiksa untuk aplikasi",
"Updated \"%s\" to %s" : "Terbaru \"%s\" sampai %s",
+ "Repair warning: " : "Peringatan perbaikan:",
+ "Repair error: " : "Kesalahan perbaikan:",
+ "Following incompatible apps have been disabled: %s" : "Aplikasi tidak kompatibel berikut telah dinonaktifkan: %s",
+ "Following 3rd party apps have been disabled: %s" : "Aplikasi pihak ke-3 berikut telah dinonaktifkan: %s",
+ "Invalid file provided" : "Berkas yang diberikan tidak sah",
"No image or file provided" : "Tidak ada gambar atau berkas yang disediakan",
"Unknown filetype" : "Tipe berkas tidak dikenal",
"Invalid image" : "Gambar tidak sah",
"No temporary profile picture available, try again" : "Tidak ada gambar profil sementara yang tersedia, coba lagi",
"No crop data provided" : "Tidak ada data krop tersedia",
+ "No valid crop data provided" : "Tidak ada data valid untuk dipangkas",
+ "Crop is not square" : "Pangkas ini tidak persegi",
"Sunday" : "Minggu",
"Monday" : "Senin",
"Tuesday" : "Selasa",
@@ -60,7 +67,14 @@
"So-so password" : "Sandi lumayan",
"Good password" : "Sandi baik",
"Strong password" : "Sandi kuat",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Server web Anda belum diatur dengan benar untuk mengizinkan sinkronisasi berkas karena antarmuka WebDAV nampaknya rusak.",
+ "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Server ini tidak tersambung ke internet. Ini berarti beberapa fitur seperti me-mount penyimpanan eksternal, notifikasi pembaruan atau instalasi aplikasi pihak ketiga tidak akan bekerja. Mengakses berkas secara remote dan mengirim notifikasi email juga tidak bekerja. Kami menyarankan untuk mengaktifkan koneksi internet untuk server ini jika Anda ingin memiliki fitur ini.",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Direktori data dan berkas Anda kemungkinan dapat diakses dari Internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan Anda untuk mengkonfigurasi server web agar direktori data tidak lagi dapat diakses atau pindahkan direktori data Anda di luar root dokumen server web.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Tembolok memori tidak dikonfigurasi. Untuk meningkatkan kinerja, mohon konfigurasi memcache jika tersedia. Informasi lebih lanjut dapat ditemukan di <a href=\"{docLink}\">dokumentasi</a> kami.",
"Error occurred while checking server setup" : "Kesalahan tidak terduga saat memeriksa setelan server",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "Header HTTP \"{header}\" tidak dikonfigurasi sama dengan \"{expected}\". Hal ini berpotensi pada resiko keamanan dan privasi. Kami sarankan untuk menyesuaikan pengaturan ini.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "Header HTTP \"Strict-Transport-Security\" tidak dikonfigurasi setidaknya dalam waktu \"2,678,400\" detik. Hal ini berpotensi pada resiko keamanan dan privasi. Kami sarankan untuk menyesuaikan pengaturan ini.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Anda mengakses situs ini via HTTP. Kami sangat menyarankan Anda mengkonfigurasi server Anda untuk menggunakan HTTPS.",
"Shared" : "Dibagikan",
"Shared with {recipients}" : "Dibagikan dengan {recipients}",
"Share" : "Bagikan",
@@ -70,6 +84,9 @@
"Error while changing permissions" : "Kesalahan saat mengubah izin",
"Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}",
"Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}",
+ "Share with users or groups …" : "Bagikan dengan pengguna atau grup ...",
+ "Share with users, groups or remote users …" : "Bagikan dengan pengguna, grup atau pengguna remote ...",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Bagikan dengan orang lain di ownCloud menggunakan sintaks username@example.com/owncloud",
"Share link" : "Bagikan tautan",
"The public link will expire no later than {days} days after it is created" : "Tautan publik akan kadaluarsa tidak lebih dari {days} hari setelah ini dibuat",
"Link" : "Tautan",
@@ -82,6 +99,7 @@
"Set expiration date" : "Atur tanggal kedaluwarsa",
"Expiration" : "Kedaluwarsa",
"Expiration date" : "Tanggal kedaluwarsa",
+ "An error occured. Please try again" : "Terjadi masalah. Mohon coba kembali",
"Adding user..." : "Menambahkan pengguna...",
"group" : "grup",
"remote" : "remote",
@@ -155,11 +173,13 @@
"Technical details" : "Rincian teknis",
"Remote Address: %s" : "Alamat remote: %s",
"Request ID: %s" : "ID Permintaan: %s",
+ "Type: %s" : "Tipe: %s",
"Code: %s" : "Kode: %s",
"Message: %s" : "Pesan: %s",
"File: %s" : "Berkas: %s",
"Line: %s" : "Baris: %s",
"Trace" : "Jejak",
+ "Security warning" : "Peringatan keamanan",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Kemungkinan direktori data dan berkas anda dapat diakses dari internet karena berkas .htaccess tidak berfungsi.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Untuk informasi cara mengkonfigurasi server anda dengan benar, silakan lihat <a href=\"%s\" target=\"_blank\">dokumentasi</a>.",
"Create an <strong>admin account</strong>" : "Buat sebuah <strong>akun admin</strong>",
@@ -173,13 +193,21 @@
"Database name" : "Nama basis data",
"Database tablespace" : "Tablespace basis data",
"Database host" : "Host basis data",
+ "Performance warning" : "Peringatan kinerja",
+ "SQLite will be used as database." : "SQLite akan digunakan sebagai basis data.",
+ "For larger installations we recommend to choose a different database backend." : "Untuk instalasi yang lebih besar, kami menyarankan untuk memilih backend basis data yang berbeda.",
+ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.",
"Finish setup" : "Selesaikan instalasi",
"Finishing …" : "Menyelesaikan ...",
- "%s is available. Get more information on how to update." : "%s tersedia. Dapatkan informasi lebih lanjut tentang cara memperbarui.",
+ "Need help?" : "Butuh bantuan?",
+ "See the documentation" : "Lihat dokumentasi",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikasi ini memerlukan JavaScript untuk dapat beroperasi dengan benar. Mohon {linkstart}aktifkan JavaScript{linkend} dan muat ulang halaman ini.",
"Log out" : "Keluar",
"Search" : "Cari",
"Server side authentication failed!" : "Otentikasi dari sisi server gagal!",
"Please contact your administrator." : "Silahkan hubungi administrator anda.",
+ "An internal error occured." : "Terjadi kesalahan internal.",
+ "Please try again or contact your administrator." : "Mohon coba lagi atau hubungi administrator Anda.",
"Forgot your password? Reset it!" : "Lupa sandi Anda? Setel ulang!",
"remember" : "selalu masuk",
"Log in" : "Masuk",
@@ -199,6 +227,7 @@
"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Pastikan bahwa basis data, folder konfig, dan folder data telah dicadangkan sebelum melanjutkan.",
"Start update" : "Jalankan pembaruan",
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Untuk menghindari waktu habis dengan instalasi yang lebih besar, Anda bisa menjalankan perintah berikut dari direktori instalasi Anda:",
+ "This %s instance is currently in maintenance mode, which may take a while." : "Instansi %s ini sedang dalam modus pemeliharaan, mungkin memerlukan beberapa saat.",
"This page will refresh itself when the %s instance is available again." : "Halaman ini akan disegarkan dengan sendiri saat instansi %s tersebut tersedia kembali."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/core/l10n/is.js b/core/l10n/is.js
index 16dd20521db..6b99bff9c0e 100644
--- a/core/l10n/is.js
+++ b/core/l10n/is.js
@@ -77,9 +77,8 @@ OC.L10N.register(
"Database tablespace" : "Töflusvæði gagnagrunns",
"Database host" : "Netþjónn gagnagrunns",
"Finish setup" : "Virkja uppsetningu",
- "%s is available. Get more information on how to update." : "%s er til boða. Fáðu meiri upplýsingar um hvernig þú uppfærir.",
"Log out" : "Útskrá",
"remember" : "muna eftir mér",
"Log in" : "<strong>Skrá inn</strong>"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/core/l10n/is.json b/core/l10n/is.json
index dcd6fc4aa96..75958bafa55 100644
--- a/core/l10n/is.json
+++ b/core/l10n/is.json
@@ -75,9 +75,8 @@
"Database tablespace" : "Töflusvæði gagnagrunns",
"Database host" : "Netþjónn gagnagrunns",
"Finish setup" : "Virkja uppsetningu",
- "%s is available. Get more information on how to update." : "%s er til boða. Fáðu meiri upplýsingar um hvernig þú uppfærir.",
"Log out" : "Útskrá",
"remember" : "muna eftir mér",
"Log in" : "<strong>Skrá inn</strong>"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/core/l10n/it.js b/core/l10n/it.js
index 4a248fe0f1b..eba7161cbea 100644
--- a/core/l10n/it.js
+++ b/core/l10n/it.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Ciao {name}, il tempo è {weather}",
"Hello {name}" : "Ciao {name}",
"_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"],
+ "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento.",
"Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.",
"Please reload the page." : "Ricarica la pagina.",
"The update was unsuccessful. " : "L'aggiornamento non è riuscito.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Ti serve aiuto?",
"See the documentation" : "Leggi la documentazione",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Questa applicazione richiede JavaScript per un corretto funzionamento. {linkstart}Abilita JavaScript{linkend} e ricarica la pagina.",
- "%s is available. Get more information on how to update." : "%s è disponibile. Ottieni ulteriori informazioni sull'aggiornamento.",
"Log out" : "Esci",
"Search" : "Cerca",
"Server side authentication failed!" : "Autenticazione lato server non riuscita!",
diff --git a/core/l10n/it.json b/core/l10n/it.json
index f32b2f18c53..361bf4b0d28 100644
--- a/core/l10n/it.json
+++ b/core/l10n/it.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Ciao {name}, il tempo è {weather}",
"Hello {name}" : "Ciao {name}",
"_download %n file_::_download %n files_" : ["scarica %n file","scarica %s file"],
+ "{version} is available. Get more information on how to update." : "{version} è disponibile. Ottieni ulteriori informazioni su come eseguire l'aggiornamento.",
"Updating {productName} to version {version}, this may take a while." : "Aggiornamento di {productName} alla versione {version}, potrebbe richiedere del tempo.",
"Please reload the page." : "Ricarica la pagina.",
"The update was unsuccessful. " : "L'aggiornamento non è riuscito.",
@@ -202,7 +203,6 @@
"Need help?" : "Ti serve aiuto?",
"See the documentation" : "Leggi la documentazione",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Questa applicazione richiede JavaScript per un corretto funzionamento. {linkstart}Abilita JavaScript{linkend} e ricarica la pagina.",
- "%s is available. Get more information on how to update." : "%s è disponibile. Ottieni ulteriori informazioni sull'aggiornamento.",
"Log out" : "Esci",
"Search" : "Cerca",
"Server side authentication failed!" : "Autenticazione lato server non riuscita!",
diff --git a/core/l10n/ja.js b/core/l10n/ja.js
index 73ee7ad6d92..9fa8fa22585 100644
--- a/core/l10n/ja.js
+++ b/core/l10n/ja.js
@@ -10,7 +10,7 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "\"%s\" を %s にアップデートしました。",
"Repair warning: " : "修復警告:",
"Repair error: " : "修復エラー:",
- "Following incompatible apps have been disabled: %s" : "次の互換性の無いアプリは無効にされています。: %s",
+ "Following incompatible apps have been disabled: %s" : "次の互換性のないアプリは無効にされています: %s",
"Following 3rd party apps have been disabled: %s" : "次のサードパーティーアプリは無効にされています。: %s",
"Invalid file provided" : "無効なファイルが提供されました",
"No image or file provided" : "画像もしくはファイルが提供されていません",
@@ -69,9 +69,9 @@ OC.L10N.register(
"So-so password" : "まずまずのパスワード",
"Good password" : "良好なパスワード",
"Strong password" : "強いパスワード",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAVインタフェースが動作していないと考えられるため、あなたのWEBサーバはまだファイルの同期を許可するように適切な設定がされていません。",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAVインターフェースが動作していないようです。Webサーバーは、ファイルの同期を許可するよう適切に設定されていません。",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "このサーバーはインターネットに接続されていません。この場合、外部ストレージのマウント、更新の通知やサードパーティ製のアプリ、といったいくつかの機能が使えません。また、リモート接続でのファイルアクセス、通知メールの送信のような機能も利用できない可能性があります。全ての機能を利用するためには、このサーバーからインターネットに接続できるようにすることをお勧めします。",
- "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリがアクセスされないようにウェブサーバーを設定するか、ウェブサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリがアクセスされないようにWebサーバーを設定するか、Webサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。",
"Error occurred while checking server setup" : "サーバー設定のチェック中にエラーが発生しました",
"You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "HTTP経由でアクセスしています。HTTPSを使用するようサーバーを設定することを強くおすすめします。",
"Shared" : "共有中",
@@ -194,7 +194,6 @@ OC.L10N.register(
"Finish setup" : "セットアップを完了します",
"Finishing …" : "作業を完了しています ...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "このアプリケーションの動作にはJavaScriptが必要です。\n {linkstart}JavaScriptを有効にし{linkend} 、ページを更新してください。 ",
- "%s is available. Get more information on how to update." : "%s が利用可能です。アップデート方法について詳細情報を確認してください。",
"Log out" : "ログアウト",
"Search" : "検索",
"Server side authentication failed!" : "サーバーサイドの認証に失敗しました!",
diff --git a/core/l10n/ja.json b/core/l10n/ja.json
index 52476a3ed93..28be08048f0 100644
--- a/core/l10n/ja.json
+++ b/core/l10n/ja.json
@@ -8,7 +8,7 @@
"Updated \"%s\" to %s" : "\"%s\" を %s にアップデートしました。",
"Repair warning: " : "修復警告:",
"Repair error: " : "修復エラー:",
- "Following incompatible apps have been disabled: %s" : "次の互換性の無いアプリは無効にされています。: %s",
+ "Following incompatible apps have been disabled: %s" : "次の互換性のないアプリは無効にされています: %s",
"Following 3rd party apps have been disabled: %s" : "次のサードパーティーアプリは無効にされています。: %s",
"Invalid file provided" : "無効なファイルが提供されました",
"No image or file provided" : "画像もしくはファイルが提供されていません",
@@ -67,9 +67,9 @@
"So-so password" : "まずまずのパスワード",
"Good password" : "良好なパスワード",
"Strong password" : "強いパスワード",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAVインタフェースが動作していないと考えられるため、あなたのWEBサーバはまだファイルの同期を許可するように適切な設定がされていません。",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAVインターフェースが動作していないようです。Webサーバーは、ファイルの同期を許可するよう適切に設定されていません。",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "このサーバーはインターネットに接続されていません。この場合、外部ストレージのマウント、更新の通知やサードパーティ製のアプリ、といったいくつかの機能が使えません。また、リモート接続でのファイルアクセス、通知メールの送信のような機能も利用できない可能性があります。全ての機能を利用するためには、このサーバーからインターネットに接続できるようにすることをお勧めします。",
- "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリがアクセスされないようにウェブサーバーを設定するか、ウェブサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "データディレクトリとファイルがインターネットからアクセス可能になっている可能性があります。.htaccessファイルが機能していません。データディレクトリがアクセスされないようにWebサーバーを設定するか、Webサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。",
"Error occurred while checking server setup" : "サーバー設定のチェック中にエラーが発生しました",
"You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "HTTP経由でアクセスしています。HTTPSを使用するようサーバーを設定することを強くおすすめします。",
"Shared" : "共有中",
@@ -192,7 +192,6 @@
"Finish setup" : "セットアップを完了します",
"Finishing …" : "作業を完了しています ...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "このアプリケーションの動作にはJavaScriptが必要です。\n {linkstart}JavaScriptを有効にし{linkend} 、ページを更新してください。 ",
- "%s is available. Get more information on how to update." : "%s が利用可能です。アップデート方法について詳細情報を確認してください。",
"Log out" : "ログアウト",
"Search" : "検索",
"Server side authentication failed!" : "サーバーサイドの認証に失敗しました!",
diff --git a/core/l10n/kn.js b/core/l10n/kn.js
index 0f4e1cdea70..365a7ddb3fa 100644
--- a/core/l10n/kn.js
+++ b/core/l10n/kn.js
@@ -157,7 +157,6 @@ OC.L10N.register(
"Database host" : "ದತ್ತಸಂಚಯದ ಅತಿಥೆಯ",
"Finish setup" : "ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ",
"Finishing …" : "ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿದೆ ...",
- "%s is available. Get more information on how to update." : "%s ಲಭ್ಯವಿದೆ. ಹೇಗೆ ನವೀಕರಿಸಬಹುದೆಂದು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಿರಿ.",
"Log out" : "ಈ ಆವೃತ್ತಿ ಇಂದ ನಿರ್ಗಮಿಸಿ",
"Search" : "ಹುಡುಕು",
"Please contact your administrator." : "ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಲು ಕೋರಲಾಗಿದೆ.",
diff --git a/core/l10n/kn.json b/core/l10n/kn.json
index 35873a31c45..9e03ebd496e 100644
--- a/core/l10n/kn.json
+++ b/core/l10n/kn.json
@@ -155,7 +155,6 @@
"Database host" : "ದತ್ತಸಂಚಯದ ಅತಿಥೆಯ",
"Finish setup" : "ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ",
"Finishing …" : "ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿದೆ ...",
- "%s is available. Get more information on how to update." : "%s ಲಭ್ಯವಿದೆ. ಹೇಗೆ ನವೀಕರಿಸಬಹುದೆಂದು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಿರಿ.",
"Log out" : "ಈ ಆವೃತ್ತಿ ಇಂದ ನಿರ್ಗಮಿಸಿ",
"Search" : "ಹುಡುಕು",
"Please contact your administrator." : "ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಲು ಕೋರಲಾಗಿದೆ.",
diff --git a/core/l10n/ko.js b/core/l10n/ko.js
index 5b6bf2b3b98..36aff5f1090 100644
--- a/core/l10n/ko.js
+++ b/core/l10n/ko.js
@@ -8,11 +8,18 @@ OC.L10N.register(
"Checked database schema update" : "데이터베이스 스키마 업데이트 확인됨",
"Checked database schema update for apps" : "앱용 데이터베이스 스키마 업데이트 확인됨",
"Updated \"%s\" to %s" : "\"%s\"을(를) %s(으)로 업데이트함",
+ "Repair warning: " : "수리 경고:",
+ "Repair error: " : "수리 오류:",
+ "Following incompatible apps have been disabled: %s" : "다음 호환되지 않는 앱이 비활성화되었습니다: %s",
+ "Following 3rd party apps have been disabled: %s" : "다음 제 3자 앱이 비활성화되었습니다: %s",
+ "Invalid file provided" : "잘못된 파일 지정됨",
"No image or file provided" : "사진이나 파일이 없음",
"Unknown filetype" : "알려지지 않은 파일 형식",
"Invalid image" : "잘못된 사진",
"No temporary profile picture available, try again" : "사용 가능한 프로필 사진이 없습니다. 다시 시도하십시오.",
"No crop data provided" : "선택된 데이터가 없습니다.",
+ "No valid crop data provided" : "올바른 잘라내기 데이터가 지정되지 않음",
+ "Crop is not square" : "잘라내는 영역이 사각형이 아님",
"Sunday" : "일요일",
"Monday" : "월요일",
"Tuesday" : "화요일",
@@ -62,7 +69,14 @@ OC.L10N.register(
"So-so password" : "그저 그런 암호",
"Good password" : "좋은 암호",
"Strong password" : "강력한 암호",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAV 서비스가 올바르게 작동하지 않아서 웹 서버에서 파일 동기화를 사용할 수 없습니다.",
+ "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "인터넷에서 데이터 디렉터리와 파일에 접근할 수 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 직접 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 경로 바깥에 두십시오.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "메모리 캐시가 설정되지 않았습니다. 성능을 향상시키려면 사용 가능한 경우 메모리 캐시를 설정하십시오. 더 많은 정보를 보려면 <a href=\"{docLink}\">문서</a>를 참고하십시오.",
"Error occurred while checking server setup" : "서버 설정을 확인하는 중 오류 발생",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 헤더가 \"{expected}\"와(과) 같이 설정되지 않았습니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP 헤더가 최소한 \"2,678,400\"초가 되도록 설정해야 합니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "이 사이트에 HTTP로 접근하고 있습니다. HTTPS를 사용하도록 설정하는 것을 추천합니다.",
"Shared" : "공유됨",
"Shared with {recipients}" : "{recipients} 님과 공유됨",
"Share" : "공유",
@@ -72,6 +86,9 @@ OC.L10N.register(
"Error while changing permissions" : "권한 변경하는 중 오류 발생",
"Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중",
"Shared with you by {owner}" : "{owner} 님이 공유 중",
+ "Share with users or groups …" : "사용자 및 그룹과 공유...",
+ "Share with users, groups or remote users …" : "사용자, 그룹 및 원격 사용자와 공유...",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud 형식으로 다른 ownCloud 사용자와 공유할 수 있습니다",
"Share link" : "링크 공유",
"The public link will expire no later than {days} days after it is created" : "공개 링크를 만든 후 최대 {days}일까지 유지됩니다",
"Link" : "링크",
@@ -84,6 +101,7 @@ OC.L10N.register(
"Set expiration date" : "만료 날짜 설정",
"Expiration" : "만료",
"Expiration date" : "만료 날짜",
+ "An error occured. Please try again" : "오류가 발생하였습니다. 다시 시도하십시오.",
"Adding user..." : "사용자 추가 중...",
"group" : "그룹",
"remote" : "원격",
@@ -116,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "{name} 님 안녕하세요, 오늘 날씨는 {weather}입니다",
"Hello {name}" : "{name} 님 안녕하세요",
"_download %n file_::_download %n files_" : ["파일 %n개 다운로드"],
+ "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.",
"Updating {productName} to version {version}, this may take a while." : "{productName}을(를) 버전 {version}으로 업데이트하고 있습니다. 시간이 걸릴 수 있습니다.",
"Please reload the page." : "페이지를 새로 고치십시오.",
"The update was unsuccessful. " : "업데이트가 실패하였습니다. ",
@@ -157,11 +176,13 @@ OC.L10N.register(
"Technical details" : "기술 정보",
"Remote Address: %s" : "원격 주소: %s",
"Request ID: %s" : "요청 ID: %s",
+ "Type: %s" : "종류: %s",
"Code: %s" : "코드: %s",
"Message: %s" : "메시지: %s",
"File: %s" : "파일: %s",
"Line: %s" : "줄: %s",
"Trace" : "추적",
+ "Security warning" : "보안 경고",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : ".htaccess 파일이 처리되지 않아서 데이터 디렉터리와 파일을 인터넷에서 접근할 수 없을 수도 있습니다.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "올바른 서버 설정을 위한 정보는 <a href=\"%s\" target=\"_blank\">문서</a>를 참조하십시오.",
"Create an <strong>admin account</strong>" : "<strong>관리자 계정</strong> 만들기",
@@ -175,16 +196,21 @@ OC.L10N.register(
"Database name" : "데이터베이스 이름",
"Database tablespace" : "데이터베이스 테이블 공간",
"Database host" : "데이터베이스 호스트",
+ "Performance warning" : "성능 경고",
"SQLite will be used as database." : "데이터베이스로 SQLite를 사용하게 됩니다.",
"For larger installations we recommend to choose a different database backend." : "대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드를 선택할 것을 권장합니다.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정일 때는, SQLite를 사용하지 않는 것이 좋습니다.",
"Finish setup" : "설치 완료",
"Finishing …" : "완료 중 ...",
- "%s is available. Get more information on how to update." : "%s을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 자세한 정보를 얻으십시오.",
+ "Need help?" : "도움이 필요한가요?",
+ "See the documentation" : "문서 보기",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "이 프로그램이 올바르게 작동하려면 JavaScript가 필요합니다. {linkstart}JavaScript를 활성화{linkend}한 다음 페이지를 새로 고치십시오.",
"Log out" : "로그아웃",
"Search" : "검색",
"Server side authentication failed!" : "서버 인증 실패!",
"Please contact your administrator." : "관리자에게 문의하십시오.",
+ "An internal error occured." : "내부 오류가 발생하였습니다.",
+ "Please try again or contact your administrator." : "다시 시도하거나 관리자에게 연락하십시오.",
"Forgot your password? Reset it!" : "암호를 잊으셨나요? 재설정하세요!",
"remember" : "기억하기",
"Log in" : "로그인",
@@ -204,6 +230,7 @@ OC.L10N.register(
"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "계속하기 전에 데이터베이스, 설정 폴더, 데이터 폴더가 백업되어 있는지 확인하십시오.",
"Start update" : "업데이트 시작",
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "큰 파일을 설치하는 경우 시간이 초과될 수 있으므로, 설치 디렉터리에서 다음 명령을 실행하셔도 됩니다:",
+ "This %s instance is currently in maintenance mode, which may take a while." : "이 %s 인스턴스는 현재 점검 모드입니다. 시간이 걸릴 수도 있습니다.",
"This page will refresh itself when the %s instance is available again." : "%s 인스턴스를 다시 사용할 수 있으면 자동으로 새로 고칩니다."
},
"nplurals=1; plural=0;");
diff --git a/core/l10n/ko.json b/core/l10n/ko.json
index 383c0eb7626..ea6e7c4bf4e 100644
--- a/core/l10n/ko.json
+++ b/core/l10n/ko.json
@@ -6,11 +6,18 @@
"Checked database schema update" : "데이터베이스 스키마 업데이트 확인됨",
"Checked database schema update for apps" : "앱용 데이터베이스 스키마 업데이트 확인됨",
"Updated \"%s\" to %s" : "\"%s\"을(를) %s(으)로 업데이트함",
+ "Repair warning: " : "수리 경고:",
+ "Repair error: " : "수리 오류:",
+ "Following incompatible apps have been disabled: %s" : "다음 호환되지 않는 앱이 비활성화되었습니다: %s",
+ "Following 3rd party apps have been disabled: %s" : "다음 제 3자 앱이 비활성화되었습니다: %s",
+ "Invalid file provided" : "잘못된 파일 지정됨",
"No image or file provided" : "사진이나 파일이 없음",
"Unknown filetype" : "알려지지 않은 파일 형식",
"Invalid image" : "잘못된 사진",
"No temporary profile picture available, try again" : "사용 가능한 프로필 사진이 없습니다. 다시 시도하십시오.",
"No crop data provided" : "선택된 데이터가 없습니다.",
+ "No valid crop data provided" : "올바른 잘라내기 데이터가 지정되지 않음",
+ "Crop is not square" : "잘라내는 영역이 사각형이 아님",
"Sunday" : "일요일",
"Monday" : "월요일",
"Tuesday" : "화요일",
@@ -60,7 +67,14 @@
"So-so password" : "그저 그런 암호",
"Good password" : "좋은 암호",
"Strong password" : "강력한 암호",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAV 서비스가 올바르게 작동하지 않아서 웹 서버에서 파일 동기화를 사용할 수 없습니다.",
+ "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "인터넷에서 데이터 디렉터리와 파일에 접근할 수 있습니다. .htaccess 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 직접 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 경로 바깥에 두십시오.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "메모리 캐시가 설정되지 않았습니다. 성능을 향상시키려면 사용 가능한 경우 메모리 캐시를 설정하십시오. 더 많은 정보를 보려면 <a href=\"{docLink}\">문서</a>를 참고하십시오.",
"Error occurred while checking server setup" : "서버 설정을 확인하는 중 오류 발생",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 헤더가 \"{expected}\"와(과) 같이 설정되지 않았습니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP 헤더가 최소한 \"2,678,400\"초가 되도록 설정해야 합니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "이 사이트에 HTTP로 접근하고 있습니다. HTTPS를 사용하도록 설정하는 것을 추천합니다.",
"Shared" : "공유됨",
"Shared with {recipients}" : "{recipients} 님과 공유됨",
"Share" : "공유",
@@ -70,6 +84,9 @@
"Error while changing permissions" : "권한 변경하는 중 오류 발생",
"Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중",
"Shared with you by {owner}" : "{owner} 님이 공유 중",
+ "Share with users or groups …" : "사용자 및 그룹과 공유...",
+ "Share with users, groups or remote users …" : "사용자, 그룹 및 원격 사용자와 공유...",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud 형식으로 다른 ownCloud 사용자와 공유할 수 있습니다",
"Share link" : "링크 공유",
"The public link will expire no later than {days} days after it is created" : "공개 링크를 만든 후 최대 {days}일까지 유지됩니다",
"Link" : "링크",
@@ -82,6 +99,7 @@
"Set expiration date" : "만료 날짜 설정",
"Expiration" : "만료",
"Expiration date" : "만료 날짜",
+ "An error occured. Please try again" : "오류가 발생하였습니다. 다시 시도하십시오.",
"Adding user..." : "사용자 추가 중...",
"group" : "그룹",
"remote" : "원격",
@@ -114,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "{name} 님 안녕하세요, 오늘 날씨는 {weather}입니다",
"Hello {name}" : "{name} 님 안녕하세요",
"_download %n file_::_download %n files_" : ["파일 %n개 다운로드"],
+ "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.",
"Updating {productName} to version {version}, this may take a while." : "{productName}을(를) 버전 {version}으로 업데이트하고 있습니다. 시간이 걸릴 수 있습니다.",
"Please reload the page." : "페이지를 새로 고치십시오.",
"The update was unsuccessful. " : "업데이트가 실패하였습니다. ",
@@ -155,11 +174,13 @@
"Technical details" : "기술 정보",
"Remote Address: %s" : "원격 주소: %s",
"Request ID: %s" : "요청 ID: %s",
+ "Type: %s" : "종류: %s",
"Code: %s" : "코드: %s",
"Message: %s" : "메시지: %s",
"File: %s" : "파일: %s",
"Line: %s" : "줄: %s",
"Trace" : "추적",
+ "Security warning" : "보안 경고",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : ".htaccess 파일이 처리되지 않아서 데이터 디렉터리와 파일을 인터넷에서 접근할 수 없을 수도 있습니다.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "올바른 서버 설정을 위한 정보는 <a href=\"%s\" target=\"_blank\">문서</a>를 참조하십시오.",
"Create an <strong>admin account</strong>" : "<strong>관리자 계정</strong> 만들기",
@@ -173,16 +194,21 @@
"Database name" : "데이터베이스 이름",
"Database tablespace" : "데이터베이스 테이블 공간",
"Database host" : "데이터베이스 호스트",
+ "Performance warning" : "성능 경고",
"SQLite will be used as database." : "데이터베이스로 SQLite를 사용하게 됩니다.",
"For larger installations we recommend to choose a different database backend." : "대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드를 선택할 것을 권장합니다.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정일 때는, SQLite를 사용하지 않는 것이 좋습니다.",
"Finish setup" : "설치 완료",
"Finishing …" : "완료 중 ...",
- "%s is available. Get more information on how to update." : "%s을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 자세한 정보를 얻으십시오.",
+ "Need help?" : "도움이 필요한가요?",
+ "See the documentation" : "문서 보기",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "이 프로그램이 올바르게 작동하려면 JavaScript가 필요합니다. {linkstart}JavaScript를 활성화{linkend}한 다음 페이지를 새로 고치십시오.",
"Log out" : "로그아웃",
"Search" : "검색",
"Server side authentication failed!" : "서버 인증 실패!",
"Please contact your administrator." : "관리자에게 문의하십시오.",
+ "An internal error occured." : "내부 오류가 발생하였습니다.",
+ "Please try again or contact your administrator." : "다시 시도하거나 관리자에게 연락하십시오.",
"Forgot your password? Reset it!" : "암호를 잊으셨나요? 재설정하세요!",
"remember" : "기억하기",
"Log in" : "로그인",
@@ -202,6 +228,7 @@
"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "계속하기 전에 데이터베이스, 설정 폴더, 데이터 폴더가 백업되어 있는지 확인하십시오.",
"Start update" : "업데이트 시작",
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "큰 파일을 설치하는 경우 시간이 초과될 수 있으므로, 설치 디렉터리에서 다음 명령을 실행하셔도 됩니다:",
+ "This %s instance is currently in maintenance mode, which may take a while." : "이 %s 인스턴스는 현재 점검 모드입니다. 시간이 걸릴 수도 있습니다.",
"This page will refresh itself when the %s instance is available again." : "%s 인스턴스를 다시 사용할 수 있으면 자동으로 새로 고칩니다."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/core/l10n/lb.js b/core/l10n/lb.js
index 50d5bfe1399..2f383be3496 100644
--- a/core/l10n/lb.js
+++ b/core/l10n/lb.js
@@ -99,7 +99,6 @@ OC.L10N.register(
"Database host" : "Datebank-Server",
"Finish setup" : "Installatioun ofschléissen",
"Finishing …" : "Schléissen of ...",
- "%s is available. Get more information on how to update." : "%s ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.",
"Log out" : "Ofmellen",
"Search" : "Sichen",
"remember" : "verhalen",
diff --git a/core/l10n/lb.json b/core/l10n/lb.json
index 7e36d60a79b..44445e3bdac 100644
--- a/core/l10n/lb.json
+++ b/core/l10n/lb.json
@@ -97,7 +97,6 @@
"Database host" : "Datebank-Server",
"Finish setup" : "Installatioun ofschléissen",
"Finishing …" : "Schléissen of ...",
- "%s is available. Get more information on how to update." : "%s ass verfügbar. Kréi méi Informatiounen doriwwer wéi d'Aktualiséierung ofleeft.",
"Log out" : "Ofmellen",
"Search" : "Sichen",
"remember" : "verhalen",
diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js
index 6291880ac0a..7c27d780e38 100644
--- a/core/l10n/lt_LT.js
+++ b/core/l10n/lt_LT.js
@@ -120,7 +120,6 @@ OC.L10N.register(
"Database host" : "Duomenų bazės serveris",
"Finish setup" : "Baigti diegimą",
"Finishing …" : "Baigiama ...",
- "%s is available. Get more information on how to update." : "%s yra prieinama. Gaukite daugiau informacijos apie atnaujinimą.",
"Log out" : "Atsijungti",
"Search" : "Ieškoti",
"Server side authentication failed!" : "Autentikacija serveryje nepavyko!",
diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json
index 72faeb1fcbf..79184dfdb27 100644
--- a/core/l10n/lt_LT.json
+++ b/core/l10n/lt_LT.json
@@ -118,7 +118,6 @@
"Database host" : "Duomenų bazės serveris",
"Finish setup" : "Baigti diegimą",
"Finishing …" : "Baigiama ...",
- "%s is available. Get more information on how to update." : "%s yra prieinama. Gaukite daugiau informacijos apie atnaujinimą.",
"Log out" : "Atsijungti",
"Search" : "Ieškoti",
"Server side authentication failed!" : "Autentikacija serveryje nepavyko!",
diff --git a/core/l10n/lv.js b/core/l10n/lv.js
index dbc54d56ab0..1abec29f5b7 100644
--- a/core/l10n/lv.js
+++ b/core/l10n/lv.js
@@ -98,7 +98,6 @@ OC.L10N.register(
"Database tablespace" : "Datubāzes tabulas telpa",
"Database host" : "Datubāzes serveris",
"Finish setup" : "Pabeigt iestatīšanu",
- "%s is available. Get more information on how to update." : "%s ir pieejams. Uzziniet vairāk kā atjaunināt.",
"Log out" : "Izrakstīties",
"Search" : "Meklēt",
"remember" : "atcerēties",
diff --git a/core/l10n/lv.json b/core/l10n/lv.json
index b2efc1f9047..acbb677e863 100644
--- a/core/l10n/lv.json
+++ b/core/l10n/lv.json
@@ -96,7 +96,6 @@
"Database tablespace" : "Datubāzes tabulas telpa",
"Database host" : "Datubāzes serveris",
"Finish setup" : "Pabeigt iestatīšanu",
- "%s is available. Get more information on how to update." : "%s ir pieejams. Uzziniet vairāk kā atjaunināt.",
"Log out" : "Izrakstīties",
"Search" : "Meklēt",
"remember" : "atcerēties",
diff --git a/core/l10n/mk.js b/core/l10n/mk.js
index 8980263379c..f42449e6610 100644
--- a/core/l10n/mk.js
+++ b/core/l10n/mk.js
@@ -1,12 +1,25 @@
OC.L10N.register(
"core",
{
+ "Couldn't send mail to following users: %s " : "Не можев да пратам порака на следниве корисници: %s",
"Turned on maintenance mode" : "Вклучен е модот за одржување",
"Turned off maintenance mode" : "Ислкучен е модот за одржување",
"Updated database" : "Базата е надградена",
+ "Checked database schema update" : "Проверена е шемата за ажурурање на базата на податоци",
+ "Checked database schema update for apps" : "Проверена е шемата за ажурурање на базата на податоци за апликации",
+ "Updated \"%s\" to %s" : "Ажурирано е \"%s\" во %s",
+ "Repair warning: " : "Предупредувања при поправка:",
+ "Repair error: " : "Грешка при поправка:",
+ "Following incompatible apps have been disabled: %s" : "Следниве некомпатибилни апликации се оневозможени: %s",
+ "Following 3rd party apps have been disabled: %s" : "Следниве апликации од 3-ти лица се оневозможени: %s",
+ "Invalid file provided" : "Дадена е невалидна датотека",
"No image or file provided" : "Не е доставена фотографија или датотека",
"Unknown filetype" : "Непознат тип на датотека",
"Invalid image" : "Невалидна фотографија",
+ "No temporary profile picture available, try again" : "Не е достапна привремена профилна слика, пробајте повторно",
+ "No crop data provided" : "Не се доставени податоци за сечење",
+ "No valid crop data provided" : "Нема валидни податоци за сечење",
+ "Crop is not square" : "Сечењето не е правоаголно",
"Sunday" : "Недела",
"Monday" : "Понеделник",
"Tuesday" : "Вторник",
@@ -28,11 +41,23 @@ OC.L10N.register(
"December" : "Декември",
"Settings" : "Подесувања",
"Saving..." : "Снимам...",
+ "Couldn't send reset email. Please contact your administrator." : "Не можам да истпратам порака за ресетирање. Ве молам контактирајте го вашиот администратор.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Врската за ресетирање на вашата лозинка е испратена на вашата е-адреса. Ако не ја добиете во разумно време, проверете ги вашите папки за спам/ѓубре.<br>Ако не е таму прашајте го вашиот локален администратор.",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Вашите датотеки се шифрирани. Ако не сте го овозможиле клучот за враќање, нема да можете да ги повратите вашите податоци откога вашата лозинка ќе биде ресетирана.<br>Ако не сте сигурни што да правите, ве молам контактирајте го вашиот локален администратор пред да продолжите.<br/>Дали навистина сакате да продолжите?",
+ "I know what I'm doing" : "Знам што правам",
+ "Password can not be changed. Please contact your administrator." : "Лозинката не може да се промени. Ве молам контактирајте го вашиот администратор.",
"No" : "Не",
"Yes" : "Да",
"Choose" : "Избери",
+ "Error loading file picker template: {error}" : "Грешка при вчитување на образецот за одбирач на датотеки: {error}",
"Ok" : "Во ред",
+ "Error loading message template: {error}" : "Грешка при вчитување на образецот за порака: {error}",
+ "read-only" : "само за читање",
"One file conflict" : "Конфликт со една датотека",
+ "New Files" : "Нови датотеки",
+ "Already existing files" : "Постоечки датотеки",
+ "Which files do you want to keep?" : "Кои датотеки сакате да ги задржите?",
+ "If you select both versions, the copied file will have a number added to its name." : "Ако ги одберете и двете верзии, копираната датотека ќе има број додаден на нејзиното име.",
"Cancel" : "Откажи",
"Continue" : "Продолжи",
"(all selected)" : "(сите одбрани)",
@@ -43,7 +68,16 @@ OC.L10N.register(
"So-so password" : "Така така лозинка",
"Good password" : "Добра лозинка",
"Strong password" : "Јака лозинка",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Вашиот веб опслужувач сеуште не е точно подесен да овозможува синхронизација на датотеки бидејќи интерфејсот за WebDAV изгледа дека е расипан. ",
+ "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Овој опслужувач нема работна Интернет врска. Ова значи дека некои опции како што е монтирање на надворешни складишта, известувања за ажурирање или инсталации на апликации од 3-ти лица нема да работат. Пристапот на датотеки од далечина и праќање на пораки за известувања може исто така да не работат. Ви советуваме да овозможите Интернет врска за овој опслужувач ако сакате да ги имате сите опции. ",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Вашата папка за податоци и вашите датотеки се најверојатно достапни од интернет. Датотеката .htaccess не работи. Строго ви препорачуваме да го подесите вашиот веб опслужувач на начин на кој вашата папка за податоци не е веќе достапна од интернет или да ја преместите папката за податоци надвор од коренот на веб опслужувачот.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Не еконфигуриран кеш за меморијата. За да ги подобрите перформансите ве молам конфигурирајте memcache ако е достапно. Дополнителни информации можат да се најдат во нашата <a href=\"{docLink}\">документација</a>.",
+ "Error occurred while checking server setup" : "Се случи грешка при проверката на подесувањата на опслужувачот",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заглавието \"{header}\" не е конфигурирано да биде еднакво на \"{expected}\". Ова е потенцијално сигурносен ризик и препорачуваме да прилагодат подесувањата.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP заглавието не е конфигурирано на најмалку \"2,678,400\" секунди. Ова е потенцијално сигурносен ризик и препорачуваме да се прилагодат подесувањата.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Пристапувате на страната преку HTTP. Строго ви препорачување да го подесите вашиот опслужувач да бара користење на HTTPS наместо тоа.",
"Shared" : "Споделен",
+ "Shared with {recipients}" : "Споделено со {recipients}",
"Share" : "Сподели",
"Error" : "Грешка",
"Error while sharing" : "Грешка при споделување",
@@ -51,6 +85,8 @@ OC.L10N.register(
"Error while changing permissions" : "Грешка при промена на привилегии",
"Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}",
"Shared with you by {owner}" : "Споделено со Вас од {owner}",
+ "Share with users or groups …" : "Сподели со корисници или групи ...",
+ "Share with users, groups or remote users …" : "Споделено со корисници, групи или оддалечени корисници ...",
"Share link" : "Сподели ја врската",
"Password protect" : "Заштити со лозинка",
"Password" : "Лозинка",
@@ -64,6 +100,7 @@ OC.L10N.register(
"Shared in {item} with {user}" : "Споделено во {item} со {user}",
"Unshare" : "Не споделувај",
"notify by email" : "извести преку електронска пошта",
+ "can share" : "може да споделува",
"can edit" : "може да се измени",
"access control" : "контрола на пристап",
"create" : "креирај",
diff --git a/core/l10n/mk.json b/core/l10n/mk.json
index 15037116cc9..6bb55b20d2e 100644
--- a/core/l10n/mk.json
+++ b/core/l10n/mk.json
@@ -1,10 +1,23 @@
{ "translations": {
+ "Couldn't send mail to following users: %s " : "Не можев да пратам порака на следниве корисници: %s",
"Turned on maintenance mode" : "Вклучен е модот за одржување",
"Turned off maintenance mode" : "Ислкучен е модот за одржување",
"Updated database" : "Базата е надградена",
+ "Checked database schema update" : "Проверена е шемата за ажурурање на базата на податоци",
+ "Checked database schema update for apps" : "Проверена е шемата за ажурурање на базата на податоци за апликации",
+ "Updated \"%s\" to %s" : "Ажурирано е \"%s\" во %s",
+ "Repair warning: " : "Предупредувања при поправка:",
+ "Repair error: " : "Грешка при поправка:",
+ "Following incompatible apps have been disabled: %s" : "Следниве некомпатибилни апликации се оневозможени: %s",
+ "Following 3rd party apps have been disabled: %s" : "Следниве апликации од 3-ти лица се оневозможени: %s",
+ "Invalid file provided" : "Дадена е невалидна датотека",
"No image or file provided" : "Не е доставена фотографија или датотека",
"Unknown filetype" : "Непознат тип на датотека",
"Invalid image" : "Невалидна фотографија",
+ "No temporary profile picture available, try again" : "Не е достапна привремена профилна слика, пробајте повторно",
+ "No crop data provided" : "Не се доставени податоци за сечење",
+ "No valid crop data provided" : "Нема валидни податоци за сечење",
+ "Crop is not square" : "Сечењето не е правоаголно",
"Sunday" : "Недела",
"Monday" : "Понеделник",
"Tuesday" : "Вторник",
@@ -26,11 +39,23 @@
"December" : "Декември",
"Settings" : "Подесувања",
"Saving..." : "Снимам...",
+ "Couldn't send reset email. Please contact your administrator." : "Не можам да истпратам порака за ресетирање. Ве молам контактирајте го вашиот администратор.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Врската за ресетирање на вашата лозинка е испратена на вашата е-адреса. Ако не ја добиете во разумно време, проверете ги вашите папки за спам/ѓубре.<br>Ако не е таму прашајте го вашиот локален администратор.",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Вашите датотеки се шифрирани. Ако не сте го овозможиле клучот за враќање, нема да можете да ги повратите вашите податоци откога вашата лозинка ќе биде ресетирана.<br>Ако не сте сигурни што да правите, ве молам контактирајте го вашиот локален администратор пред да продолжите.<br/>Дали навистина сакате да продолжите?",
+ "I know what I'm doing" : "Знам што правам",
+ "Password can not be changed. Please contact your administrator." : "Лозинката не може да се промени. Ве молам контактирајте го вашиот администратор.",
"No" : "Не",
"Yes" : "Да",
"Choose" : "Избери",
+ "Error loading file picker template: {error}" : "Грешка при вчитување на образецот за одбирач на датотеки: {error}",
"Ok" : "Во ред",
+ "Error loading message template: {error}" : "Грешка при вчитување на образецот за порака: {error}",
+ "read-only" : "само за читање",
"One file conflict" : "Конфликт со една датотека",
+ "New Files" : "Нови датотеки",
+ "Already existing files" : "Постоечки датотеки",
+ "Which files do you want to keep?" : "Кои датотеки сакате да ги задржите?",
+ "If you select both versions, the copied file will have a number added to its name." : "Ако ги одберете и двете верзии, копираната датотека ќе има број додаден на нејзиното име.",
"Cancel" : "Откажи",
"Continue" : "Продолжи",
"(all selected)" : "(сите одбрани)",
@@ -41,7 +66,16 @@
"So-so password" : "Така така лозинка",
"Good password" : "Добра лозинка",
"Strong password" : "Јака лозинка",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Вашиот веб опслужувач сеуште не е точно подесен да овозможува синхронизација на датотеки бидејќи интерфејсот за WebDAV изгледа дека е расипан. ",
+ "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Овој опслужувач нема работна Интернет врска. Ова значи дека некои опции како што е монтирање на надворешни складишта, известувања за ажурирање или инсталации на апликации од 3-ти лица нема да работат. Пристапот на датотеки од далечина и праќање на пораки за известувања може исто така да не работат. Ви советуваме да овозможите Интернет врска за овој опслужувач ако сакате да ги имате сите опции. ",
+ "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Вашата папка за податоци и вашите датотеки се најверојатно достапни од интернет. Датотеката .htaccess не работи. Строго ви препорачуваме да го подесите вашиот веб опслужувач на начин на кој вашата папка за податоци не е веќе достапна од интернет или да ја преместите папката за податоци надвор од коренот на веб опслужувачот.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Не еконфигуриран кеш за меморијата. За да ги подобрите перформансите ве молам конфигурирајте memcache ако е достапно. Дополнителни информации можат да се најдат во нашата <a href=\"{docLink}\">документација</a>.",
+ "Error occurred while checking server setup" : "Се случи грешка при проверката на подесувањата на опслужувачот",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заглавието \"{header}\" не е конфигурирано да биде еднакво на \"{expected}\". Ова е потенцијално сигурносен ризик и препорачуваме да прилагодат подесувањата.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP заглавието не е конфигурирано на најмалку \"2,678,400\" секунди. Ова е потенцијално сигурносен ризик и препорачуваме да се прилагодат подесувањата.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Пристапувате на страната преку HTTP. Строго ви препорачување да го подесите вашиот опслужувач да бара користење на HTTPS наместо тоа.",
"Shared" : "Споделен",
+ "Shared with {recipients}" : "Споделено со {recipients}",
"Share" : "Сподели",
"Error" : "Грешка",
"Error while sharing" : "Грешка при споделување",
@@ -49,6 +83,8 @@
"Error while changing permissions" : "Грешка при промена на привилегии",
"Shared with you and the group {group} by {owner}" : "Споделено со Вас и групата {group} од {owner}",
"Shared with you by {owner}" : "Споделено со Вас од {owner}",
+ "Share with users or groups …" : "Сподели со корисници или групи ...",
+ "Share with users, groups or remote users …" : "Споделено со корисници, групи или оддалечени корисници ...",
"Share link" : "Сподели ја врската",
"Password protect" : "Заштити со лозинка",
"Password" : "Лозинка",
@@ -62,6 +98,7 @@
"Shared in {item} with {user}" : "Споделено во {item} со {user}",
"Unshare" : "Не споделувај",
"notify by email" : "извести преку електронска пошта",
+ "can share" : "може да споделува",
"can edit" : "може да се измени",
"access control" : "контрола на пристап",
"create" : "креирај",
diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js
index a4c45b2d44a..707fd56605b 100644
--- a/core/l10n/nb_NO.js
+++ b/core/l10n/nb_NO.js
@@ -195,7 +195,6 @@ OC.L10N.register(
"Finish setup" : "Fullfør oppsetting",
"Finishing …" : "Ferdigstiller ...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikasjonen krever JavaScript for å fungere korrekt. Vennligst {linkstart}aktiver JavaScript{linkend} og last siden på nytt.",
- "%s is available. Get more information on how to update." : "%s er tilgjengelig. Få mer informasjon om hvordan du kan oppdatere.",
"Log out" : "Logg ut",
"Search" : "Søk",
"Server side authentication failed!" : "Autentisering feilet på serveren!",
diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json
index 175ee81fd71..b53af891bbf 100644
--- a/core/l10n/nb_NO.json
+++ b/core/l10n/nb_NO.json
@@ -193,7 +193,6 @@
"Finish setup" : "Fullfør oppsetting",
"Finishing …" : "Ferdigstiller ...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denne applikasjonen krever JavaScript for å fungere korrekt. Vennligst {linkstart}aktiver JavaScript{linkend} og last siden på nytt.",
- "%s is available. Get more information on how to update." : "%s er tilgjengelig. Få mer informasjon om hvordan du kan oppdatere.",
"Log out" : "Logg ut",
"Search" : "Søk",
"Server side authentication failed!" : "Autentisering feilet på serveren!",
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index ca57a81fbb2..53cd4ce633f 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Hallo {name}, het is hier {weather}",
"Hello {name}" : "Hallo {name}",
"_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"],
+ "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
"Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.",
"Please reload the page." : "Herlaad deze pagina.",
"The update was unsuccessful. " : "De update is niet geslaagd.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Hulp nodig?",
"See the documentation" : "Zie de documentatie",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.",
- "%s is available. Get more information on how to update." : "%s is beschikbaar. Verkrijg meer informatie over het bijwerken.",
"Log out" : "Afmelden",
"Search" : "Zoeken",
"Server side authentication failed!" : "Authenticatie bij de server mislukte!",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index 81f60a1cb42..ebc4cf4d3a2 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Hallo {name}, het is hier {weather}",
"Hello {name}" : "Hallo {name}",
"_download %n file_::_download %n files_" : ["download %n bestand","download %n bestanden"],
+ "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
"Updating {productName} to version {version}, this may take a while." : "Bijwerken {productName} naar versie {version}, dit kan even duren.",
"Please reload the page." : "Herlaad deze pagina.",
"The update was unsuccessful. " : "De update is niet geslaagd.",
@@ -202,7 +203,6 @@
"Need help?" : "Hulp nodig?",
"See the documentation" : "Zie de documentatie",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.",
- "%s is available. Get more information on how to update." : "%s is beschikbaar. Verkrijg meer informatie over het bijwerken.",
"Log out" : "Afmelden",
"Search" : "Zoeken",
"Server side authentication failed!" : "Authenticatie bij de server mislukte!",
diff --git a/core/l10n/nn_NO.js b/core/l10n/nn_NO.js
index 126d5d9f2c3..21ec7302c78 100644
--- a/core/l10n/nn_NO.js
+++ b/core/l10n/nn_NO.js
@@ -106,7 +106,6 @@ OC.L10N.register(
"Database tablespace" : "Tabellnamnrom for database",
"Database host" : "Databasetenar",
"Finish setup" : "Fullfør oppsettet",
- "%s is available. Get more information on how to update." : "%s er tilgjengeleg. Få meir informasjon om korleis du oppdaterer.",
"Log out" : "Logg ut",
"Search" : "Søk",
"remember" : "hugs",
diff --git a/core/l10n/nn_NO.json b/core/l10n/nn_NO.json
index 081b51240bb..d2b7abbe394 100644
--- a/core/l10n/nn_NO.json
+++ b/core/l10n/nn_NO.json
@@ -104,7 +104,6 @@
"Database tablespace" : "Tabellnamnrom for database",
"Database host" : "Databasetenar",
"Finish setup" : "Fullfør oppsettet",
- "%s is available. Get more information on how to update." : "%s er tilgjengeleg. Få meir informasjon om korleis du oppdaterer.",
"Log out" : "Logg ut",
"Search" : "Søk",
"remember" : "hugs",
diff --git a/core/l10n/pl.js b/core/l10n/pl.js
index 7d8de99d237..016c219ed30 100644
--- a/core/l10n/pl.js
+++ b/core/l10n/pl.js
@@ -184,7 +184,6 @@ OC.L10N.register(
"Finish setup" : "Zakończ konfigurowanie",
"Finishing …" : "Kończę ...",
"Need help?" : "Potrzebujesz pomocy?",
- "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.",
"Log out" : "Wyloguj",
"Search" : "Wyszukaj",
"Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!",
diff --git a/core/l10n/pl.json b/core/l10n/pl.json
index 2054c5b946d..591c4cbf51b 100644
--- a/core/l10n/pl.json
+++ b/core/l10n/pl.json
@@ -182,7 +182,6 @@
"Finish setup" : "Zakończ konfigurowanie",
"Finishing …" : "Kończę ...",
"Need help?" : "Potrzebujesz pomocy?",
- "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.",
"Log out" : "Wyloguj",
"Search" : "Wyszukaj",
"Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!",
diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js
index 075800cd012..00dd9989021 100644
--- a/core/l10n/pt_BR.js
+++ b/core/l10n/pt_BR.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Olá {name}, o clima está {weather}",
"Hello {name}" : "Olá {name}",
"_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"],
+ "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.",
"Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.",
"Please reload the page." : "Por favor recarregue a página",
"The update was unsuccessful. " : "A atualização não foi bem sucedida.",
@@ -203,7 +204,6 @@ OC.L10N.register(
"Need help?" : "Precisa de ajuda?",
"See the documentation" : "Veja a documentação",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para sua correta operação. Por favor {linkstart}habilite JavaScript{linkend} e recerregue a página.",
- "%s is available. Get more information on how to update." : "%s está disponível. Obtenha mais informações sobre como atualizar.",
"Log out" : "Sair",
"Search" : "Perquisar",
"Server side authentication failed!" : "Autenticação do servidor falhou!",
diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json
index ab0ea6fb3e2..6991f703840 100644
--- a/core/l10n/pt_BR.json
+++ b/core/l10n/pt_BR.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Olá {name}, o clima está {weather}",
"Hello {name}" : "Olá {name}",
"_download %n file_::_download %n files_" : ["baixar %n arquivo","baixar %n arquivos"],
+ "{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.",
"Updating {productName} to version {version}, this may take a while." : "Atualizando {productName} para a versão {version}, isso pode demorar um pouco.",
"Please reload the page." : "Por favor recarregue a página",
"The update was unsuccessful. " : "A atualização não foi bem sucedida.",
@@ -201,7 +202,6 @@
"Need help?" : "Precisa de ajuda?",
"See the documentation" : "Veja a documentação",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para sua correta operação. Por favor {linkstart}habilite JavaScript{linkend} e recerregue a página.",
- "%s is available. Get more information on how to update." : "%s está disponível. Obtenha mais informações sobre como atualizar.",
"Log out" : "Sair",
"Search" : "Perquisar",
"Server side authentication failed!" : "Autenticação do servidor falhou!",
diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js
index 07a36fb282f..0b06d843a18 100644
--- a/core/l10n/pt_PT.js
+++ b/core/l10n/pt_PT.js
@@ -203,7 +203,6 @@ OC.L10N.register(
"Need help?" : "Precisa de ajuda?",
"See the documentation" : "Veja a documentação",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para funcionar correctamente. Por favor, {linkstart}active o JavaScript{linkend} e recarregue a página.",
- "%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.",
"Log out" : "Terminar sessão",
"Search" : "Procurar",
"Server side authentication failed!" : "Autenticação do lado do servidor falhou!",
diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json
index 8da29e724dd..a51e2455055 100644
--- a/core/l10n/pt_PT.json
+++ b/core/l10n/pt_PT.json
@@ -201,7 +201,6 @@
"Need help?" : "Precisa de ajuda?",
"See the documentation" : "Veja a documentação",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicação requer JavaScript para funcionar correctamente. Por favor, {linkstart}active o JavaScript{linkend} e recarregue a página.",
- "%s is available. Get more information on how to update." : "%s está disponível. Tenha mais informações como actualizar.",
"Log out" : "Terminar sessão",
"Search" : "Procurar",
"Server side authentication failed!" : "Autenticação do lado do servidor falhou!",
diff --git a/core/l10n/ro.js b/core/l10n/ro.js
index a9e34f6b43c..51ff60c64a5 100644
--- a/core/l10n/ro.js
+++ b/core/l10n/ro.js
@@ -128,7 +128,6 @@ OC.L10N.register(
"Database tablespace" : "Tabela de spațiu a bazei de date",
"Database host" : "Bază date",
"Finish setup" : "Finalizează instalarea",
- "%s is available. Get more information on how to update." : "%s este disponibil. Vezi mai multe informații despre procesul de actualizare.",
"Log out" : "Ieșire",
"Search" : "Căutare",
"Forgot your password? Reset it!" : "Ți-ai uitat parola? Resetează!",
diff --git a/core/l10n/ro.json b/core/l10n/ro.json
index 0cdef73f4e5..bee38c7a4ae 100644
--- a/core/l10n/ro.json
+++ b/core/l10n/ro.json
@@ -126,7 +126,6 @@
"Database tablespace" : "Tabela de spațiu a bazei de date",
"Database host" : "Bază date",
"Finish setup" : "Finalizează instalarea",
- "%s is available. Get more information on how to update." : "%s este disponibil. Vezi mai multe informații despre procesul de actualizare.",
"Log out" : "Ieșire",
"Search" : "Căutare",
"Forgot your password? Reset it!" : "Ți-ai uitat parola? Resetează!",
diff --git a/core/l10n/ru.js b/core/l10n/ru.js
index 71916e38afe..8495c606d6e 100644
--- a/core/l10n/ru.js
+++ b/core/l10n/ru.js
@@ -53,7 +53,7 @@ OC.L10N.register(
"Ok" : "Ок",
"Error loading message template: {error}" : "Ошибка загрузки шаблона сообщений: {error}",
"read-only" : "только для чтения",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах","{count} конфликтов в файлах"],
"One file conflict" : "Один конфликт в файлах",
"New Files" : "Новые файлы",
"Already existing files" : "Существующие файлы",
@@ -133,7 +133,7 @@ OC.L10N.register(
"sunny" : "солнечно",
"Hello {name}, the weather is {weather}" : "Здравствуйте {name}, погода {weather}",
"Hello {name}" : "Здравствуйте {name}",
- "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов"],
+ "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов","скачать %n файлов"],
"Updating {productName} to version {version}, this may take a while." : "Идет обновление {productName} до версии {version}, пожалуйста, подождите.",
"Please reload the page." : "Обновите страницу.",
"The update was unsuccessful. " : "Обновление не удалось.",
@@ -148,7 +148,7 @@ OC.L10N.register(
"Reset password" : "Сбросить пароль",
"Searching other places" : "Идет поиск в других местах",
"No search result in other places" : "В других местах ничего не найдено",
- "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах"],
+ "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах","{count} результатов поиска в других местах"],
"Personal" : "Личное",
"Users" : "Пользователи",
"Apps" : "Приложения",
@@ -204,7 +204,6 @@ OC.L10N.register(
"Need help?" : "Нужна помощь?",
"See the documentation" : "Посмотреть документацию",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Это приложение требует включённый JavaScript для корректной работы. Пожалуйста, <a href=\"http://enable-javascript.com/\" target=\"_blank\">включите JavaScript</a> и перезагрузите интерфейс.",
- "%s is available. Get more information on how to update." : "Доступна версия %s. Получить дополнительную информацию о порядке обновления.",
"Log out" : "Выйти",
"Search" : "Найти",
"Server side authentication failed!" : "Неудачная аутентификация с сервером!",
@@ -233,4 +232,4 @@ OC.L10N.register(
"This %s instance is currently in maintenance mode, which may take a while." : "Это %s находится в режиме технического обслуживания, которое может занять некоторое время.",
"This page will refresh itself when the %s instance is available again." : "Эта страница обновится, когда экземпляр %s снова станет доступен."
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/core/l10n/ru.json b/core/l10n/ru.json
index ab800f8489e..695e139b7e1 100644
--- a/core/l10n/ru.json
+++ b/core/l10n/ru.json
@@ -51,7 +51,7 @@
"Ok" : "Ок",
"Error loading message template: {error}" : "Ошибка загрузки шаблона сообщений: {error}",
"read-only" : "только для чтения",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах"],
+ "_{count} file conflict_::_{count} file conflicts_" : ["{count} конфликт в файлах","{count} конфликта в файлах","{count} конфликтов в файлах","{count} конфликтов в файлах"],
"One file conflict" : "Один конфликт в файлах",
"New Files" : "Новые файлы",
"Already existing files" : "Существующие файлы",
@@ -131,7 +131,7 @@
"sunny" : "солнечно",
"Hello {name}, the weather is {weather}" : "Здравствуйте {name}, погода {weather}",
"Hello {name}" : "Здравствуйте {name}",
- "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов"],
+ "_download %n file_::_download %n files_" : ["скачать %n файл","скачать %n файла","скачать %n файлов","скачать %n файлов"],
"Updating {productName} to version {version}, this may take a while." : "Идет обновление {productName} до версии {version}, пожалуйста, подождите.",
"Please reload the page." : "Обновите страницу.",
"The update was unsuccessful. " : "Обновление не удалось.",
@@ -146,7 +146,7 @@
"Reset password" : "Сбросить пароль",
"Searching other places" : "Идет поиск в других местах",
"No search result in other places" : "В других местах ничего не найдено",
- "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах"],
+ "_{count} search result in other places_::_{count} search results in other places_" : ["{count} результат поиска в других местах","{count} результата поиска в других местах","{count} результатов поиска в других местах","{count} результатов поиска в других местах"],
"Personal" : "Личное",
"Users" : "Пользователи",
"Apps" : "Приложения",
@@ -202,7 +202,6 @@
"Need help?" : "Нужна помощь?",
"See the documentation" : "Посмотреть документацию",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Это приложение требует включённый JavaScript для корректной работы. Пожалуйста, <a href=\"http://enable-javascript.com/\" target=\"_blank\">включите JavaScript</a> и перезагрузите интерфейс.",
- "%s is available. Get more information on how to update." : "Доступна версия %s. Получить дополнительную информацию о порядке обновления.",
"Log out" : "Выйти",
"Search" : "Найти",
"Server side authentication failed!" : "Неудачная аутентификация с сервером!",
@@ -230,5 +229,5 @@
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Чтобы избежать задержек в крупных установках, вы можете выполнить следующую команду в каталоге установки:",
"This %s instance is currently in maintenance mode, which may take a while." : "Это %s находится в режиме технического обслуживания, которое может занять некоторое время.",
"This page will refresh itself when the %s instance is available again." : "Эта страница обновится, когда экземпляр %s снова станет доступен."
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/core/l10n/sk_SK.js b/core/l10n/sk_SK.js
index 1e6252b566d..34500b22216 100644
--- a/core/l10n/sk_SK.js
+++ b/core/l10n/sk_SK.js
@@ -189,7 +189,6 @@ OC.L10N.register(
"Finishing …" : "Dokončujem...",
"Need help?" : "Potrebujete pomoc?",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku",
- "%s is available. Get more information on how to update." : "%s je dostupná. Získajte viac informácií o postupe aktualizácie.",
"Log out" : "Odhlásiť",
"Search" : "Hľadať",
"Server side authentication failed!" : "Autentifikácia na serveri zlyhala!",
diff --git a/core/l10n/sk_SK.json b/core/l10n/sk_SK.json
index 676270f879f..0cacdd3c10a 100644
--- a/core/l10n/sk_SK.json
+++ b/core/l10n/sk_SK.json
@@ -187,7 +187,6 @@
"Finishing …" : "Dokončujem...",
"Need help?" : "Potrebujete pomoc?",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku",
- "%s is available. Get more information on how to update." : "%s je dostupná. Získajte viac informácií o postupe aktualizácie.",
"Log out" : "Odhlásiť",
"Search" : "Hľadať",
"Server side authentication failed!" : "Autentifikácia na serveri zlyhala!",
diff --git a/core/l10n/sl.js b/core/l10n/sl.js
index a9556803da0..8c845051b90 100644
--- a/core/l10n/sl.js
+++ b/core/l10n/sl.js
@@ -178,7 +178,6 @@ OC.L10N.register(
"SQLite will be used as database." : "Kot podatkovna zbirka bo uporabljena zbirka SQLite",
"Finish setup" : "Končaj nastavitev",
"Finishing …" : "Poteka zaključevanje opravila ...",
- "%s is available. Get more information on how to update." : "%s je na voljo. Pridobite več podrobnosti za posodobitev.",
"Log out" : "Odjava",
"Search" : "Poišči",
"Server side authentication failed!" : "Overitev s strežnika je spodletela!",
diff --git a/core/l10n/sl.json b/core/l10n/sl.json
index ccf0293e481..3aecd5820d6 100644
--- a/core/l10n/sl.json
+++ b/core/l10n/sl.json
@@ -176,7 +176,6 @@
"SQLite will be used as database." : "Kot podatkovna zbirka bo uporabljena zbirka SQLite",
"Finish setup" : "Končaj nastavitev",
"Finishing …" : "Poteka zaključevanje opravila ...",
- "%s is available. Get more information on how to update." : "%s je na voljo. Pridobite več podrobnosti za posodobitev.",
"Log out" : "Odjava",
"Search" : "Poišči",
"Server side authentication failed!" : "Overitev s strežnika je spodletela!",
diff --git a/core/l10n/sq.js b/core/l10n/sq.js
index 998670e066a..cd6cc572cba 100644
--- a/core/l10n/sq.js
+++ b/core/l10n/sq.js
@@ -167,7 +167,6 @@ OC.L10N.register(
"Database host" : "Pozicioni (host) i database-it",
"Finish setup" : "Mbaro setup-in",
"Finishing …" : "Duke përfunduar ...",
- "%s is available. Get more information on how to update." : "%s është i disponueshëm. Merrni më shumë informacione mbi azhurnimin.",
"Log out" : "Dalje",
"Search" : "Kërko",
"Server side authentication failed!" : "Verifikimi në krahun e serverit dështoi!",
diff --git a/core/l10n/sq.json b/core/l10n/sq.json
index b8f08ef8d14..a7554c582fe 100644
--- a/core/l10n/sq.json
+++ b/core/l10n/sq.json
@@ -165,7 +165,6 @@
"Database host" : "Pozicioni (host) i database-it",
"Finish setup" : "Mbaro setup-in",
"Finishing …" : "Duke përfunduar ...",
- "%s is available. Get more information on how to update." : "%s është i disponueshëm. Merrni më shumë informacione mbi azhurnimin.",
"Log out" : "Dalje",
"Search" : "Kërko",
"Server side authentication failed!" : "Verifikimi në krahun e serverit dështoi!",
diff --git a/core/l10n/sr.js b/core/l10n/sr.js
index e0e52a23f5c..b59a3b35caa 100644
--- a/core/l10n/sr.js
+++ b/core/l10n/sr.js
@@ -41,9 +41,9 @@ OC.L10N.register(
"December" : "децембар",
"Settings" : "Поставке",
"Saving..." : "Уписујем...",
- "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за обнављање лозинке. Контактирајте администратора.",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за обнављање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након обнављања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?",
+ "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за ресетовање лозинке. Контактирајте администратора.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за ресетовање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након ресетовања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?",
"I know what I'm doing" : "Знам шта радим",
"Password can not be changed. Please contact your administrator." : "Лозинка се не може променити. Контактирајте администратора.",
"No" : "Не",
@@ -74,7 +74,7 @@ OC.L10N.register(
"Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш директоријум са подацима и ваши фајлови су вероватно доступни са интернета. Фајл .htaccess не ради. Предлажемо да подесите ваш веб сервер на начин да директоријум са подацима не буде доступан или га изместите изван кореног директоријума веб сервера.",
"No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Није подешен меморијски кеш. Да бисте побољшали перформансе подесите „memcache“ ако је доступан. Више информација можете наћи у <a href=\"{docLink}\">документацији</a>.",
"Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера",
- "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово је потенцијални безбедносни или ризик за приватност и препоручујемо да подесите ову поставку.",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово потенцијално угрожава безбедност и приватност и препоручујемо да подесите ову поставку.",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "ХТТП захлавље „Strict-Transport-Security“ није постављено на најмање \"2,678,400\" секунди. Ово је потенцијални безбедносни ризик и препоручујемо да подесите ову поставку.",
"You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Приступате сајту преко небезбедне (ХТТП) везе. Препоручујемо да подесите ваш сервер да захтева коришћење безбедне (ХТТПС) везе.",
"Shared" : "Дељено",
@@ -88,7 +88,7 @@ OC.L10N.register(
"Shared with you by {owner}" : "{owner} дели са вама",
"Share with users or groups …" : "Дели са корисницима или групама...",
"Share with users, groups or remote users …" : "Дели са корисницима, групама или удаљеним корисницима...",
- "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Подели са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Поделите са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud",
"Share link" : "Веза дељења",
"The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања",
"Link" : "Веза",
@@ -134,18 +134,19 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Здраво {name}, време је {weather}",
"Hello {name}" : "Здраво {name}",
"_download %n file_::_download %n files_" : ["преузми %n фајл","преузми %n фајла","преузми %n фајлова"],
+ "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.",
"Updating {productName} to version {version}, this may take a while." : "Надограђујем {productName} на издање {version}. Ово би могло да потраје.",
"Please reload the page." : "Поново учитајте страницу.",
"The update was unsuccessful. " : "Ажурирање није успело.",
"The update was successful. Redirecting you to ownCloud now." : "Ажурирање је успело. Преусмеравам вас на оунКлауд.",
- "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку, јер je дигитални кључ неважећи",
- "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за обнављање лозинке. Проверите да ли је корисничко име исправно.",
- "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за обнављање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.",
- "%s password reset" : "%s лозинка обновљена",
- "Use the following link to reset your password: {link}" : "Употребите следећу везу да обновите своју лозинку: {link}",
+ "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку јер je токен неважећи",
+ "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање лозинке. Проверите да ли је корисничко име исправно.",
+ "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.",
+ "%s password reset" : "%s лозинка ресетована",
+ "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете своју лозинку: {link}",
"New password" : "Нова лозинка",
"New Password" : "Нова лозинка",
- "Reset password" : "Обнови лозинку",
+ "Reset password" : "Ресетуј лозинку",
"Searching other places" : "Претражујем остала места",
"No search result in other places" : "Нема резултата претраге на осталим местима",
"_{count} search result in other places_::_{count} search results in other places_" : ["{count} резултат претраге на осталим местима","{count} резултата претраге на осталим местима","{count} резултата претраге на осталим местима"],
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Треба вам помоћ?",
"See the documentation" : "Погледајте документацију",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ова апликација захтева Јава скрипт за исправан рад. {linkstart}Омогућите Јава скрипт{linkend} и поново учитајте страницу.",
- "%s is available. Get more information on how to update." : "%s је доступан. Сазнајте више о томе како да ажурирате.",
"Log out" : "Одјава",
"Search" : "Претражи",
"Server side authentication failed!" : "Аутентификација на серверу није успела!",
diff --git a/core/l10n/sr.json b/core/l10n/sr.json
index 41391e214cb..c4d15f4b25a 100644
--- a/core/l10n/sr.json
+++ b/core/l10n/sr.json
@@ -39,9 +39,9 @@
"December" : "децембар",
"Settings" : "Поставке",
"Saving..." : "Уписујем...",
- "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за обнављање лозинке. Контактирајте администратора.",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за обнављање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након обнављања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?",
+ "Couldn't send reset email. Please contact your administrator." : "Не могу да пошаљем е-пошту за ресетовање лозинке. Контактирајте администратора.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Веза за ресетовање лозинке је послата на вашу е-адресу. Ако је не примите ускоро, проверите фасцикле за нежељену пошту.<br>Ако није ни тамо, контактирајте вашег администратора.",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Фајлови су вам шифровани. Ако нисте укључили кључ за опоравак, нећете моћи да повратите податке након ресетовања лозинке.<br />Ако нисте сигурни шта да радите, контактирајте администратора пре него што наставите.<br />Да ли желите да наставите?",
"I know what I'm doing" : "Знам шта радим",
"Password can not be changed. Please contact your administrator." : "Лозинка се не може променити. Контактирајте администратора.",
"No" : "Не",
@@ -72,7 +72,7 @@
"Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш директоријум са подацима и ваши фајлови су вероватно доступни са интернета. Фајл .htaccess не ради. Предлажемо да подесите ваш веб сервер на начин да директоријум са подацима не буде доступан или га изместите изван кореног директоријума веб сервера.",
"No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Није подешен меморијски кеш. Да бисте побољшали перформансе подесите „memcache“ ако је доступан. Више информација можете наћи у <a href=\"{docLink}\">документацији</a>.",
"Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера",
- "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово је потенцијални безбедносни или ризик за приватност и препоручујемо да подесите ову поставку.",
+ "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "ХТТП заглавље „{header}“ није подешено као „{expected}“. Ово потенцијално угрожава безбедност и приватност и препоручујемо да подесите ову поставку.",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "ХТТП захлавље „Strict-Transport-Security“ није постављено на најмање \"2,678,400\" секунди. Ово је потенцијални безбедносни ризик и препоручујемо да подесите ову поставку.",
"You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Приступате сајту преко небезбедне (ХТТП) везе. Препоручујемо да подесите ваш сервер да захтева коришћење безбедне (ХТТПС) везе.",
"Shared" : "Дељено",
@@ -86,7 +86,7 @@
"Shared with you by {owner}" : "{owner} дели са вама",
"Share with users or groups …" : "Дели са корисницима или групама...",
"Share with users, groups or remote users …" : "Дели са корисницима, групама или удаљеним корисницима...",
- "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Подели са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Поделите са људима у другим облацима користећи синтаксу корисничкоиме@сервер.com/owncloud",
"Share link" : "Веза дељења",
"The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања",
"Link" : "Веза",
@@ -132,18 +132,19 @@
"Hello {name}, the weather is {weather}" : "Здраво {name}, време је {weather}",
"Hello {name}" : "Здраво {name}",
"_download %n file_::_download %n files_" : ["преузми %n фајл","преузми %n фајла","преузми %n фајлова"],
+ "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.",
"Updating {productName} to version {version}, this may take a while." : "Надограђујем {productName} на издање {version}. Ово би могло да потраје.",
"Please reload the page." : "Поново учитајте страницу.",
"The update was unsuccessful. " : "Ажурирање није успело.",
"The update was successful. Redirecting you to ownCloud now." : "Ажурирање је успело. Преусмеравам вас на оунКлауд.",
- "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку, јер je дигитални кључ неважећи",
- "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за обнављање лозинке. Проверите да ли је корисничко име исправно.",
- "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за обнављање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.",
- "%s password reset" : "%s лозинка обновљена",
- "Use the following link to reset your password: {link}" : "Употребите следећу везу да обновите своју лозинку: {link}",
+ "Couldn't reset password because the token is invalid" : "Није могуће ресетовати лозинку јер je токен неважећи",
+ "Couldn't send reset email. Please make sure your username is correct." : "Не могу да пошаљем поруку за ресетовање лозинке. Проверите да ли је корисничко име исправно.",
+ "Couldn't send reset email because there is no email address for this username. Please contact your administrator." : "Не могу да пошаљем поруку за ресетовање лозинке јер за ово корисничко име нема е-адресе. Контактирајте администратора.",
+ "%s password reset" : "%s лозинка ресетована",
+ "Use the following link to reset your password: {link}" : "Употребите следећу везу да ресетујете своју лозинку: {link}",
"New password" : "Нова лозинка",
"New Password" : "Нова лозинка",
- "Reset password" : "Обнови лозинку",
+ "Reset password" : "Ресетуј лозинку",
"Searching other places" : "Претражујем остала места",
"No search result in other places" : "Нема резултата претраге на осталим местима",
"_{count} search result in other places_::_{count} search results in other places_" : ["{count} резултат претраге на осталим местима","{count} резултата претраге на осталим местима","{count} резултата претраге на осталим местима"],
@@ -202,7 +203,6 @@
"Need help?" : "Треба вам помоћ?",
"See the documentation" : "Погледајте документацију",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ова апликација захтева Јава скрипт за исправан рад. {linkstart}Омогућите Јава скрипт{linkend} и поново учитајте страницу.",
- "%s is available. Get more information on how to update." : "%s је доступан. Сазнајте више о томе како да ажурирате.",
"Log out" : "Одјава",
"Search" : "Претражи",
"Server side authentication failed!" : "Аутентификација на серверу није успела!",
diff --git a/core/l10n/sr@latin.js b/core/l10n/sr@latin.js
index 5d912f997fd..706f7bd3950 100644
--- a/core/l10n/sr@latin.js
+++ b/core/l10n/sr@latin.js
@@ -173,7 +173,6 @@ OC.L10N.register(
"Database host" : "Domaćin baze",
"Finish setup" : "Završi podešavanje",
"Finishing …" : "Završavam ...",
- "%s is available. Get more information on how to update." : "%s je dostupan. Pronađite više informacija kako da izvršite osvežavanje.",
"Log out" : "Odjava",
"Search" : "Traži",
"Server side authentication failed!" : "Provera identiteta na stani servera nije uspela!",
diff --git a/core/l10n/sr@latin.json b/core/l10n/sr@latin.json
index 6ad7a38364a..ce5dba2d915 100644
--- a/core/l10n/sr@latin.json
+++ b/core/l10n/sr@latin.json
@@ -171,7 +171,6 @@
"Database host" : "Domaćin baze",
"Finish setup" : "Završi podešavanje",
"Finishing …" : "Završavam ...",
- "%s is available. Get more information on how to update." : "%s je dostupan. Pronađite više informacija kako da izvršite osvežavanje.",
"Log out" : "Odjava",
"Search" : "Traži",
"Server side authentication failed!" : "Provera identiteta na stani servera nije uspela!",
diff --git a/core/l10n/sv.js b/core/l10n/sv.js
index 7042b8cb657..2873fc26586 100644
--- a/core/l10n/sv.js
+++ b/core/l10n/sv.js
@@ -116,6 +116,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Hej {name}, vädret är {weather}",
"Hello {name}" : "Hej {name}",
"_download %n file_::_download %n files_" : ["Ladda ner %n fil","Ladda ner %n filer"],
+ "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.",
"Updating {productName} to version {version}, this may take a while." : "Uppdaterar {productName} till version {version}, detta kan ta en stund.",
"Please reload the page." : "Vänligen ladda om sidan.",
"The update was unsuccessful. " : "Uppdateringen misslyckades.",
@@ -175,7 +176,8 @@ OC.L10N.register(
"Database host" : "Databasserver",
"Finish setup" : "Avsluta installation",
"Finishing …" : "Avslutar ...",
- "%s is available. Get more information on how to update." : "%s är tillgänglig. Få mer information om hur du går tillväga för att uppdatera.",
+ "Need help?" : "Behöver du hjälp?",
+ "See the documentation" : "Kolla dokumentationen",
"Log out" : "Logga ut",
"Search" : "Sök",
"Server side authentication failed!" : "Servern misslyckades med autentisering!",
diff --git a/core/l10n/sv.json b/core/l10n/sv.json
index 843f905ec55..11cb5abc953 100644
--- a/core/l10n/sv.json
+++ b/core/l10n/sv.json
@@ -114,6 +114,7 @@
"Hello {name}, the weather is {weather}" : "Hej {name}, vädret är {weather}",
"Hello {name}" : "Hej {name}",
"_download %n file_::_download %n files_" : ["Ladda ner %n fil","Ladda ner %n filer"],
+ "{version} is available. Get more information on how to update." : "{version} är tillgänglig. Få mer information om hur du uppdaterar.",
"Updating {productName} to version {version}, this may take a while." : "Uppdaterar {productName} till version {version}, detta kan ta en stund.",
"Please reload the page." : "Vänligen ladda om sidan.",
"The update was unsuccessful. " : "Uppdateringen misslyckades.",
@@ -173,7 +174,8 @@
"Database host" : "Databasserver",
"Finish setup" : "Avsluta installation",
"Finishing …" : "Avslutar ...",
- "%s is available. Get more information on how to update." : "%s är tillgänglig. Få mer information om hur du går tillväga för att uppdatera.",
+ "Need help?" : "Behöver du hjälp?",
+ "See the documentation" : "Kolla dokumentationen",
"Log out" : "Logga ut",
"Search" : "Sök",
"Server side authentication failed!" : "Servern misslyckades med autentisering!",
diff --git a/core/l10n/tr.js b/core/l10n/tr.js
index db07becd788..3a59adebbe8 100644
--- a/core/l10n/tr.js
+++ b/core/l10n/tr.js
@@ -72,6 +72,7 @@ OC.L10N.register(
"Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya transferi için düzgün bir şekilde yapılandırılmamış. WevDAV arabirimini sorunlu gözüküyor.",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya üçüncü parti uygulama kurma gibi bazı özellikler çalışmayacak demektir. Uzak dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için İnternet bağlantısını etkinleştirmenizi öneriyoruz.",
"Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "data dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Hafıza önbelleği ayarlanmamış. Performansın artması için eğer mümkünse memcache ayarlarınızı yapın lütfen. Detaylı bilgiye <a href=\"{docLink}\">kullanıcı kılavuzları</a>ndan ulaşabilirsiniz.",
"Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
"The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP başlığı \"2,678,400\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir risk ve bu ayarı düzeltmenizi öneririz.",
@@ -85,6 +86,9 @@ OC.L10N.register(
"Error while changing permissions" : "İzinleri değiştirirken hata",
"Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
"Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı",
+ "Share with users or groups …" : "Kullanıcı ve gruplarla paylaş...",
+ "Share with users, groups or remote users …" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud şeklinde ownClouds kullanan diğer kullanıcılarla paylaş",
"Share link" : "Paylaşma bağlantısı",
"The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek",
"Link" : "Bağlantı",
@@ -97,6 +101,7 @@ OC.L10N.register(
"Set expiration date" : "Son kullanma tarihini ayarla",
"Expiration" : "Bitiş",
"Expiration date" : "Son kullanım tarihi",
+ "An error occured. Please try again" : "Bir hata oluştu. Lütfen yeniden deneyin",
"Adding user..." : "Kullanıcı ekleniyor...",
"group" : "grup",
"remote" : "uzak",
@@ -129,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}",
"Hello {name}" : "Merhaba {name}",
"_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"],
+ "{version} is available. Get more information on how to update." : "Sürüm {version} hazır. Nasıl güncelleyeceğinle ilgili daha fazla bilgi al.",
"Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.",
"Please reload the page." : "Lütfen sayfayı yeniden yükleyin.",
"The update was unsuccessful. " : "Güncelleştirme başarısız.",
@@ -176,6 +182,7 @@ OC.L10N.register(
"File: %s" : "Dosya: %s",
"Line: %s" : "Satır: %s",
"Trace" : "İz",
+ "Security warning" : "Güvenlik uyarısı",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Sunucunuzu nasıl ayarlayacağınıza dair bilgi için, lütfen <a href=\"%s\" target=\"_blank\">belgelendirme sayfasını</a> ziyaret edin.",
"Create an <strong>admin account</strong>" : "Bir <strong>yönetici hesabı</strong> oluşturun",
@@ -189,17 +196,21 @@ OC.L10N.register(
"Database name" : "Veritabanı adı",
"Database tablespace" : "Veritabanı tablo alanı",
"Database host" : "Veritabanı sunucusu",
+ "Performance warning" : "Performans uyarısı",
"SQLite will be used as database." : "Veritabanı olarak SQLite kullanılacak.",
"For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için farklı bir veritabanı arka ucu seçmenizi öneriyoruz",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.",
"Finish setup" : "Kurulumu tamamla",
"Finishing …" : "Tamamlanıyor ...",
+ "Need help?" : "Yardım lazım mı?",
+ "See the documentation" : "Kullanım klavuzuna bak",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulama düzgün çalışabilmesi için JavaScript gerektirir. Lütfen {linkstart}JavaScript'i etkinleştirin{linkend} ve sayfayı yeniden yükleyin.",
- "%s is available. Get more information on how to update." : "%s kullanılabilir. Nasıl güncelleyeceğiniz hakkında daha fazla bilgi alın.",
"Log out" : "Çıkış yap",
"Search" : "Ara",
"Server side authentication failed!" : "Sunucu taraflı yetkilendirme başarısız!",
"Please contact your administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
+ "An internal error occured." : "Dahili bir hata oluştu.",
+ "Please try again or contact your administrator." : "Lütfen yeniden deneyin veya yöneticinizle iletişim kurun.",
"Forgot your password? Reset it!" : "Parolanızı mı unuttunuz? Sıfırlayın!",
"remember" : "hatırla",
"Log in" : "Giriş yap",
diff --git a/core/l10n/tr.json b/core/l10n/tr.json
index 16938b7db81..c2f5b6e04a4 100644
--- a/core/l10n/tr.json
+++ b/core/l10n/tr.json
@@ -70,6 +70,7 @@
"Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya transferi için düzgün bir şekilde yapılandırılmamış. WevDAV arabirimini sorunlu gözüküyor.",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya üçüncü parti uygulama kurma gibi bazı özellikler çalışmayacak demektir. Uzak dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için İnternet bağlantısını etkinleştirmenizi öneriyoruz.",
"Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "data dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Hafıza önbelleği ayarlanmamış. Performansın artması için eğer mümkünse memcache ayarlarınızı yapın lütfen. Detaylı bilgiye <a href=\"{docLink}\">kullanıcı kılavuzları</a>ndan ulaşabilirsiniz.",
"Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
"The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "\"Strict-Transport-Security\" HTTP başlığı \"2,678,400\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir risk ve bu ayarı düzeltmenizi öneririz.",
@@ -83,6 +84,9 @@
"Error while changing permissions" : "İzinleri değiştirirken hata",
"Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
"Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı",
+ "Share with users or groups …" : "Kullanıcı ve gruplarla paylaş...",
+ "Share with users, groups or remote users …" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...",
+ "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "username@example.com/owncloud şeklinde ownClouds kullanan diğer kullanıcılarla paylaş",
"Share link" : "Paylaşma bağlantısı",
"The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek",
"Link" : "Bağlantı",
@@ -95,6 +99,7 @@
"Set expiration date" : "Son kullanma tarihini ayarla",
"Expiration" : "Bitiş",
"Expiration date" : "Son kullanım tarihi",
+ "An error occured. Please try again" : "Bir hata oluştu. Lütfen yeniden deneyin",
"Adding user..." : "Kullanıcı ekleniyor...",
"group" : "grup",
"remote" : "uzak",
@@ -127,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}",
"Hello {name}" : "Merhaba {name}",
"_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"],
+ "{version} is available. Get more information on how to update." : "Sürüm {version} hazır. Nasıl güncelleyeceğinle ilgili daha fazla bilgi al.",
"Updating {productName} to version {version}, this may take a while." : "{productName}, {version} sürümüne güncelleniyor, bu biraz zaman alabilir.",
"Please reload the page." : "Lütfen sayfayı yeniden yükleyin.",
"The update was unsuccessful. " : "Güncelleştirme başarısız.",
@@ -174,6 +180,7 @@
"File: %s" : "Dosya: %s",
"Line: %s" : "Satır: %s",
"Trace" : "İz",
+ "Security warning" : "Güvenlik uyarısı",
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Sunucunuzu nasıl ayarlayacağınıza dair bilgi için, lütfen <a href=\"%s\" target=\"_blank\">belgelendirme sayfasını</a> ziyaret edin.",
"Create an <strong>admin account</strong>" : "Bir <strong>yönetici hesabı</strong> oluşturun",
@@ -187,17 +194,21 @@
"Database name" : "Veritabanı adı",
"Database tablespace" : "Veritabanı tablo alanı",
"Database host" : "Veritabanı sunucusu",
+ "Performance warning" : "Performans uyarısı",
"SQLite will be used as database." : "Veritabanı olarak SQLite kullanılacak.",
"For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için farklı bir veritabanı arka ucu seçmenizi öneriyoruz",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.",
"Finish setup" : "Kurulumu tamamla",
"Finishing …" : "Tamamlanıyor ...",
+ "Need help?" : "Yardım lazım mı?",
+ "See the documentation" : "Kullanım klavuzuna bak",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulama düzgün çalışabilmesi için JavaScript gerektirir. Lütfen {linkstart}JavaScript'i etkinleştirin{linkend} ve sayfayı yeniden yükleyin.",
- "%s is available. Get more information on how to update." : "%s kullanılabilir. Nasıl güncelleyeceğiniz hakkında daha fazla bilgi alın.",
"Log out" : "Çıkış yap",
"Search" : "Ara",
"Server side authentication failed!" : "Sunucu taraflı yetkilendirme başarısız!",
"Please contact your administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
+ "An internal error occured." : "Dahili bir hata oluştu.",
+ "Please try again or contact your administrator." : "Lütfen yeniden deneyin veya yöneticinizle iletişim kurun.",
"Forgot your password? Reset it!" : "Parolanızı mı unuttunuz? Sıfırlayın!",
"remember" : "hatırla",
"Log in" : "Giriş yap",
diff --git a/core/l10n/uk.js b/core/l10n/uk.js
index 1d479a06311..72c66b90d4b 100644
--- a/core/l10n/uk.js
+++ b/core/l10n/uk.js
@@ -134,6 +134,7 @@ OC.L10N.register(
"Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ",
"Hello {name}" : "Привіт {name}",
"_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"],
+ "{version} is available. Get more information on how to update." : "{version} вже є доступною. Отримати більш детальну інформацію про те, як оновити.",
"Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
"The update was unsuccessful. " : "Оновлення завершилось невдачею.",
@@ -204,7 +205,6 @@ OC.L10N.register(
"Need help?" : "Потрібна допомога?",
"See the documentation" : "Дивіться документацію",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте інтерфейс.",
- "%s is available. Get more information on how to update." : "%s доступний. Отримай більше інформації про те, як оновити.",
"Log out" : "Вихід",
"Search" : "Знайти",
"Server side authentication failed!" : "Невдала аутентифікація з сервером!",
diff --git a/core/l10n/uk.json b/core/l10n/uk.json
index ad3969d1402..074bc1eb9d7 100644
--- a/core/l10n/uk.json
+++ b/core/l10n/uk.json
@@ -132,6 +132,7 @@
"Hello {name}, the weather is {weather}" : "Привіт {name}, погода {weather} ",
"Hello {name}" : "Привіт {name}",
"_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"],
+ "{version} is available. Get more information on how to update." : "{version} вже є доступною. Отримати більш детальну інформацію про те, як оновити.",
"Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
"The update was unsuccessful. " : "Оновлення завершилось невдачею.",
@@ -202,7 +203,6 @@
"Need help?" : "Потрібна допомога?",
"See the documentation" : "Дивіться документацію",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте інтерфейс.",
- "%s is available. Get more information on how to update." : "%s доступний. Отримай більше інформації про те, як оновити.",
"Log out" : "Вихід",
"Search" : "Знайти",
"Server side authentication failed!" : "Невдала аутентифікація з сервером!",
diff --git a/core/l10n/ur_PK.js b/core/l10n/ur_PK.js
index ac43395406d..b0304997ac3 100644
--- a/core/l10n/ur_PK.js
+++ b/core/l10n/ur_PK.js
@@ -108,7 +108,6 @@ OC.L10N.register(
"Database host" : "ڈیٹابیس ہوسٹ",
"Finish setup" : "سیٹ اپ ختم کریں",
"Finishing …" : "تکمیل ...",
- "%s is available. Get more information on how to update." : "%s دستیاب ہے. اپ ڈیٹ کرنے کے بارے میں مزید معلومات حاصل کریں.",
"Log out" : "لاگ آؤٹ",
"Search" : "تلاش",
"remember" : "یاد رکھیں",
diff --git a/core/l10n/ur_PK.json b/core/l10n/ur_PK.json
index 6f8d424a0eb..fe8fece8083 100644
--- a/core/l10n/ur_PK.json
+++ b/core/l10n/ur_PK.json
@@ -106,7 +106,6 @@
"Database host" : "ڈیٹابیس ہوسٹ",
"Finish setup" : "سیٹ اپ ختم کریں",
"Finishing …" : "تکمیل ...",
- "%s is available. Get more information on how to update." : "%s دستیاب ہے. اپ ڈیٹ کرنے کے بارے میں مزید معلومات حاصل کریں.",
"Log out" : "لاگ آؤٹ",
"Search" : "تلاش",
"remember" : "یاد رکھیں",
diff --git a/core/l10n/vi.js b/core/l10n/vi.js
index 8207cf98462..5caf47cfd16 100644
--- a/core/l10n/vi.js
+++ b/core/l10n/vi.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"Database host" : "Database host",
"Finish setup" : "Cài đặt hoàn tất",
"Finishing …" : "Đang hoàn thành ...",
- "%s is available. Get more information on how to update." : "%s còn trống. Xem thêm thông tin cách cập nhật.",
"Log out" : "Đăng xuất",
"Search" : "Tìm kiếm",
"Server side authentication failed!" : "Xác thực phía máy chủ không thành công!",
diff --git a/core/l10n/vi.json b/core/l10n/vi.json
index eb67b81e255..10603d28a93 100644
--- a/core/l10n/vi.json
+++ b/core/l10n/vi.json
@@ -116,7 +116,6 @@
"Database host" : "Database host",
"Finish setup" : "Cài đặt hoàn tất",
"Finishing …" : "Đang hoàn thành ...",
- "%s is available. Get more information on how to update." : "%s còn trống. Xem thêm thông tin cách cập nhật.",
"Log out" : "Đăng xuất",
"Search" : "Tìm kiếm",
"Server side authentication failed!" : "Xác thực phía máy chủ không thành công!",
diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js
index f9929fee3b5..6a0da0710c9 100644
--- a/core/l10n/zh_CN.js
+++ b/core/l10n/zh_CN.js
@@ -196,7 +196,6 @@ OC.L10N.register(
"Finish setup" : "安装完成",
"Finishing …" : "正在结束 ...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "对于正确的操作,该应用要求 JavaScript 。请 {linkstart} 打开 JavaScript {linkend} ,然后重新载入页面。",
- "%s is available. Get more information on how to update." : "%s 可用。获取更多关于如何升级的信息。",
"Log out" : "注销",
"Search" : "搜索",
"Server side authentication failed!" : "服务端验证失败!",
diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json
index c37cc262e67..a6d48105721 100644
--- a/core/l10n/zh_CN.json
+++ b/core/l10n/zh_CN.json
@@ -194,7 +194,6 @@
"Finish setup" : "安装完成",
"Finishing …" : "正在结束 ...",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "对于正确的操作,该应用要求 JavaScript 。请 {linkstart} 打开 JavaScript {linkend} ,然后重新载入页面。",
- "%s is available. Get more information on how to update." : "%s 可用。获取更多关于如何升级的信息。",
"Log out" : "注销",
"Search" : "搜索",
"Server side authentication failed!" : "服务端验证失败!",
diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js
index e482d74666d..42c1aebcfde 100644
--- a/core/l10n/zh_TW.js
+++ b/core/l10n/zh_TW.js
@@ -163,7 +163,6 @@ OC.L10N.register(
"Database host" : "資料庫主機",
"Finish setup" : "完成設定",
"Finishing …" : "即將完成…",
- "%s is available. Get more information on how to update." : "%s 已經釋出,瞭解更多資訊以進行更新。",
"Log out" : "登出",
"Search" : "搜尋",
"Server side authentication failed!" : "伺服器端認證失敗!",
diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json
index 770968ea26e..c2af58eafa6 100644
--- a/core/l10n/zh_TW.json
+++ b/core/l10n/zh_TW.json
@@ -161,7 +161,6 @@
"Database host" : "資料庫主機",
"Finish setup" : "完成設定",
"Finishing …" : "即將完成…",
- "%s is available. Get more information on how to update." : "%s 已經釋出,瞭解更多資訊以進行更新。",
"Log out" : "登出",
"Search" : "搜尋",
"Server side authentication failed!" : "伺服器端認證失敗!",
diff --git a/core/register_command.php b/core/register_command.php
index b9c722860c1..801148aa55e 100644
--- a/core/register_command.php
+++ b/core/register_command.php
@@ -51,9 +51,10 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) {
$application->add(new OC\Core\Command\Background\WebCron(\OC::$server->getConfig()));
$application->add(new OC\Core\Command\Background\Ajax(\OC::$server->getConfig()));
$application->add(new OC\Core\Command\Encryption\Disable(\OC::$server->getConfig()));
- $application->add(new OC\Core\Command\Encryption\Enable(\OC::$server->getConfig()));
+ $application->add(new OC\Core\Command\Encryption\Enable(\OC::$server->getConfig(), \OC::$server->getEncryptionManager()));
$application->add(new OC\Core\Command\Encryption\ListModules(\OC::$server->getEncryptionManager()));
$application->add(new OC\Core\Command\Encryption\SetDefaultModule(\OC::$server->getEncryptionManager()));
+ $application->add(new OC\Core\Command\Encryption\Status(\OC::$server->getEncryptionManager()));
} else {
$application->add(new OC\Core\Command\Maintenance\Install(\OC::$server->getConfig()));
}
diff --git a/core/search/css/results.css b/core/search/css/results.css
index b62f7df3fe3..36a2ccc13c3 100644
--- a/core/search/css/results.css
+++ b/core/search/css/results.css
@@ -3,12 +3,14 @@
See the COPYING-README file. */
#searchresults {
- background-color:#fff;
- overflow-x:hidden;
- text-overflow:ellipsis;
+ background-color: #fff;
+ overflow-x: hidden;
+ text-overflow: ellipsis;
padding-top: 65px;
box-sizing: border-box;
- z-index:75;
+ z-index: 75;
+ /* account for margin-bottom in files list */
+ margin-top: -250px;
}
#searchresults.hidden {
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 87a6a9216d2..bcf47316a73 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -2,7 +2,11 @@
<!--[if lte IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><!--<![endif]-->
- <head data-user="<?php p($_['user_uid']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>">
+ <head data-user="<?php p($_['user_uid']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>"
+ <?php if ($_['updateAvailable']): ?>
+ data-update-version="<?php print($_['updateVersion']); ?>" data-update-link="<?php print_unescaped($_['updateLink']); ?>"
+ <?php endif; ?>
+ >
<meta charset="utf-8">
<title>
<?php
@@ -31,9 +35,6 @@
<?php include('layout.noscript.warning.php'); ?>
<div id="notification-container">
<div id="notification"></div>
- <?php if ($_['updateAvailable']): ?>
- <div id="update-notification" style="display: inline;"><a href="<?php print_unescaped($_['updateLink']); ?>"><?php p($l->t('%s is available. Get more information on how to update.', array($_['updateVersion']))); ?></a></div>
- <?php endif; ?>
</div>
<header role="banner"><div id="header">
<a href="<?php print_unescaped(link_to('', 'index.php')); ?>"
diff --git a/lib/base.php b/lib/base.php
index ec875480662..b7f19c96406 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -503,6 +503,12 @@ class OC {
}
}
+ /**
+ * Try to set some values to the required ownCloud default
+ */
+ public static function setRequiredIniValues() {
+ @ini_set('default_charset', 'UTF-8');
+ }
public static function init() {
// register autoloader
@@ -536,12 +542,10 @@ class OC {
\OC::$server->getEventLogger()->log('autoloader', 'Autoloader', $loaderStart, $loaderEnd);
\OC::$server->getEventLogger()->start('boot', 'Initialize');
- // set some stuff
- //ob_start();
+ // Don't display errors and log them
error_reporting(E_ALL | E_STRICT);
- if (defined('DEBUG') && DEBUG) {
- ini_set('display_errors', 1);
- }
+ @ini_set('display_errors', 0);
+ @ini_set('log_errors', 1);
date_default_timezone_set('UTC');
@@ -559,6 +563,7 @@ class OC {
@ini_set('post_max_size', '10G');
@ini_set('file_uploads', '50');
+ self::setRequiredIniValues();
self::handleAuthHeaders();
self::registerAutoloaderCache();
@@ -649,7 +654,9 @@ class OC {
self::registerCacheHooks();
self::registerFilesystemHooks();
- self::registerPreviewHooks();
+ if (\OC::$server->getSystemConfig()->getValue('enable_previews', true)) {
+ self::registerPreviewHooks();
+ }
self::registerShareHooks();
self::registerLogRotate();
self::registerLocalAddressBook();
@@ -720,6 +727,8 @@ class OC {
if ($enabled) {
\OCP\Util::connectHook('OCP\Share', 'post_shared', 'OC\Encryption\HookManager', 'postShared');
\OCP\Util::connectHook('OCP\Share', 'post_unshare', 'OC\Encryption\HookManager', 'postUnshared');
+ \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OC\Encryption\HookManager', 'postRename');
+ \OCP\Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', 'OC\Encryption\HookManager', 'postRestore');
}
}
diff --git a/lib/l10n/ast.js b/lib/l10n/ast.js
index 5b5dcc03975..ed653ec5566 100644
--- a/lib/l10n/ast.js
+++ b/lib/l10n/ast.js
@@ -102,7 +102,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Instala ún d'estos locales nel to sistema y reanicia'l sirvidor web",
"Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.",
"PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, entrúga-y al to alministrador del sirvidor p'anovar PHP a la cabera versión. La to versión PHP nun ta sofitada por ownCloud y la comunidá PHP.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?",
diff --git a/lib/l10n/ast.json b/lib/l10n/ast.json
index bc1464a47af..0f6cfa91c59 100644
--- a/lib/l10n/ast.json
+++ b/lib/l10n/ast.json
@@ -100,7 +100,6 @@
"Please install one of these locales on your system and restart your webserver." : "Instala ún d'estos locales nel to sistema y reanicia'l sirvidor web",
"Please ask your server administrator to install the module." : "Por favor, entrúga-y al to alministrador del sirvidor pa instalar el módulu.",
"PHP module %s not installed." : "Nun ta instaláu'l módulu PHP %s",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, entrúga-y al to alministrador del sirvidor p'anovar PHP a la cabera versión. La to versión PHP nun ta sofitada por ownCloud y la comunidá PHP.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ta aparentemente configuráu pa desaniciar bloques de documentos en llinia. Esto va facer que delles aplicaciones principales nun tean accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dablemente esto seya culpa d'un caché o acelerador, como por exemplu Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse los módulos PHP, ¿pero tán entá llistaos como faltantes?",
diff --git a/lib/l10n/be.js b/lib/l10n/be.js
index 3e45b00df63..7380f381901 100644
--- a/lib/l10n/be.js
+++ b/lib/l10n/be.js
@@ -7,4 +7,4 @@ OC.L10N.register(
"last year" : "У мінулым годзе",
"seconds ago" : "Секунд таму"
},
-"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/lib/l10n/be.json b/lib/l10n/be.json
index 7237151c324..99e27807f68 100644
--- a/lib/l10n/be.json
+++ b/lib/l10n/be.json
@@ -4,5 +4,5 @@
"last month" : "У мінулым месяцы",
"last year" : "У мінулым годзе",
"seconds ago" : "Секунд таму"
-},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js
index f43a642478f..1320491be01 100644
--- a/lib/l10n/bg_BG.js
+++ b/lib/l10n/bg_BG.js
@@ -113,9 +113,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.",
"Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.",
"PHP module %s not installed." : "PHP модулът %s не е инсталиран.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Моля, поискай твоят администратор да обнови PHP до най-новата верския. Твоята PHP версия вече не се поддържа от ownCloud и PHP общността.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP е конфигуриран да запълва post данните от ниско ниво. От PHP 5.6 насам това води до връщането на грешки при абсолютно валиден код.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "За да поправите този проблем, задайте на <code>always_populate_raw_post_data</code> стойност <code>-1</code> във вашоя php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?",
diff --git a/lib/l10n/bg_BG.json b/lib/l10n/bg_BG.json
index 527ac9a59c2..60f21770939 100644
--- a/lib/l10n/bg_BG.json
+++ b/lib/l10n/bg_BG.json
@@ -111,9 +111,6 @@
"Please install one of these locales on your system and restart your webserver." : "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.",
"Please ask your server administrator to install the module." : "Моля, поискай твоят администратор да инсталира модула.",
"PHP module %s not installed." : "PHP модулът %s не е инсталиран.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Моля, поискай твоят администратор да обнови PHP до най-новата верския. Твоята PHP версия вече не се поддържа от ownCloud и PHP общността.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP е конфигуриран да запълва post данните от ниско ниво. От PHP 5.6 насам това води до връщането на грешки при абсолютно валиден код.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "За да поправите този проблем, задайте на <code>always_populate_raw_post_data</code> стойност <code>-1</code> във вашоя php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP е настроен да премахва inline doc блокове. Това може да превърне няколко основни приложения недостъпни.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?",
diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js
index f4c39a2b1d3..136751f1f7b 100644
--- a/lib/l10n/ca.js
+++ b/lib/l10n/ca.js
@@ -101,7 +101,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.",
"Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.",
"PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Demaneu a l'administrador que actualitzi PHP a l'última versió. La versió que teniu instal·lada no té suport d'ownCloud ni de la comunitat PHP.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?",
diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json
index 5d85f26dd25..822bf14e36c 100644
--- a/lib/l10n/ca.json
+++ b/lib/l10n/ca.json
@@ -99,7 +99,6 @@
"Please install one of these locales on your system and restart your webserver." : "Siusplau, instal·li un d'aquests arxius de localització en el seu sistema, i reinicii el seu servidor web.",
"Please ask your server administrator to install the module." : "Demaneu a l'administrador del sistema que instal·li el mòdul.",
"PHP module %s not installed." : "El mòdul PHP %s no està instal·lat.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Demaneu a l'administrador que actualitzi PHP a l'última versió. La versió que teniu instal·lada no té suport d'ownCloud ni de la comunitat PHP.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Aparentment PHP està configurat per mostrar blocs en línia de documentació. Això farà que algunes aplicacions core siguin inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Això probablement està provocat per una cau/accelerador com Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "S'han instal·lat mòduls PHP, però encara es llisten com una mancança?",
diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js
index bcda6608f3a..d19306a6d3f 100644
--- a/lib/l10n/cs_CZ.js
+++ b/lib/l10n/cs_CZ.js
@@ -131,9 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP modul %s není nainstalován.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP hodnota \"%s\" není nastavena na \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Úprava tohoto nastavení v php.ini opět rozběhne ownCloud",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Požádejte svého správce systému o aktualizaci PHP na nejnovější verzi. Vaše verze PHP již není podporována komunitami ownCloud a PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurováno vytvářet raw post data. Od verze 5.6 bude toto nastavení vést PHP k vypisování hlášení i pro perfektně správný kód.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pro nápravu tohoto chování nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> ve svém php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload je nastaveno na \"%s\" místo očekávané hodnoty \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pro nápravu nastavte <code>mbstring.func_overload</code> na <code>0</code> v souboru php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek nedostupnost množství hlavních aplikací.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?",
diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json
index 75e2ed64840..3b4e01fefd1 100644
--- a/lib/l10n/cs_CZ.json
+++ b/lib/l10n/cs_CZ.json
@@ -129,9 +129,8 @@
"PHP module %s not installed." : "PHP modul %s není nainstalován.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP hodnota \"%s\" není nastavena na \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Úprava tohoto nastavení v php.ini opět rozběhne ownCloud",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Požádejte svého správce systému o aktualizaci PHP na nejnovější verzi. Vaše verze PHP již není podporována komunitami ownCloud a PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurováno vytvářet raw post data. Od verze 5.6 bude toto nastavení vést PHP k vypisování hlášení i pro perfektně správný kód.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pro nápravu tohoto chování nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> ve svém php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload je nastaveno na \"%s\" místo očekávané hodnoty \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pro nápravu nastavte <code>mbstring.func_overload</code> na <code>0</code> v souboru php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek nedostupnost množství hlavních aplikací.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly jsou nainstalovány, ale stále se tváří jako chybějící?",
diff --git a/lib/l10n/da.js b/lib/l10n/da.js
index da30fd89020..0647d110366 100644
--- a/lib/l10n/da.js
+++ b/lib/l10n/da.js
@@ -131,9 +131,6 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP-modulet %s er ikke installeret.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-indstillingen \"%s\" er ikke angivet til \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Justeres denne indstilling i php.ini, så vil ownCloud kunne køre igen",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bed venligst din serveradministrator om at opdatere PHP til seneste version. Din PHP-version understøttes ikke længere af ownCload og PHP-fællesskabet.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigureret til at udfylde rå postdata. Siden PHP 5.6 har dette ført til, at PHP smider med notitser for fuldstændig gyldig kode.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For at rette dette problem, så angiv <code>always_populate_raw_post_data</code> til <code>-1</code> i din php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP opsætning blokere \"inline doc blocks\". dette gør at flere grundlæggende apps utilgængelige",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette er sansynligvis forårsaget af et accelerator eller cache som Zend OPcache eller eAccelerator",
"PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremstår stadig som fraværende?",
diff --git a/lib/l10n/da.json b/lib/l10n/da.json
index 5a46e35cbdd..0fd2986f905 100644
--- a/lib/l10n/da.json
+++ b/lib/l10n/da.json
@@ -129,9 +129,6 @@
"PHP module %s not installed." : "PHP-modulet %s er ikke installeret.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-indstillingen \"%s\" er ikke angivet til \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Justeres denne indstilling i php.ini, så vil ownCloud kunne køre igen",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bed venligst din serveradministrator om at opdatere PHP til seneste version. Din PHP-version understøttes ikke længere af ownCload og PHP-fællesskabet.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigureret til at udfylde rå postdata. Siden PHP 5.6 har dette ført til, at PHP smider med notitser for fuldstændig gyldig kode.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For at rette dette problem, så angiv <code>always_populate_raw_post_data</code> til <code>-1</code> i din php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP opsætning blokere \"inline doc blocks\". dette gør at flere grundlæggende apps utilgængelige",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette er sansynligvis forårsaget af et accelerator eller cache som Zend OPcache eller eAccelerator",
"PHP modules have been installed, but they are still listed as missing?" : "Der er installeret PHP-moduler, men de fremstår stadig som fraværende?",
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index 3f14875c221..f501a65da8a 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -131,9 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte kontaktiere Deinen Server-Administrator und bitte um Aktualisierung von PHP auf die letzte Version. Deine PHP-Version wird von ownCloud und der PHP-Community nicht mehr unterstützt.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setze <code>always_populate_raw_post_data</code> in Deiner php.ini auf <code>-1</code>, um dieses Problem zu beheben.",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setze in Deiner php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index 366eefdd23d..2d384d00a48 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -129,9 +129,8 @@
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte kontaktiere Deinen Server-Administrator und bitte um Aktualisierung von PHP auf die letzte Version. Deine PHP-Version wird von ownCloud und der PHP-Community nicht mehr unterstützt.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setze <code>always_populate_raw_post_data</code> in Deiner php.ini auf <code>-1</code>, um dieses Problem zu beheben.",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setze in Deiner php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
diff --git a/lib/l10n/de_AT.js b/lib/l10n/de_AT.js
index 93afb7482f4..3f534e7e9fb 100644
--- a/lib/l10n/de_AT.js
+++ b/lib/l10n/de_AT.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"lib",
{
"Help" : "Hilfe",
- "Personal" : "Persönlich"
+ "Personal" : "Persönlich",
+ "seconds ago" : "Sekunden zuvor"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/de_AT.json b/lib/l10n/de_AT.json
index ed22677418e..5702c60934e 100644
--- a/lib/l10n/de_AT.json
+++ b/lib/l10n/de_AT.json
@@ -1,5 +1,6 @@
{ "translations": {
"Help" : "Hilfe",
- "Personal" : "Persönlich"
+ "Personal" : "Persönlich",
+ "seconds ago" : "Sekunden zuvor"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index b6bc89942f1..a813a654e35 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -131,9 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte kontaktieren Sie Ihren Server-Administrator und bitten Sie um Aktualisierung von PHP auf die letzte Version. Ihre PHP-Version wird von ownCloud und der PHP-Community nicht mehr unterstützt.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>always_populate_raw_post_data</code> auf <code>-1</code>, um dieses Problem zu beheben.",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index e86d3424d95..c92e972bdbb 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -129,9 +129,8 @@
"PHP module %s not installed." : "PHP-Modul %s nicht installiert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-Einstellung „%s“ ist nicht auf „%s“ gesetzt.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Durch das Anpassen dieser Einstellung in der php.ini wird ownCloud wieder laufen",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Bitte kontaktieren Sie Ihren Server-Administrator und bitten Sie um Aktualisierung von PHP auf die letzte Version. Ihre PHP-Version wird von ownCloud und der PHP-Community nicht mehr unterstützt.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP ist konfiguriert, unverarbeitete POST-Daten zu füllen. Seit PHP 5.6 führt dies dazu, dass PHP Warnmeldungen für vollkommen gültigen Code ausgibt.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>always_populate_raw_post_data</code> auf <code>-1</code>, um dieses Problem zu beheben.",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload ist auf \"%s\", anstatt dem erwarteteten Wert \"0\", eingestellt",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Setzen Sie in Ihrer php.ini <code>mbstring.func_overload</code> auf <code>-0</code>, um dieses Problem zu beheben.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP ist offenbar so konfiguriert, dass PHPDoc-Blöcke in der Anweisung entfernt werden. Dadurch sind mehrere Kern-Apps nicht erreichbar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dies wird wahrscheinlich durch Zwischenspeicher/Beschleuniger wie etwa Zend OPcache oder eAccelerator verursacht.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-Module wurden installiert, werden aber als noch fehlend gelistet?",
diff --git a/lib/l10n/el.js b/lib/l10n/el.js
index 37825622729..9b15850dbdb 100644
--- a/lib/l10n/el.js
+++ b/lib/l10n/el.js
@@ -128,9 +128,8 @@ OC.L10N.register(
"PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ",
"PHP setting \"%s\" is not set to \"%s\"." : "Η ρύθμιση \"%s\"της PHP δεν είναι ορισμένη σε \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Η διόρθωση της ρύθμισης στο αρχείο php.ini θα επιτρέψει στο ownCloud να επαναλειτουργήσει",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να ενημερώσει τον PHP στη νεώτερη έκδοση. Η έκδοση του PHP σας δεν υποστηρίζεται πλεον από το ownCloud και την κοινότητα PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "Η PHP έχει ρυθμιστεί για τη αρχικοποίηση των ακατέργαστων δεδομένων αποστολής. Από την PHP έκδοση 5.6 αυτό θα οδηγήσει την PHP στην παραγωγή ειδοποιήσεων σε απόλυτα έγκυρο κώδικα.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Για να διορθώσετε το πρόβλημα ορίστε το <code>always_populate_raw_post_data</code> ως <code>-1</code> στο αρχείο php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Για να διορθώσετε αυτό το πρόβλημα ορίστε το <code>mbstring.func_overload</code> σε <code>0</code> στο αρχείο php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;",
diff --git a/lib/l10n/el.json b/lib/l10n/el.json
index 7396052caf5..45a39a98096 100644
--- a/lib/l10n/el.json
+++ b/lib/l10n/el.json
@@ -126,9 +126,8 @@
"PHP module %s not installed." : "Η μονάδα %s PHP δεν είναι εγκατεστημένη. ",
"PHP setting \"%s\" is not set to \"%s\"." : "Η ρύθμιση \"%s\"της PHP δεν είναι ορισμένη σε \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Η διόρθωση της ρύθμισης στο αρχείο php.ini θα επιτρέψει στο ownCloud να επαναλειτουργήσει",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Παρακαλώ ζητήστε από το διαχειριστή του διακομιστή σας να ενημερώσει τον PHP στη νεώτερη έκδοση. Η έκδοση του PHP σας δεν υποστηρίζεται πλεον από το ownCloud και την κοινότητα PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "Η PHP έχει ρυθμιστεί για τη αρχικοποίηση των ακατέργαστων δεδομένων αποστολής. Από την PHP έκδοση 5.6 αυτό θα οδηγήσει την PHP στην παραγωγή ειδοποιήσεων σε απόλυτα έγκυρο κώδικα.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Για να διορθώσετε το πρόβλημα ορίστε το <code>always_populate_raw_post_data</code> ως <code>-1</code> στο αρχείο php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Το mbstring.func_overload έχει ορισθεί σε \"%s\" αντί για την αναμενόμενη τιμή \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Για να διορθώσετε αυτό το πρόβλημα ορίστε το <code>mbstring.func_overload</code> σε <code>0</code> στο αρχείο php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Ο PHP φαίνεται να είναι ρυθμισμένος ώστε να αφαιρεί μπλοκ εσωτερικών κειμένων (inline doc). Αυτό θα καταστήσει κύριες εφαρμογές μη-διαθέσιμες.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Αυτό πιθανόν προκλήθηκε από προσωρινή μνήμη (cache)/επιταχυντή όπως τη Zend OPcache ή τον eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Κάποιες μονάδες PHP έχουν εγκατασταθεί, αλλά είναι ακόμα καταγεγραμμένες ως απούσες;",
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
index b06b00ac656..eaa94cb2d1b 100644
--- a/lib/l10n/en_GB.js
+++ b/lib/l10n/en_GB.js
@@ -131,9 +131,6 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP module %s not installed.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP setting \"%s\" is not set to \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Adjusting this setting in php.ini will make ownCloud run again",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?",
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
index 18a448b9ed3..8c7f2b820eb 100644
--- a/lib/l10n/en_GB.json
+++ b/lib/l10n/en_GB.json
@@ -129,9 +129,6 @@
"PHP module %s not installed." : "PHP module %s not installed.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP setting \"%s\" is not set to \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Adjusting this setting in php.ini will make ownCloud run again",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules have been installed, but they are still listed as missing?",
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
index a457b29741f..c9259e77695 100644
--- a/lib/l10n/es.js
+++ b/lib/l10n/es.js
@@ -131,9 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "El módulo PHP %s no está instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "La opción PHP \"%s\" no es \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta opción en php.ini permitirá que ownCloud vuelva a funcionar",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Consulte a su administrador del servidor para actualizar PHP a la versión más reciente. Su versión de PHP ya no es apoyado por ownCloud y la comunidad PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para transmitir datos raw. Desde la versión 5.6 de PHP se permitirá enviar noticias perfectamente validas.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arreglar este error, cambia <code>always_populate_raw_post_data</code> a <code>-1</code> en su php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definida como \"%s\" en lugar del valor esperado de \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para solucionarlo, defina la función <code>mbstring.func_overload</code> a <code>0</code> en su php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran",
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
index 48dbd42d0bc..7d0978827e1 100644
--- a/lib/l10n/es.json
+++ b/lib/l10n/es.json
@@ -129,9 +129,8 @@
"PHP module %s not installed." : "El módulo PHP %s no está instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "La opción PHP \"%s\" no es \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta opción en php.ini permitirá que ownCloud vuelva a funcionar",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Consulte a su administrador del servidor para actualizar PHP a la versión más reciente. Su versión de PHP ya no es apoyado por ownCloud y la comunidad PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para transmitir datos raw. Desde la versión 5.6 de PHP se permitirá enviar noticias perfectamente validas.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arreglar este error, cambia <code>always_populate_raw_post_data</code> a <code>-1</code> en su php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definida como \"%s\" en lugar del valor esperado de \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para solucionarlo, defina la función <code>mbstring.func_overload</code> a <code>0</code> en su php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Los módulos PHP se han instalado, pero aparecen listados como si faltaran",
diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js
index 35f39ca794a..d672d9f96af 100644
--- a/lib/l10n/et_EE.js
+++ b/lib/l10n/et_EE.js
@@ -99,7 +99,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.",
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
"PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Palu oma serveri haldajal uuendada PHP viimasele versioonile. Sinu PHP versioon pole enam toetatud ownCloud-i ja PHP kogukonna poolt.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
index b8022ca1d29..2bb262b8e5e 100644
--- a/lib/l10n/et_EE.json
+++ b/lib/l10n/et_EE.json
@@ -97,7 +97,6 @@
"Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.",
"Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.",
"PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Palu oma serveri haldajal uuendada PHP viimasele versioonile. Sinu PHP versioon pole enam toetatud ownCloud-i ja PHP kogukonna poolt.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?",
diff --git a/lib/l10n/eu.js b/lib/l10n/eu.js
index e1b5cdc67d0..60ee82cdb61 100644
--- a/lib/l10n/eu.js
+++ b/lib/l10n/eu.js
@@ -116,8 +116,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Instalatu hauetako lokal bat zure sisteman eta berrabiarazi zure web zerbitzaria.",
"Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.",
"PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari PHP azkenengo bertsiora eguneratzea. Zure PHP bertsioa ez dute ez ownCloud eta ez PHP komunitateek mantentzen.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Hau konpontzeko ezarri <code>always_populate_raw_post_data</code> berdin <code>-1</code> zure php.inian",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?",
diff --git a/lib/l10n/eu.json b/lib/l10n/eu.json
index 229b673f73b..80a932eb70a 100644
--- a/lib/l10n/eu.json
+++ b/lib/l10n/eu.json
@@ -114,8 +114,6 @@
"Please install one of these locales on your system and restart your webserver." : "Instalatu hauetako lokal bat zure sisteman eta berrabiarazi zure web zerbitzaria.",
"Please ask your server administrator to install the module." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari modulua instala dezan.",
"PHP module %s not installed." : "PHPren %s modulua ez dago instalaturik.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Mesedez eskatu zure zerbitzariaren kudeatzaileari PHP azkenengo bertsiora eguneratzea. Zure PHP bertsioa ez dute ez ownCloud eta ez PHP komunitateek mantentzen.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Hau konpontzeko ezarri <code>always_populate_raw_post_data</code> berdin <code>-1</code> zure php.inian",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduluak instalatu dira, baina oraindik faltan bezala markatuta daude?",
diff --git a/lib/l10n/fi_FI.js b/lib/l10n/fi_FI.js
index dfe90975b61..54161ba47e6 100644
--- a/lib/l10n/fi_FI.js
+++ b/lib/l10n/fi_FI.js
@@ -89,6 +89,7 @@ OC.L10N.register(
"Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu",
"Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt",
"Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "Vanhenemispäivän tyhjentäminen ei onnistu. Jaoille on määritelty pakolliseksi vanhenemispäivä.",
"Sharing backend %s not found" : "Jakamisen taustaosaa %s ei löytynyt",
"Sharing backend for %s not found" : "Jakamisen taustaosaa kohteelle %s ei löytynyt",
"Sharing %s failed, because the user %s is the original sharer" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on alkuperäinen jakaja",
@@ -111,8 +112,8 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-asetusta \"%s\" ei ole asetettu arvoon \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Tämän asetuksen muuttaminen php.ini-tiedostossa saattaa ownCloudin jälleen toimintakykyiseksi",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pyydä palvelimen ylläpitäjää päivittämään PHP uusimpaan versioon. Käyttämäsi PHP-versio ei ole enää tuettu ownCloud- ja PHP-yhteisön toimesta.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Korjaa ongelma asettamalla asetuksen <code>always_populate_raw_post_data</code> arvoksi <code>-1</code> php.ini-tiedostossa",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload on asetettu arvoon \"%s\" odotetun arvon \"0\" sijaan",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Korjaa tämä ongelma asettamalla <code>mbstring.func_overload</code> arvoon <code>0</code> php.ini-tiedostossasi",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?",
"Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan",
diff --git a/lib/l10n/fi_FI.json b/lib/l10n/fi_FI.json
index 59de6195405..35bf7f8257d 100644
--- a/lib/l10n/fi_FI.json
+++ b/lib/l10n/fi_FI.json
@@ -87,6 +87,7 @@
"Sharing %s failed, because sharing with links is not allowed" : "Kohteen %s jakaminen epäonnistui, koska jakaminen linkkejä käyttäen ei ole sallittu",
"Setting permissions for %s failed, because the item was not found" : "Kohteen %s oikeuksien asettaminen epäonnistui, koska kohdetta ei löytynyt",
"Cannot set expiration date. Expiration date is in the past" : "Vanhentumispäivää ei voi asettaa. Vanhentumispäivä on jo mennyt",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "Vanhenemispäivän tyhjentäminen ei onnistu. Jaoille on määritelty pakolliseksi vanhenemispäivä.",
"Sharing backend %s not found" : "Jakamisen taustaosaa %s ei löytynyt",
"Sharing backend for %s not found" : "Jakamisen taustaosaa kohteelle %s ei löytynyt",
"Sharing %s failed, because the user %s is the original sharer" : "Kohteen %s jakaminen epäonnistui, koska käyttäjä %s on alkuperäinen jakaja",
@@ -109,8 +110,8 @@
"PHP module %s not installed." : "PHP-moduulia %s ei ole asennettu.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-asetusta \"%s\" ei ole asetettu arvoon \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Tämän asetuksen muuttaminen php.ini-tiedostossa saattaa ownCloudin jälleen toimintakykyiseksi",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pyydä palvelimen ylläpitäjää päivittämään PHP uusimpaan versioon. Käyttämäsi PHP-versio ei ole enää tuettu ownCloud- ja PHP-yhteisön toimesta.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Korjaa ongelma asettamalla asetuksen <code>always_populate_raw_post_data</code> arvoksi <code>-1</code> php.ini-tiedostossa",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload on asetettu arvoon \"%s\" odotetun arvon \"0\" sijaan",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Korjaa tämä ongelma asettamalla <code>mbstring.func_overload</code> arvoon <code>0</code> php.ini-tiedostossasi",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduulit on asennettu, mutta ovatko ne vieläkin listattu puuttuviksi?",
"Please ask your server administrator to restart the web server." : "Pyydä palvelimen ylläpitäjää käynnistämään web-palvelin uudelleen.",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 vaaditaan",
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index 69b4e201cd2..45f6db84447 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -130,9 +130,8 @@ OC.L10N.register(
"PHP module %s not installed." : "Le module PHP %s n’est pas installé.",
"PHP setting \"%s\" is not set to \"%s\"." : "Le paramètre PHP \"%s\" n'est pas \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajuster ce paramètre dans php.ini permettra à ownCloud de fonctionner à nouveau",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Veuillez demander à votre administrateur de mettre à jour PHP vers sa dernière version disponible. La vôtre n’est plus prise en charge par ownCloud ni par la communauté PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP est configuré pour remplir des données brutes POST. A partir de PHP 5.6, cela va générer des Notices pour du code parfaitement valide.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pour corriger ce problème, configurez <code>always_populate_raw_post_data</code> à <code>-1</code> dans votre php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload est mis à \"%s\" au lieu de la valeur \"0\" attendue",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pour corriger ce problème mettez <code>mbstring.func_overload</code> à <code>0</code> dans votre php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes du code. Cela rendra plusieurs applications de base inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 9dd5e6fc8df..6e706dae417 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -128,9 +128,8 @@
"PHP module %s not installed." : "Le module PHP %s n’est pas installé.",
"PHP setting \"%s\" is not set to \"%s\"." : "Le paramètre PHP \"%s\" n'est pas \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajuster ce paramètre dans php.ini permettra à ownCloud de fonctionner à nouveau",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Veuillez demander à votre administrateur de mettre à jour PHP vers sa dernière version disponible. La vôtre n’est plus prise en charge par ownCloud ni par la communauté PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP est configuré pour remplir des données brutes POST. A partir de PHP 5.6, cela va générer des Notices pour du code parfaitement valide.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Pour corriger ce problème, configurez <code>always_populate_raw_post_data</code> à <code>-1</code> dans votre php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload est mis à \"%s\" au lieu de la valeur \"0\" attendue",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Pour corriger ce problème mettez <code>mbstring.func_overload</code> à <code>0</code> dans votre php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP est apparemment configuré pour supprimer les blocs de documentation internes du code. Cela rendra plusieurs applications de base inaccessibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Les modules PHP ont été installés mais sont toujours indiqués comme manquants ?",
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
index 2142b296108..10f10ec123d 100644
--- a/lib/l10n/gl.js
+++ b/lib/l10n/gl.js
@@ -131,9 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "O módulo PHP %s non está instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "O axuste de PHP «%s» non está estabelecido a «%s».",
"Adjusting this setting in php.ini will make ownCloud run again" : "Facer este axuste en php.ini fará que ownCloud volva executarse",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pregúntelle ao administrador do servidor pola actualización de PHP á versión máis recente. A súa versión de PHP xa non é asistida polas comunidades de ownCloud e PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para encher datos de código en bruto. Desde PHP 5.6 isto levará a que PHP forneza avisos con código perfectamente correcto.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arranxar este incidencia estabeleza <code>always_populate_raw_post_data</code> a <code>-1</code> no seu php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está estabelecido a «%s» no canto do valor «0» agardado",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para arranxar este problema, estabeleza <code>mbstring.func_overload</code> a <code>0</code> no ficheiro php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Parece que PHP foi configuración para substituír bloques de documentos en liña. Isto fará que varias aplicacións sexan inaccesíbeis.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto probabelmente se debe unha caché/acelerador como Zend OPcache ou eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?",
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
index 5f32b2842dd..d31cf2c4284 100644
--- a/lib/l10n/gl.json
+++ b/lib/l10n/gl.json
@@ -129,9 +129,8 @@
"PHP module %s not installed." : "O módulo PHP %s non está instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "O axuste de PHP «%s» non está estabelecido a «%s».",
"Adjusting this setting in php.ini will make ownCloud run again" : "Facer este axuste en php.ini fará que ownCloud volva executarse",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Pregúntelle ao administrador do servidor pola actualización de PHP á versión máis recente. A súa versión de PHP xa non é asistida polas comunidades de ownCloud e PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para encher datos de código en bruto. Desde PHP 5.6 isto levará a que PHP forneza avisos con código perfectamente correcto.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para arranxar este incidencia estabeleza <code>always_populate_raw_post_data</code> a <code>-1</code> no seu php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está estabelecido a «%s» no canto do valor «0» agardado",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para arranxar este problema, estabeleza <code>mbstring.func_overload</code> a <code>0</code> no ficheiro php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Parece que PHP foi configuración para substituír bloques de documentos en liña. Isto fará que varias aplicacións sexan inaccesíbeis.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto probabelmente se debe unha caché/acelerador como Zend OPcache ou eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Instaláronse os módulos de PHP, mais aínda aparecen listados como perdidos?",
diff --git a/lib/l10n/hr.js b/lib/l10n/hr.js
index d4c5bd57da8..6d204ff6647 100644
--- a/lib/l10n/hr.js
+++ b/lib/l10n/hr.js
@@ -109,7 +109,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.",
"Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.",
"PHP module %s not installed." : "PHP modul %s nije instaliran.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen na strip inline doc blocks. To će nekoliko osnovnih aplikacija učiniti nedostupnima.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemoriranja kao što je Zend OPcache ilieAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?",
diff --git a/lib/l10n/hr.json b/lib/l10n/hr.json
index dfa7e6f2e98..3f42d0beb60 100644
--- a/lib/l10n/hr.json
+++ b/lib/l10n/hr.json
@@ -107,7 +107,6 @@
"Please install one of these locales on your system and restart your webserver." : "Molimo instalirajte jednu od ovih regionalnih shema u svoj sustav i ponovno pokrenite svoj web poslužitelj.",
"Please ask your server administrator to install the module." : "Molimo zamolite svog administratora poslužitelja da instalira modul.",
"PHP module %s not installed." : "PHP modul %s nije instaliran.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Molimo zamolite svog administratora poslužitelja da ažurira PHP na najnoviju verziju.Vašu PHP verziju ownCloud i PHP zajednica više ne podržavaju.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je očigledno postavljen na strip inline doc blocks. To će nekoliko osnovnih aplikacija učiniti nedostupnima.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Uzrok tome je vjerojatno neki ubrzivač predmemoriranja kao što je Zend OPcache ilieAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduli su instalirani, ali još uvijek su na popisu onih koji nedostaju?",
diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js
index f87cba46ce7..df10bbc59e2 100644
--- a/lib/l10n/hu_HU.js
+++ b/lib/l10n/hu_HU.js
@@ -102,7 +102,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!",
"Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!",
"PHP module %s not installed." : "A %s PHP modul nincs telepítve.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Kérje meg a rendszergazdát, hogy frissítse a PHP-t újabb változatra! Ezt a PHP változatot már nem támogatja az ownCloud és a PHP fejlesztői közösség.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.",
"PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?",
diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json
index eac444c1d39..d4da38b9269 100644
--- a/lib/l10n/hu_HU.json
+++ b/lib/l10n/hu_HU.json
@@ -100,7 +100,6 @@
"Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!",
"Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!",
"PHP module %s not installed." : "A %s PHP modul nincs telepítve.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Kérje meg a rendszergazdát, hogy frissítse a PHP-t újabb változatra! Ezt a PHP változatot már nem támogatja az ownCloud és a PHP fejlesztői közösség.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Úgy tűnik, hogy a PHP úgy van beállítva, hogy eltávolítja programok belsejében elhelyezett szövegblokkokat. Emiatt a rendszer több alapvető fontosságú eleme működésképtelen lesz.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ezt valószínűleg egy gyorsítótár ill. kódgyorsító, mint pl, a Zend, OPcache vagy eAccelererator okozza.",
"PHP modules have been installed, but they are still listed as missing?" : "A PHP modulok telepítve vannak, de a listában mégsincsenek felsorolva?",
diff --git a/lib/l10n/id.js b/lib/l10n/id.js
index ba7a78d61e3..e2bb862aefa 100644
--- a/lib/l10n/id.js
+++ b/lib/l10n/id.js
@@ -130,8 +130,6 @@ OC.L10N.register(
"PHP module %s not installed." : "Module PHP %s tidak terinstal.",
"PHP setting \"%s\" is not set to \"%s\"." : "Pengaturan PHP \"%s\" tidak diatur ke \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Menyesuaikan pengaturan ini dalam php.ini akan menyebabkan ownCloud berjalan kembali",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Silakan minta administrator Anda untuk memperbarui PHP ke versi terkini. Versi PHP Anda tidak lagi didukung oleh ownCloud dan komunitas PHP.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Untuk memperbaiki masalah ini, atur <code>always_populate_raw_post_data</code> menjadi <code>-1</code> pada berkas php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?",
diff --git a/lib/l10n/id.json b/lib/l10n/id.json
index 152948544ff..c74d5ab2121 100644
--- a/lib/l10n/id.json
+++ b/lib/l10n/id.json
@@ -128,8 +128,6 @@
"PHP module %s not installed." : "Module PHP %s tidak terinstal.",
"PHP setting \"%s\" is not set to \"%s\"." : "Pengaturan PHP \"%s\" tidak diatur ke \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Menyesuaikan pengaturan ini dalam php.ini akan menyebabkan ownCloud berjalan kembali",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Silakan minta administrator Anda untuk memperbarui PHP ke versi terkini. Versi PHP Anda tidak lagi didukung oleh ownCloud dan komunitas PHP.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Untuk memperbaiki masalah ini, atur <code>always_populate_raw_post_data</code> menjadi <code>-1</code> pada berkas php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Modul PHP telah terinstal, tetapi mereka terlihat tidak ada?",
diff --git a/lib/l10n/is.js b/lib/l10n/is.js
index 90fbcea1e59..c55116fde0d 100644
--- a/lib/l10n/is.js
+++ b/lib/l10n/is.js
@@ -16,4 +16,4 @@ OC.L10N.register(
"Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
"Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\""
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/lib/l10n/is.json b/lib/l10n/is.json
index 32668a3e271..a7ed67ae979 100644
--- a/lib/l10n/is.json
+++ b/lib/l10n/is.json
@@ -13,5 +13,5 @@
"Authentication error" : "Villa við auðkenningu",
"Token expired. Please reload page." : "Auðkenning útrunnin. Vinsamlegast skráðu þig aftur inn.",
"Could not find category \"%s\"" : "Fann ekki flokkinn \"%s\""
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/lib/l10n/it.js b/lib/l10n/it.js
index d60b0a4622c..b2ecb0c1b25 100644
--- a/lib/l10n/it.js
+++ b/lib/l10n/it.js
@@ -131,9 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "Il modulo PHP %s non è installato.",
"PHP setting \"%s\" is not set to \"%s\"." : "L'impostazione \"%s\" di PHP non è configurata a \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "La modifica di questa impostazione nel file php.ini permetterà nuovamente l'esecuzione di ownCloud",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Chiedi al tuo amministratore di aggiornare PHP all'ultima versione. La tua versione di PHP non è più supportata da ownCloud e dalla comunità di PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP è configurato per popolare dati grezzi di POST. A partire da PHP 5.6 saranno generati avvisi di PHP relativi a codice completamente valido.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Per correggere questo problema, imposta <code>always_populate_raw_post_data</code> a <code>-1</code> nel tuo php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload è impostata a \"%s\" invece del valore atteso \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Per correggere questo problema, imposta <code>mbstring.func_overload</code> a <code>0</code> nel tuo php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Sembra che PHP sia configurato per rimuovere i blocchi di documentazione in linea. Ciò renderà inaccessibili diverse applicazioni principali.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ciò è causato probabilmente da una cache/acceleratore come Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?",
diff --git a/lib/l10n/it.json b/lib/l10n/it.json
index 83065091c8b..bed8ecffbb9 100644
--- a/lib/l10n/it.json
+++ b/lib/l10n/it.json
@@ -129,9 +129,8 @@
"PHP module %s not installed." : "Il modulo PHP %s non è installato.",
"PHP setting \"%s\" is not set to \"%s\"." : "L'impostazione \"%s\" di PHP non è configurata a \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "La modifica di questa impostazione nel file php.ini permetterà nuovamente l'esecuzione di ownCloud",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Chiedi al tuo amministratore di aggiornare PHP all'ultima versione. La tua versione di PHP non è più supportata da ownCloud e dalla comunità di PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP è configurato per popolare dati grezzi di POST. A partire da PHP 5.6 saranno generati avvisi di PHP relativi a codice completamente valido.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Per correggere questo problema, imposta <code>always_populate_raw_post_data</code> a <code>-1</code> nel tuo php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload è impostata a \"%s\" invece del valore atteso \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Per correggere questo problema, imposta <code>mbstring.func_overload</code> a <code>0</code> nel tuo php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Sembra che PHP sia configurato per rimuovere i blocchi di documentazione in linea. Ciò renderà inaccessibili diverse applicazioni principali.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ciò è causato probabilmente da una cache/acceleratore come Zend OPcache o eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Sono stati installati moduli PHP, ma sono elencati ancora come mancanti?",
diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js
index f28db0d7204..096d23d8b23 100644
--- a/lib/l10n/ja.js
+++ b/lib/l10n/ja.js
@@ -37,7 +37,7 @@ OC.L10N.register(
"_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
"seconds ago" : "数秒前",
- "web services under your control" : "あなたの管理下のウェブサービス",
+ "web services under your control" : "あなたが管理するウェブサービス",
"Empty filename is not allowed" : "空のファイル名は許可されていません",
"Dot files are not allowed" : "ドットファイルは許可されていません",
"4-byte characters are not supported in file names" : "ファイル名に4バイト文字を使用するのはサポートされていません",
@@ -103,7 +103,7 @@ 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" : "有効期限を設定できません。有効期限が過去を示しています。",
"Cannot clear expiration date. Shares are required to have an expiration date." : "有効期限を解除できません。共有するには有効期限を設定する必要があります。",
- "Sharing backend %s must implement the interface OCP\\Share_Backend" : "%s のバックエンドの共有には、OCP\\Share_Backend インターフェースを実装しなければなりません。",
+ "Sharing backend %s 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 %s failed, because the user %s is the original sharer" : "%s の共有に失敗しました。ユーザー %s が元々の共有者であるからです。",
@@ -131,11 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP設定の\"%s\"は \"%s\"に設定されていません",
"Adjusting this setting in php.ini will make ownCloud run again" : "php.ini 中の設定を調整するとownCloudはもう一度動作するでしょう。 ",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "PHPを最新バージョンに更新するようサーバー管理者に依頼してください。現在のPHPのバージョンは、ownCloudおよびPHPコミュニティでサポートされていません。",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP で、populate raw post data が設定されています。この非推奨コードに対してPHP 5.6 から PHPの警告が表示されるようになりました。",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "この問題を修正するには、php.ini ファイルの<code>always_populate_raw_post_data</code> を <code>-1</code> に設定してください。",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。",
- "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?",
"Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json
index d096d48e3c2..239b1f88b8d 100644
--- a/lib/l10n/ja.json
+++ b/lib/l10n/ja.json
@@ -35,7 +35,7 @@
"_%n hour ago_::_%n hours ago_" : ["%n 時間前"],
"_%n minute ago_::_%n minutes ago_" : ["%n 分前"],
"seconds ago" : "数秒前",
- "web services under your control" : "あなたの管理下のウェブサービス",
+ "web services under your control" : "あなたが管理するウェブサービス",
"Empty filename is not allowed" : "空のファイル名は許可されていません",
"Dot files are not allowed" : "ドットファイルは許可されていません",
"4-byte characters are not supported in file names" : "ファイル名に4バイト文字を使用するのはサポートされていません",
@@ -101,7 +101,7 @@
"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "有効期限を設定できません。共有開始から %s 以降に有効期限を設定することはできません。",
"Cannot set expiration date. Expiration date is in the past" : "有効期限を設定できません。有効期限が過去を示しています。",
"Cannot clear expiration date. Shares are required to have an expiration date." : "有効期限を解除できません。共有するには有効期限を設定する必要があります。",
- "Sharing backend %s must implement the interface OCP\\Share_Backend" : "%s のバックエンドの共有には、OCP\\Share_Backend インターフェースを実装しなければなりません。",
+ "Sharing backend %s 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 %s failed, because the user %s is the original sharer" : "%s の共有に失敗しました。ユーザー %s が元々の共有者であるからです。",
@@ -129,11 +129,8 @@
"PHP module %s not installed." : "PHP のモジュール %s がインストールされていません。",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP設定の\"%s\"は \"%s\"に設定されていません",
"Adjusting this setting in php.ini will make ownCloud run again" : "php.ini 中の設定を調整するとownCloudはもう一度動作するでしょう。 ",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "PHPを最新バージョンに更新するようサーバー管理者に依頼してください。現在のPHPのバージョンは、ownCloudおよびPHPコミュニティでサポートされていません。",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP で、populate raw post data が設定されています。この非推奨コードに対してPHP 5.6 から PHPの警告が表示されるようになりました。",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "この問題を修正するには、php.ini ファイルの<code>always_populate_raw_post_data</code> を <code>-1</code> に設定してください。",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。",
- "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP モジュールはインストールされていますが、まだ一覧に表示されていますか?",
"Please ask your server administrator to restart the web server." : "サーバー管理者にWebサーバーを再起動するよう依頼してください。",
"PostgreSQL >= 9 required" : "PostgreSQL >= 9 が必要です",
diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js
index 0bea0a1c423..5773154ff70 100644
--- a/lib/l10n/ko.js
+++ b/lib/l10n/ko.js
@@ -22,6 +22,8 @@ OC.L10N.register(
"Users" : "사용자",
"Admin" : "관리자",
"Recommended" : "추천",
+ "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud." : "앱 \"%s\"이(가) 이 버전의 ownCloud와 호환되지 않으므로 설치할 수 없습니다.",
+ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "앱 \"%s\"의 다음 의존성을 만족하지 못하므로 설치할 수 없습니다: %s",
"No app name specified" : "앱 이름이 지정되지 않았습니다.",
"Unknown filetype" : "알 수 없는 파일 형식",
"Invalid image" : "잘못된 사진",
@@ -36,6 +38,12 @@ OC.L10N.register(
"_%n minute ago_::_%n minutes ago_" : ["%n분 전"],
"seconds ago" : "초 전",
"web services under your control" : "내가 관리하는 웹 서비스",
+ "Empty filename is not allowed" : "파일 이름을 비워 둘 수 없음",
+ "Dot files are not allowed" : "점으로 시작하는 파일은 허용되지 않음",
+ "4-byte characters are not supported in file names" : "파일 이름에 4바이트 글자를 사용할 수 없음",
+ "File name is a reserved word" : "파일 이름이 예약된 단어임",
+ "File name contains at least one invalid character" : "파일 이름에 잘못된 글자가 한 자 이상 있음",
+ "File name is too long" : "파일 이름이 너무 김",
"App directory already exists" : "앱 디렉터리가 이미 존재합니다.",
"Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s",
"No source specified when installing app" : "앱을 설치할 때 소스가 지정되지 않았습니다.",
@@ -70,11 +78,13 @@ OC.L10N.register(
"PostgreSQL username and/or password not valid" : "PostgreSQL 사용자 이름 또는 암호가 잘못되었습니다",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X은 지원하지 않으며 %s이(가) 이 플랫폼에서 올바르게 작동하지 않을 수도 있습니다. 본인 책임으로 사용하십시오! ",
"For the best results, please consider using a GNU/Linux server instead." : "더 좋은 결과를 얻으려면 GNU/Linux 서버를 사용하는 것을 권장합니다.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "%s 인스턴스가 32비트 PHP 환경에서 실행 중이고 php.ini에 open_basedir이 설정되어 있습니다. 4GB 이상의 파일 처리에 문제가 생길 수 있으므로 추천하지 않습니다.",
"Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "php.ini의 open_basedir 설정을 삭제하거나 64비트 PHP로 전환하십시오.",
"Set an admin username." : "관리자의 사용자 이름을 설정합니다.",
"Set an admin password." : "관리자의 암호를 설정합니다.",
"Can't create or write into the data directory %s" : "데이터 디렉터리 %s을(를) 만들거나 기록할 수 없음",
"%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다",
+ "%s via %s" : "%s(%s 경유)",
"Sharing %s failed, because the backend does not allow shares from type %i" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %i 형식의 공유를 허용하지 않습니다",
"Sharing %s failed, because the file does not exist" : "%s을(를) 공유할 수 없습니다. 파일이 존재하지 않습니다",
"You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다",
@@ -92,6 +102,7 @@ OC.L10N.register(
"Setting permissions for %s failed, because the item was not found" : "%s의 권한을 설정할 수 없습니다. 항목을 찾을 수 없습니다",
"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "만료 날짜를 설정할 수 없습니다. 최대 공유 허용 기한이 %s입니다.",
"Cannot set expiration date. Expiration date is in the past" : "만료 날짜를 설정할 수 없습니다. 만료 날짜가 과거입니다",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "만료 날짜를 비워 둘 수 없습니다. 공유되는 항목에는 만료 날짜가 필요합니다.",
"Sharing backend %s must implement the interface OCP\\Share_Backend" : "공유 백엔드 %s에서 OCP\\Share_Backend 인터페이스를 구현해야 함",
"Sharing backend %s not found" : "공유 백엔드 %s을(를) 찾을 수 없음",
"Sharing backend for %s not found" : "%s의 공유 백엔드를 찾을 수 없음",
@@ -106,6 +117,8 @@ OC.L10N.register(
"A valid password must be provided" : "올바른 암호를 입력해야 합니다",
"The username is already being used" : "사용자 이름이 이미 존재합니다",
"No database drivers (sqlite, mysql, or postgresql) installed." : "데이터베이스 드라이버(sqlite, mysql, postgresql)가 설치되지 않았습니다.",
+ "Microsoft Windows Platform is not supported" : "Microsoft Windows 플랫폼은 지원하지 않음",
+ "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "ownCloud 서버를 Microsoft Windows 환경에서 실행하는 것은 지원되지 않습니다. 서버를 이전할 수 없다면 가상 Linux 서버를 사용하는 것을 추천합니다. Linux 패키지 및 쉽게 배포 가능한 가상 머신 이미지는 <a href=\"%s\">%s</a>에서 찾을 수 있습니다. 기존 설치본을 Linux로 이전할 때 참고할 팁과 이전 스크립트는 <a href=\"%s\">문서</a>에서 찾을 수 있습니다.",
"Cannot write into \"config\" directory" : "\"config\" 디렉터리에 기록할 수 없습니다",
"Cannot write into \"apps\" directory" : "\"apps\" 디렉터리에 기록할 수 없습니다",
"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "%sapps 디렉터리에 웹 서버 쓰기 권한%s을 주거나 설정 파일에서 앱 스토어를 비활성화하면 해결됩니다.",
@@ -116,9 +129,10 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "다음 중 하나 이상의 로캘을 시스템에 설치하고 웹 서버를 다시 시작하십시오.",
"Please ask your server administrator to install the module." : "서버 관리자에게 모듈 설치를 요청하십시오.",
"PHP module %s not installed." : "PHP 모듈 %s이(가) 설치되지 않았습니다.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "서버 관리자에게 PHP 버전을 최신으로 업그레이드해 달라고 요청하십시오. 현재 사용 중인 PHP 버전은 ownCloud 및 PHP 커뮤니티에서 지원되지 않습니다.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP에서 원시 POST 데이터 값을 채워 넣도록 구성되어 있지 않습니다. 이 경우 PHP 5.6 버전부터는 완전히 유효한 코드에서도 알림 메시지를 발생시킵니다.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "이 문제를 해결하러면 php.ini 설정 파일에서 <code>always_populate_raw_post_data</code>의 값을 <code>-1</code>로 설정하십시오.",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP 설정 \"%s\"이(가) \"%s\"(으)로 설정되어 있지 않습니다.",
+ "Adjusting this setting in php.ini will make ownCloud run again" : "php.ini에서 이 설정을 변경하면 ownCloud가 다시 실행됩니다",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload 값이 \"%s\"(으)로 설정되어 있으나 필요한 값은 \"0\"입니다",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "이 문제를 해결하려면 php.ini에서 <code>mbstring.func_overload</code> 값을 <code>0</code>으로 설정하십시오",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?",
@@ -129,6 +143,8 @@ OC.L10N.register(
"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL 버전 9 이상이 있는지 확인하시고, 자세한 정보는 로그를 확인하십시오",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.",
"Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음",
+ "Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함",
+ "Check the value of \"datadirectory\" in your configuration" : "설정 중 \"datadirectory\" 값을 확인하십시오",
"Data directory (%s) is invalid" : "데이터 디렉터리(%s)가 잘못됨",
"Please check that the data directory contains a file \".ocdata\" in its root." : "데이터 디렉터리의 최상위 경로에 \".ocdata\" 파일이 있는지 확인하십시오.",
"Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다."
diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json
index 3df278e8073..1e7f247ca76 100644
--- a/lib/l10n/ko.json
+++ b/lib/l10n/ko.json
@@ -20,6 +20,8 @@
"Users" : "사용자",
"Admin" : "관리자",
"Recommended" : "추천",
+ "App \"%s\" cannot be installed because it is not compatible with this version of ownCloud." : "앱 \"%s\"이(가) 이 버전의 ownCloud와 호환되지 않으므로 설치할 수 없습니다.",
+ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "앱 \"%s\"의 다음 의존성을 만족하지 못하므로 설치할 수 없습니다: %s",
"No app name specified" : "앱 이름이 지정되지 않았습니다.",
"Unknown filetype" : "알 수 없는 파일 형식",
"Invalid image" : "잘못된 사진",
@@ -34,6 +36,12 @@
"_%n minute ago_::_%n minutes ago_" : ["%n분 전"],
"seconds ago" : "초 전",
"web services under your control" : "내가 관리하는 웹 서비스",
+ "Empty filename is not allowed" : "파일 이름을 비워 둘 수 없음",
+ "Dot files are not allowed" : "점으로 시작하는 파일은 허용되지 않음",
+ "4-byte characters are not supported in file names" : "파일 이름에 4바이트 글자를 사용할 수 없음",
+ "File name is a reserved word" : "파일 이름이 예약된 단어임",
+ "File name contains at least one invalid character" : "파일 이름에 잘못된 글자가 한 자 이상 있음",
+ "File name is too long" : "파일 이름이 너무 김",
"App directory already exists" : "앱 디렉터리가 이미 존재합니다.",
"Can't create app folder. Please fix permissions. %s" : "앱 폴더를 만들 수 없습니다. 권한을 수정하십시오. %s",
"No source specified when installing app" : "앱을 설치할 때 소스가 지정되지 않았습니다.",
@@ -68,11 +76,13 @@
"PostgreSQL username and/or password not valid" : "PostgreSQL 사용자 이름 또는 암호가 잘못되었습니다",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X은 지원하지 않으며 %s이(가) 이 플랫폼에서 올바르게 작동하지 않을 수도 있습니다. 본인 책임으로 사용하십시오! ",
"For the best results, please consider using a GNU/Linux server instead." : "더 좋은 결과를 얻으려면 GNU/Linux 서버를 사용하는 것을 권장합니다.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "%s 인스턴스가 32비트 PHP 환경에서 실행 중이고 php.ini에 open_basedir이 설정되어 있습니다. 4GB 이상의 파일 처리에 문제가 생길 수 있으므로 추천하지 않습니다.",
"Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "php.ini의 open_basedir 설정을 삭제하거나 64비트 PHP로 전환하십시오.",
"Set an admin username." : "관리자의 사용자 이름을 설정합니다.",
"Set an admin password." : "관리자의 암호를 설정합니다.",
"Can't create or write into the data directory %s" : "데이터 디렉터리 %s을(를) 만들거나 기록할 수 없음",
"%s shared »%s« with you" : "%s 님이 %s을(를) 공유하였습니다",
+ "%s via %s" : "%s(%s 경유)",
"Sharing %s failed, because the backend does not allow shares from type %i" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %i 형식의 공유를 허용하지 않습니다",
"Sharing %s failed, because the file does not exist" : "%s을(를) 공유할 수 없습니다. 파일이 존재하지 않습니다",
"You are not allowed to share %s" : "%s을(를) 공유할 수 있는 권한이 없습니다",
@@ -90,6 +100,7 @@
"Setting permissions for %s failed, because the item was not found" : "%s의 권한을 설정할 수 없습니다. 항목을 찾을 수 없습니다",
"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "만료 날짜를 설정할 수 없습니다. 최대 공유 허용 기한이 %s입니다.",
"Cannot set expiration date. Expiration date is in the past" : "만료 날짜를 설정할 수 없습니다. 만료 날짜가 과거입니다",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "만료 날짜를 비워 둘 수 없습니다. 공유되는 항목에는 만료 날짜가 필요합니다.",
"Sharing backend %s must implement the interface OCP\\Share_Backend" : "공유 백엔드 %s에서 OCP\\Share_Backend 인터페이스를 구현해야 함",
"Sharing backend %s not found" : "공유 백엔드 %s을(를) 찾을 수 없음",
"Sharing backend for %s not found" : "%s의 공유 백엔드를 찾을 수 없음",
@@ -104,6 +115,8 @@
"A valid password must be provided" : "올바른 암호를 입력해야 합니다",
"The username is already being used" : "사용자 이름이 이미 존재합니다",
"No database drivers (sqlite, mysql, or postgresql) installed." : "데이터베이스 드라이버(sqlite, mysql, postgresql)가 설치되지 않았습니다.",
+ "Microsoft Windows Platform is not supported" : "Microsoft Windows 플랫폼은 지원하지 않음",
+ "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "ownCloud 서버를 Microsoft Windows 환경에서 실행하는 것은 지원되지 않습니다. 서버를 이전할 수 없다면 가상 Linux 서버를 사용하는 것을 추천합니다. Linux 패키지 및 쉽게 배포 가능한 가상 머신 이미지는 <a href=\"%s\">%s</a>에서 찾을 수 있습니다. 기존 설치본을 Linux로 이전할 때 참고할 팁과 이전 스크립트는 <a href=\"%s\">문서</a>에서 찾을 수 있습니다.",
"Cannot write into \"config\" directory" : "\"config\" 디렉터리에 기록할 수 없습니다",
"Cannot write into \"apps\" directory" : "\"apps\" 디렉터리에 기록할 수 없습니다",
"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "%sapps 디렉터리에 웹 서버 쓰기 권한%s을 주거나 설정 파일에서 앱 스토어를 비활성화하면 해결됩니다.",
@@ -114,9 +127,10 @@
"Please install one of these locales on your system and restart your webserver." : "다음 중 하나 이상의 로캘을 시스템에 설치하고 웹 서버를 다시 시작하십시오.",
"Please ask your server administrator to install the module." : "서버 관리자에게 모듈 설치를 요청하십시오.",
"PHP module %s not installed." : "PHP 모듈 %s이(가) 설치되지 않았습니다.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "서버 관리자에게 PHP 버전을 최신으로 업그레이드해 달라고 요청하십시오. 현재 사용 중인 PHP 버전은 ownCloud 및 PHP 커뮤니티에서 지원되지 않습니다.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP에서 원시 POST 데이터 값을 채워 넣도록 구성되어 있지 않습니다. 이 경우 PHP 5.6 버전부터는 완전히 유효한 코드에서도 알림 메시지를 발생시킵니다.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "이 문제를 해결하러면 php.ini 설정 파일에서 <code>always_populate_raw_post_data</code>의 값을 <code>-1</code>로 설정하십시오.",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP 설정 \"%s\"이(가) \"%s\"(으)로 설정되어 있지 않습니다.",
+ "Adjusting this setting in php.ini will make ownCloud run again" : "php.ini에서 이 설정을 변경하면 ownCloud가 다시 실행됩니다",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload 값이 \"%s\"(으)로 설정되어 있으나 필요한 값은 \"0\"입니다",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "이 문제를 해결하려면 php.ini에서 <code>mbstring.func_overload</code> 값을 <code>0</code>으로 설정하십시오",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?",
@@ -127,6 +141,8 @@
"Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL 버전 9 이상이 있는지 확인하시고, 자세한 정보는 로그를 확인하십시오",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.",
"Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음",
+ "Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함",
+ "Check the value of \"datadirectory\" in your configuration" : "설정 중 \"datadirectory\" 값을 확인하십시오",
"Data directory (%s) is invalid" : "데이터 디렉터리(%s)가 잘못됨",
"Please check that the data directory contains a file \".ocdata\" in its root." : "데이터 디렉터리의 최상위 경로에 \".ocdata\" 파일이 있는지 확인하십시오.",
"Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다."
diff --git a/lib/l10n/nb_NO.js b/lib/l10n/nb_NO.js
index 6195837fa55..67e073cf45e 100644
--- a/lib/l10n/nb_NO.js
+++ b/lib/l10n/nb_NO.js
@@ -128,9 +128,6 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP-modul %s er ikke installert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-innstilling \"%s\" er ikke satt til \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Endring av denne innstillingen i php.ini vil få ownCloud til å kjøre igjen.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Be server-administratoren om å oppdatere PHP til nyeste versjon. PHP-versjonen du bruker støttes ikke lenger av ownCloud og PHP-fellesskapet.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigurert til å fylle \"raw post data\". Fra og med PHP 5.6 vil dette føre til at PHP utsteder notiser for fullstendig gyldig kode.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For å fikse dette problemet, sett <code>always_populate_raw_post_data</code> til <code>-1</code> i php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut for at PHP er satt opp til å fjerne innebygde doc blocks. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?",
diff --git a/lib/l10n/nb_NO.json b/lib/l10n/nb_NO.json
index fe189ee5903..63f6d2c6699 100644
--- a/lib/l10n/nb_NO.json
+++ b/lib/l10n/nb_NO.json
@@ -126,9 +126,6 @@
"PHP module %s not installed." : "PHP-modul %s er ikke installert.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP-innstilling \"%s\" er ikke satt til \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Endring av denne innstillingen i php.ini vil få ownCloud til å kjøre igjen.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Be server-administratoren om å oppdatere PHP til nyeste versjon. PHP-versjonen du bruker støttes ikke lenger av ownCloud og PHP-fellesskapet.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP er konfigurert til å fylle \"raw post data\". Fra og med PHP 5.6 vil dette føre til at PHP utsteder notiser for fullstendig gyldig kode.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "For å fikse dette problemet, sett <code>always_populate_raw_post_data</code> til <code>-1</code> i php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Det ser ut for at PHP er satt opp til å fjerne innebygde doc blocks. Dette gjør at flere av kjerneapplikasjonene blir utilgjengelige.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dette forårsakes sannsynligvis av en bufrer/akselerator, som f.eks. Zend OPcache eller eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har blitt installert, men de listes fortsatt som fraværende?",
diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js
index 7955faa01a6..79dbfe309e0 100644
--- a/lib/l10n/nl.js
+++ b/lib/l10n/nl.js
@@ -131,9 +131,8 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP module %s niet geïnstalleerd.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP instelling \"%s\" staat niet op \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Het in php.ini bijstellen hiervan laat ownCloud weer werken",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vraag uw beheerder om PHP bij te werken tot de laatste versie. Uw PHP versie wordt niet langer ondersteund door ownCloud en de PHP community.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is geconfigureerd om ruwe data van berichten te vullen. Vanaf PHP 5.6 leidt dit tot PHP meldingen voor echt wel geldige code.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Om dit op te lossen stel de waarde <code>always_populate_raw_post_data</code> in op <code>-1</code> in php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload is ingesteld op \"%s\" in plaats van op de verwachte waarde \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Om dit op te lossen stel <code>mbstring.func_overload</code> in op <code>0</code> in uw php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is blijkbaar zo ingesteld dat inline doc blokken worden gestript. Hierdoor worden verschillende kernmodules onbruikbaar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dit wordt vermoedelijk veroorzaakt door een cache/accelerator, zoals Zend OPcache of eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?",
diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json
index 3a67fc3ad57..723bf8adce0 100644
--- a/lib/l10n/nl.json
+++ b/lib/l10n/nl.json
@@ -129,9 +129,8 @@
"PHP module %s not installed." : "PHP module %s niet geïnstalleerd.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP instelling \"%s\" staat niet op \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Het in php.ini bijstellen hiervan laat ownCloud weer werken",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vraag uw beheerder om PHP bij te werken tot de laatste versie. Uw PHP versie wordt niet langer ondersteund door ownCloud en de PHP community.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP is geconfigureerd om ruwe data van berichten te vullen. Vanaf PHP 5.6 leidt dit tot PHP meldingen voor echt wel geldige code.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Om dit op te lossen stel de waarde <code>always_populate_raw_post_data</code> in op <code>-1</code> in php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload is ingesteld op \"%s\" in plaats van op de verwachte waarde \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Om dit op te lossen stel <code>mbstring.func_overload</code> in op <code>0</code> in uw php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP is blijkbaar zo ingesteld dat inline doc blokken worden gestript. Hierdoor worden verschillende kernmodules onbruikbaar.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dit wordt vermoedelijk veroorzaakt door een cache/accelerator, zoals Zend OPcache of eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modules zijn geïnstalleerd, maar worden ze nog steeds als ontbrekend aangegeven?",
diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js
index 0be4d823a0d..3061b182bf8 100644
--- a/lib/l10n/pl.js
+++ b/lib/l10n/pl.js
@@ -113,7 +113,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Proszę zainstalować jedno z poniższych locale w Twoim systemie i uruchomić ponownie serwer www.",
"Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.",
"PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Proszę poproś administratora serwera aby zaktualizował PHP do najnowszej wersji. Twoja wersja PHP nie jest już dłużej wspierana przez ownCloud i społeczność PHP.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?",
diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json
index 12de24755d6..3d0d2bff116 100644
--- a/lib/l10n/pl.json
+++ b/lib/l10n/pl.json
@@ -111,7 +111,6 @@
"Please install one of these locales on your system and restart your webserver." : "Proszę zainstalować jedno z poniższych locale w Twoim systemie i uruchomić ponownie serwer www.",
"Please ask your server administrator to install the module." : "Proszę poproś administratora serwera aby zainstalował ten moduł.",
"PHP module %s not installed." : "Moduł PHP %s nie jest zainstalowany.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Proszę poproś administratora serwera aby zaktualizował PHP do najnowszej wersji. Twoja wersja PHP nie jest już dłużej wspierana przez ownCloud i społeczność PHP.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Moduły PHP zostały zainstalowane, ale nadal brakuje ich na liście?",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index 43b1008ece8..49c21be6f42 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -128,9 +128,8 @@ OC.L10N.register(
"PHP module %s not installed." : "Módulo PHP %s não instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "Configurações \"%s\" PHP não está configurado para \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta configuração no php.ini irá fazer o ownCloud rodar novamente",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, peça ao seu administrador do servidor para atualizar o PHP para a versão mais recente. A sua versão do PHP não é mais suportado pelo ownCloud e a comunidade PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para preencher os dados pós-dados. Desde o PHP 5.6 isto levará o PHP a enviar avisos para códigos perfeitamente válidos.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir esse problema configure <code> always_populate_raw_post_data </code> para <code> -1 </code> em seu arquivo de configuração php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definido para \"%s\" em vez do valor esperado \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corrigir esse problema defina <code>mbstring.func_overload</code> para <code>0</code> em seu php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP é, aparentemente, a configuração para retirar blocos doc inline. Isso fará com que vários aplicativos do núcleo fiquem inacessíveis.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isso provavelmente é causado por uma cache/acelerador, como Zend OPcache ou eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index 186c757d096..7227378b0cf 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -126,9 +126,8 @@
"PHP module %s not installed." : "Módulo PHP %s não instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "Configurações \"%s\" PHP não está configurado para \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajustando esta configuração no php.ini irá fazer o ownCloud rodar novamente",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor, peça ao seu administrador do servidor para atualizar o PHP para a versão mais recente. A sua versão do PHP não é mais suportado pelo ownCloud e a comunidade PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP está configurado para preencher os dados pós-dados. Desde o PHP 5.6 isto levará o PHP a enviar avisos para códigos perfeitamente válidos.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir esse problema configure <code> always_populate_raw_post_data </code> para <code> -1 </code> em seu arquivo de configuração php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "mbstring.func_overload está definido para \"%s\" em vez do valor esperado \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corrigir esse problema defina <code>mbstring.func_overload</code> para <code>0</code> em seu php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP é, aparentemente, a configuração para retirar blocos doc inline. Isso fará com que vários aplicativos do núcleo fiquem inacessíveis.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isso provavelmente é causado por uma cache/acelerador, como Zend OPcache ou eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Módulos do PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
diff --git a/lib/l10n/pt_PT.js b/lib/l10n/pt_PT.js
index c003e47756f..86b4a776a6f 100644
--- a/lib/l10n/pt_PT.js
+++ b/lib/l10n/pt_PT.js
@@ -127,9 +127,6 @@ OC.L10N.register(
"PHP module %s not installed." : "O modulo %s PHP não está instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "Configuração PHP \"%s\" não está definida para \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajustar esta configuração no php.ini fará com que o ownCloud funcione de novo",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor pessa ao seu administrador de servidor para actualizar o PHP para a ultima versão. A sua versão de PHP não é mais suportada pelo owncloud e a comunidade PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "O PHP está configurado para popular dados raw post. Desde o PHP 5.6 isto levará a que o PHP mostre avisos sobre código perfeitamente válido.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir este problema altere <code>always_populate_raw_post_data</code> para <code>-1</code> no seu php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado a remover blocos doc em linha. Isto vai fazer algumas aplicações basicas inacessíveis.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto é provavelmente causado por uma cache/acelerador como o Zend OPcache or eAcelerador.",
"PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
diff --git a/lib/l10n/pt_PT.json b/lib/l10n/pt_PT.json
index e05d2705eae..9737e2b3964 100644
--- a/lib/l10n/pt_PT.json
+++ b/lib/l10n/pt_PT.json
@@ -125,9 +125,6 @@
"PHP module %s not installed." : "O modulo %s PHP não está instalado.",
"PHP setting \"%s\" is not set to \"%s\"." : "Configuração PHP \"%s\" não está definida para \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Ajustar esta configuração no php.ini fará com que o ownCloud funcione de novo",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Por favor pessa ao seu administrador de servidor para actualizar o PHP para a ultima versão. A sua versão de PHP não é mais suportada pelo owncloud e a comunidade PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "O PHP está configurado para popular dados raw post. Desde o PHP 5.6 isto levará a que o PHP mostre avisos sobre código perfeitamente válido.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Para corrigir este problema altere <code>always_populate_raw_post_data</code> para <code>-1</code> no seu php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado a remover blocos doc em linha. Isto vai fazer algumas aplicações basicas inacessíveis.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Isto é provavelmente causado por uma cache/acelerador como o Zend OPcache or eAcelerador.",
"PHP modules have been installed, but they are still listed as missing?" : "Os módulos PHP foram instalados, mas eles ainda estão listados como desaparecidos?",
diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js
index 9d6ed3b301c..01ca1d60034 100644
--- a/lib/l10n/ru.js
+++ b/lib/l10n/ru.js
@@ -29,13 +29,13 @@ 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" : "в прошлом месяце",
- "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
+ "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад","%n месяцев назад"],
"last year" : "в прошлом году",
- "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад"],
- "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
- "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
+ "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад","%n лет назад"],
+ "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад","%n часов назад"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад","%n минут назад"],
"seconds ago" : "менее минуты",
"web services under your control" : "веб-сервисы под вашим управлением",
"Empty filename is not allowed" : "Пустые имена файлов не допускаются",
@@ -131,9 +131,6 @@ OC.L10N.register(
"PHP module %s not installed." : "Не установлен PHP-модуль %s.",
"PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не установлен в \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Установка этого параметра в php.ini позволит запуститься ownCloud снова.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Пожалуйста, обратитесь к администратору сервера, чтобы обновить PHP до последней версии. Установленная версия PHP больше не поддерживается ownCloud и сообществом PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "В PHP включена директива \"always_populate_raw_post_data\". PHP версии 5.6 и выше, при включенной директиве, добавляет уведомления в журнал даже для абсолютно рабочего кода.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Что-бы исправить эту ошибку, укажите значение <code>-1</code> в качестве значения параметра <code>always_populate_raw_post_data</code> в вашем php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Модули PHP были установлены, но они все еще перечислены как недостающие?",
@@ -150,4 +147,4 @@ OC.L10N.register(
"Please check that the data directory contains a file \".ocdata\" in its root." : "Убедитесь, что файл \".ocdata\" присутствует в корне каталога данных.",
"Could not obtain lock type %d on \"%s\"." : "Не удалось получить блокировку типа %d для \"%s\""
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
index c3e1dbae4de..908970ec603 100644
--- a/lib/l10n/ru.json
+++ b/lib/l10n/ru.json
@@ -27,13 +27,13 @@
"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" : "в прошлом месяце",
- "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад"],
+ "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад","%n месяцев назад"],
"last year" : "в прошлом году",
- "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад"],
- "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад"],
- "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад"],
+ "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад","%n лет назад"],
+ "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад","%n часов назад"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад","%n минут назад"],
"seconds ago" : "менее минуты",
"web services under your control" : "веб-сервисы под вашим управлением",
"Empty filename is not allowed" : "Пустые имена файлов не допускаются",
@@ -129,9 +129,6 @@
"PHP module %s not installed." : "Не установлен PHP-модуль %s.",
"PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не установлен в \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Установка этого параметра в php.ini позволит запуститься ownCloud снова.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Пожалуйста, обратитесь к администратору сервера, чтобы обновить PHP до последней версии. Установленная версия PHP больше не поддерживается ownCloud и сообществом PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "В PHP включена директива \"always_populate_raw_post_data\". PHP версии 5.6 и выше, при включенной директиве, добавляет уведомления в журнал даже для абсолютно рабочего кода.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Что-бы исправить эту ошибку, укажите значение <code>-1</code> в качестве значения параметра <code>always_populate_raw_post_data</code> в вашем php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Очевидно, PHP настроен на вычищение блоков встроенной документации. Это сделает несколько центральных приложений недоступными.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Возможно это вызвано кешем/ускорителем вроде Zend OPcache или eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Модули PHP были установлены, но они все еще перечислены как недостающие?",
@@ -147,5 +144,5 @@
"Data directory (%s) is invalid" : "Каталог данных (%s) не верен",
"Please check that the data directory contains a file \".ocdata\" in its root." : "Убедитесь, что файл \".ocdata\" присутствует в корне каталога данных.",
"Could not obtain lock type %d on \"%s\"." : "Не удалось получить блокировку типа %d для \"%s\""
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/lib/l10n/sk_SK.js b/lib/l10n/sk_SK.js
index 459165e218e..38c18b431ef 100644
--- a/lib/l10n/sk_SK.js
+++ b/lib/l10n/sk_SK.js
@@ -119,9 +119,6 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.",
"PHP setting \"%s\" is not set to \"%s\"." : "Voľba PHP „%s“ nie je nastavená na „%s“.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Zmenou tejto voľby v php.ini znovu uvediete váš ownCloud do prevádzky",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Prosím, požiadajte administrátora vášho servera o aktualizáciu PHP na najnovšiu verziu. Vaša verzia PHP už nie je podporovaná ownCloud-om a PHP komunitou.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurovaný tak, aby vytváralo raw post dáta. Od verzie 5.6 to nastavenie bude PHP vypisovať oznámenia aj pre dokonale platný kód.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Ak chcete tento problém vyriešiť, nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> vo vašom php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky komentárov. To zneprístupní niekoľko základných aplikácií.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sa tvária, že chýbajú?",
diff --git a/lib/l10n/sk_SK.json b/lib/l10n/sk_SK.json
index fd0d3d13892..031270747b7 100644
--- a/lib/l10n/sk_SK.json
+++ b/lib/l10n/sk_SK.json
@@ -117,9 +117,6 @@
"PHP module %s not installed." : "PHP modul %s nie je nainštalovaný.",
"PHP setting \"%s\" is not set to \"%s\"." : "Voľba PHP „%s“ nie je nastavená na „%s“.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Zmenou tejto voľby v php.ini znovu uvediete váš ownCloud do prevádzky",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Prosím, požiadajte administrátora vášho servera o aktualizáciu PHP na najnovšiu verziu. Vaša verzia PHP už nie je podporovaná ownCloud-om a PHP komunitou.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP je nakonfigurovaný tak, aby vytváralo raw post dáta. Od verzie 5.6 to nastavenie bude PHP vypisovať oznámenia aj pre dokonale platný kód.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Ak chcete tento problém vyriešiť, nastavte <code>always_populate_raw_post_data</code> na <code>-1</code> vo vašom php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky komentárov. To zneprístupní niekoľko základných aplikácií.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sa tvária, že chýbajú?",
diff --git a/lib/l10n/sl.js b/lib/l10n/sl.js
index cfa725d5666..958e38ee374 100644
--- a/lib/l10n/sl.js
+++ b/lib/l10n/sl.js
@@ -121,7 +121,6 @@ OC.L10N.register(
"Please ask your server administrator to install the module." : "Obvestite skrbnika strežnika, da je treba namestiti manjkajoč modul.",
"PHP module %s not installed." : "Modul PHP %s ni nameščen.",
"PHP setting \"%s\" is not set to \"%s\"." : "Nastavitev PHP \"%s\" ni nastavljena na \"%s\".",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Obvestite skrbnika strežnika, da je treba posodobiti okolje PHP na najnovejšo različico. Trenutno nameščene različice skupnost PHP in ownCloud ne podpira več.",
"PHP modules have been installed, but they are still listed as missing?" : "Ali so bili moduli PHP nameščeni, pa so še vedno označeni kot manjkajoči?",
"Please ask your server administrator to restart the web server." : "Obvestite skrbnika strežnika, da je treba ponovno zagnati spletni strežnik.",
"PostgreSQL >= 9 required" : "Zahtevana je različica PostgreSQL >= 9.",
diff --git a/lib/l10n/sl.json b/lib/l10n/sl.json
index 959d7c4915b..3e9711d98bc 100644
--- a/lib/l10n/sl.json
+++ b/lib/l10n/sl.json
@@ -119,7 +119,6 @@
"Please ask your server administrator to install the module." : "Obvestite skrbnika strežnika, da je treba namestiti manjkajoč modul.",
"PHP module %s not installed." : "Modul PHP %s ni nameščen.",
"PHP setting \"%s\" is not set to \"%s\"." : "Nastavitev PHP \"%s\" ni nastavljena na \"%s\".",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Obvestite skrbnika strežnika, da je treba posodobiti okolje PHP na najnovejšo različico. Trenutno nameščene različice skupnost PHP in ownCloud ne podpira več.",
"PHP modules have been installed, but they are still listed as missing?" : "Ali so bili moduli PHP nameščeni, pa so še vedno označeni kot manjkajoči?",
"Please ask your server administrator to restart the web server." : "Obvestite skrbnika strežnika, da je treba ponovno zagnati spletni strežnik.",
"PostgreSQL >= 9 required" : "Zahtevana je različica PostgreSQL >= 9.",
diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js
index a8dbf4f02a6..2f84515b1e5 100644
--- a/lib/l10n/sr.js
+++ b/lib/l10n/sr.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"lib",
{
- "Cannot write into \"config\" directory!" : "Не могу да уписујем у \"config\" директоријум!",
+ "Cannot write into \"config\" directory!" : "Не могу да уписујем у „config“ директоријум!",
"This can usually be fixed by giving the webserver write access to the config directory" : "Ово се обично може средити давањем права веб серверу да пише у директоријум са подешавањима",
"See %s" : "Погледајте %s",
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ово се обично може средити %sдавањем права веб серверу да пише у директоријум са подешавањима%s.",
@@ -54,8 +54,8 @@ OC.L10N.register(
"App does not provide an info.xml file" : "Апликација не поседује info.xml датотеку",
"App can't be installed because of not allowed code in the App" : "Апликације не може бити инсталирана због недозвољеног кода у апликацији",
"App can't be installed because it is not compatible with this version of ownCloud" : "Апликације не може бити инсталирана јер није компатибилна са овом верзијом оунКлауда",
- "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Апликације не може бити инсталирана зато што садржи ознаку <shipped>тачно</shipped> која није дозвољена за неиспоручене апликације",
- "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Апликације не може бити инсталирана зато што издање у info.xml/version није исто као издање које је пријављено у продавници апликација",
+ "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Апликација се не може инсталирати јер садржи ознаку <shipped>тачно</shipped> која није дозвољена за неиспоручене апликације",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Апликација се не може инсталирати јер верзија у info.xml/version није иста као верзија коју пријављује продавница апликација",
"Application is not enabled" : "Апликација није укључена",
"Authentication error" : "Грешка аутентификације",
"Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
@@ -119,8 +119,8 @@ OC.L10N.register(
"No database drivers (sqlite, mysql, or postgresql) installed." : "Нема драјвера базе података (скулајт, мајскул или постгрескул).",
"Microsoft Windows Platform is not supported" : "Мајкрософт Виндоуз платформа није подржана",
"Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Покретање оунКлауд сервера на Мајкрософт Виндоуз платформи није подржано. Препоручујемо да користите Линукс сервер у виртуалној машини ако немате могућност пресељења самог сервера. Налажење Линукс пакета је лако, само распакујте пакете са <a href=\"%s\">%s</a>. За пресељење постојеће инсталације на Линукс, савете и скрипте можете наћи у <a href=\"%s\">нашој документацији</a>.",
- "Cannot write into \"config\" directory" : "Не могу уписивати у директоријуму \"config\"",
- "Cannot write into \"apps\" directory" : "Не могу уписивати у директоријуму \"apps\"",
+ "Cannot write into \"config\" directory" : "Не могу уписивати у директоријуму „config“",
+ "Cannot write into \"apps\" directory" : "Не могу уписивати у директоријуму „apps“",
"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ово се обично може поправити %sgдавањем права уписа веб серверу директоријум%s апликација или искуључивањем продавнице апликација у датотеци config file.",
"Cannot create \"data\" directory (%s)" : "Не могу формирати \"data\" директоријуме (%s)",
"This can usually be fixed by <a href=\"%s\" target=\"_blank\">giving the webserver write access to the root directory</a>." : "Ово се обично може поправити <a href=\"%s\" target=\"_blank\">давањем права уписивања веб серверу у основни директоријум</a>.",
@@ -131,23 +131,22 @@ OC.L10N.register(
"PHP module %s not installed." : "ПХП модул %s није инсталиран.",
"PHP setting \"%s\" is not set to \"%s\"." : "ПХП поставка „%s“ није постављена на „%s“.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Подешавање ове поставке у php.ini фајлу ће омогућити да оунКлауд поново ради",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Замолите вашег администратора сервера да ажурира ПХП на најновију верзију. ПХП верзија вашег система више није подржана од стране оунКлауда и ПХП заједнице.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "ПХП је подешен да попуњава сирове податке. Од верзије 5.6 то може довести да ПХП шаље упозорења и за потпуно исправан код.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Да би решили овај проблем подесите <code>always_populate_raw_post_data</code> на <code>-1</code> у датотеци php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Вредност mbstring.func_overload је постављена на „%s“ уместо на очекивану вредност „0“",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Да би решили овај проблем поставите <code>mbstring.func_overload</code> на <code>0</code> у фајлу php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "ПХП је очигледно подешен да се скида уметнуте док блокова. То ће учинити неколико кључних апликација недоступним.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ово је вероватно изазвано кешом или акцелератором као што су ЗендОПкеш или еАкцелератор.",
- "PHP modules have been installed, but they are still listed as missing?" : "PHP модули су инсталирани али се и даље воде као недостајући?",
+ "PHP modules have been installed, but they are still listed as missing?" : "ПХП модули су инсталирани али се и даље воде као недостајући?",
"Please ask your server administrator to restart the web server." : "Замолите вашег администратора сервера да поново покрене веб сервер.",
"PostgreSQL >= 9 required" : "Захтеван је ПостгреСкул >= 9",
- "Please upgrade your database version" : "Молимо вас да надградите верзије ваше базе",
- "Error occurred while checking PostgreSQL version" : "Дошло је до грешке приликом провере верзије програма PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Проверите да ли имате PostgreSQL >= 9 или проверите дневнике записа за више информација о грешци",
+ "Please upgrade your database version" : "Надоградите ваше издање базе",
+ "Error occurred while checking PostgreSQL version" : "Дошло је до грешке приликом провере издања програма ПостгреСкул",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Проверите да ли имате ПостгреСкул >= 9 или проверите дневнике записа за више информација о грешци",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Промените дозволе у 0770 како директоријуми не би могли бити излистани од стране других корисника.",
"Data directory (%s) is readable by other users" : "Директоријум података (%s) могу читати остали корисници",
"Data directory (%s) must be an absolute path" : "Директоријум података (%s) мора бити апсолутна путања",
"Check the value of \"datadirectory\" in your configuration" : "Проверите податак за \"datadirectory\" у вашој конфигурацији",
- "Data directory (%s) is invalid" : "Директоријум података (%s) није валидан",
- "Please check that the data directory contains a file \".ocdata\" in its root." : "Проверите да ли директоријум података садржи датотеку \".ocdata\" у свом основном директоријуму.",
+ "Data directory (%s) is invalid" : "Директоријум података (%s) није исправан",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Проверите да ли директоријум података садржи фајл „.ocdata“ у свом основном директоријуму.",
"Could not obtain lock type %d on \"%s\"." : "Не могу да остварим закључаност %d за „%s“."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json
index 4de581fe414..d1fe5d4fe43 100644
--- a/lib/l10n/sr.json
+++ b/lib/l10n/sr.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Cannot write into \"config\" directory!" : "Не могу да уписујем у \"config\" директоријум!",
+ "Cannot write into \"config\" directory!" : "Не могу да уписујем у „config“ директоријум!",
"This can usually be fixed by giving the webserver write access to the config directory" : "Ово се обично може средити давањем права веб серверу да пише у директоријум са подешавањима",
"See %s" : "Погледајте %s",
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Ово се обично може средити %sдавањем права веб серверу да пише у директоријум са подешавањима%s.",
@@ -52,8 +52,8 @@
"App does not provide an info.xml file" : "Апликација не поседује info.xml датотеку",
"App can't be installed because of not allowed code in the App" : "Апликације не може бити инсталирана због недозвољеног кода у апликацији",
"App can't be installed because it is not compatible with this version of ownCloud" : "Апликације не може бити инсталирана јер није компатибилна са овом верзијом оунКлауда",
- "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Апликације не може бити инсталирана зато што садржи ознаку <shipped>тачно</shipped> која није дозвољена за неиспоручене апликације",
- "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Апликације не може бити инсталирана зато што издање у info.xml/version није исто као издање које је пријављено у продавници апликација",
+ "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Апликација се не може инсталирати јер садржи ознаку <shipped>тачно</shipped> која није дозвољена за неиспоручене апликације",
+ "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Апликација се не може инсталирати јер верзија у info.xml/version није иста као верзија коју пријављује продавница апликација",
"Application is not enabled" : "Апликација није укључена",
"Authentication error" : "Грешка аутентификације",
"Token expired. Please reload page." : "Жетон је истекао. Поново учитајте страницу.",
@@ -117,8 +117,8 @@
"No database drivers (sqlite, mysql, or postgresql) installed." : "Нема драјвера базе података (скулајт, мајскул или постгрескул).",
"Microsoft Windows Platform is not supported" : "Мајкрософт Виндоуз платформа није подржана",
"Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Покретање оунКлауд сервера на Мајкрософт Виндоуз платформи није подржано. Препоручујемо да користите Линукс сервер у виртуалној машини ако немате могућност пресељења самог сервера. Налажење Линукс пакета је лако, само распакујте пакете са <a href=\"%s\">%s</a>. За пресељење постојеће инсталације на Линукс, савете и скрипте можете наћи у <a href=\"%s\">нашој документацији</a>.",
- "Cannot write into \"config\" directory" : "Не могу уписивати у директоријуму \"config\"",
- "Cannot write into \"apps\" directory" : "Не могу уписивати у директоријуму \"apps\"",
+ "Cannot write into \"config\" directory" : "Не могу уписивати у директоријуму „config“",
+ "Cannot write into \"apps\" directory" : "Не могу уписивати у директоријуму „apps“",
"This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ово се обично може поправити %sgдавањем права уписа веб серверу директоријум%s апликација или искуључивањем продавнице апликација у датотеци config file.",
"Cannot create \"data\" directory (%s)" : "Не могу формирати \"data\" директоријуме (%s)",
"This can usually be fixed by <a href=\"%s\" target=\"_blank\">giving the webserver write access to the root directory</a>." : "Ово се обично може поправити <a href=\"%s\" target=\"_blank\">давањем права уписивања веб серверу у основни директоријум</a>.",
@@ -129,23 +129,22 @@
"PHP module %s not installed." : "ПХП модул %s није инсталиран.",
"PHP setting \"%s\" is not set to \"%s\"." : "ПХП поставка „%s“ није постављена на „%s“.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Подешавање ове поставке у php.ini фајлу ће омогућити да оунКлауд поново ради",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Замолите вашег администратора сервера да ажурира ПХП на најновију верзију. ПХП верзија вашег система више није подржана од стране оунКлауда и ПХП заједнице.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "ПХП је подешен да попуњава сирове податке. Од верзије 5.6 то може довести да ПХП шаље упозорења и за потпуно исправан код.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Да би решили овај проблем подесите <code>always_populate_raw_post_data</code> на <code>-1</code> у датотеци php.ini",
+ "mbstring.func_overload is set to \"%s\" instead to the expected value \"0\"" : "Вредност mbstring.func_overload је постављена на „%s“ уместо на очекивану вредност „0“",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Да би решили овај проблем поставите <code>mbstring.func_overload</code> на <code>0</code> у фајлу php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "ПХП је очигледно подешен да се скида уметнуте док блокова. То ће учинити неколико кључних апликација недоступним.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Ово је вероватно изазвано кешом или акцелератором као што су ЗендОПкеш или еАкцелератор.",
- "PHP modules have been installed, but they are still listed as missing?" : "PHP модули су инсталирани али се и даље воде као недостајући?",
+ "PHP modules have been installed, but they are still listed as missing?" : "ПХП модули су инсталирани али се и даље воде као недостајући?",
"Please ask your server administrator to restart the web server." : "Замолите вашег администратора сервера да поново покрене веб сервер.",
"PostgreSQL >= 9 required" : "Захтеван је ПостгреСкул >= 9",
- "Please upgrade your database version" : "Молимо вас да надградите верзије ваше базе",
- "Error occurred while checking PostgreSQL version" : "Дошло је до грешке приликом провере верзије програма PostgreSQL",
- "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Проверите да ли имате PostgreSQL >= 9 или проверите дневнике записа за више информација о грешци",
+ "Please upgrade your database version" : "Надоградите ваше издање базе",
+ "Error occurred while checking PostgreSQL version" : "Дошло је до грешке приликом провере издања програма ПостгреСкул",
+ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Проверите да ли имате ПостгреСкул >= 9 или проверите дневнике записа за више информација о грешци",
"Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Промените дозволе у 0770 како директоријуми не би могли бити излистани од стране других корисника.",
"Data directory (%s) is readable by other users" : "Директоријум података (%s) могу читати остали корисници",
"Data directory (%s) must be an absolute path" : "Директоријум података (%s) мора бити апсолутна путања",
"Check the value of \"datadirectory\" in your configuration" : "Проверите податак за \"datadirectory\" у вашој конфигурацији",
- "Data directory (%s) is invalid" : "Директоријум података (%s) није валидан",
- "Please check that the data directory contains a file \".ocdata\" in its root." : "Проверите да ли директоријум података садржи датотеку \".ocdata\" у свом основном директоријуму.",
+ "Data directory (%s) is invalid" : "Директоријум података (%s) није исправан",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Проверите да ли директоријум података садржи фајл „.ocdata“ у свом основном директоријуму.",
"Could not obtain lock type %d on \"%s\"." : "Не могу да остварим закључаност %d за „%s“."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js
index 54ac8eab794..2401ffc2e96 100644
--- a/lib/l10n/sv.js
+++ b/lib/l10n/sv.js
@@ -115,7 +115,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "Vänligen installera en av dessa locale på din server och starta om dinn webbserver,",
"Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.",
"PHP module %s not installed." : "PHP modulen %s är inte installerad.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vänligen be serveradministratören uppdatera PHP till den senaste versionen. Din PHP-version stöds inte längre av ownCloud.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställd för att rensa inline doc block. Detta kommer att göra flera kärnapplikationer otillgängliga.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?",
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
index 26cda92fbe8..bd9a704dccb 100644
--- a/lib/l10n/sv.json
+++ b/lib/l10n/sv.json
@@ -113,7 +113,6 @@
"Please install one of these locales on your system and restart your webserver." : "Vänligen installera en av dessa locale på din server och starta om dinn webbserver,",
"Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.",
"PHP module %s not installed." : "PHP modulen %s är inte installerad.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Vänligen be serveradministratören uppdatera PHP till den senaste versionen. Din PHP-version stöds inte längre av ownCloud.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställd för att rensa inline doc block. Detta kommer att göra flera kärnapplikationer otillgängliga.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?",
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
index f81e1e69b5d..4a969e8e288 100644
--- a/lib/l10n/tr.js
+++ b/lib/l10n/tr.js
@@ -131,9 +131,6 @@ OC.L10N.register(
"PHP module %s not installed." : "PHP modülü %s yüklü değil.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP ayarı \"%s\", \"%s\" olarak ayarlanmamış.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Bu ayarı php.ini içerisinde ayarlamak ownCloud'ı tekrar çalıştıracak.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Lütfen PHP'yi en son sürüme güncellemesi için sunucu yönetinize danışın. PHP sürümünüz ownCloud ve PHP topluluğu tarafından artık desteklenmemektedir.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP, ham gönderi verisini yerleştirmek üzere ayarlanmış. PHP 5.6'dan itibaren tamamen geçerli kod olmasına rağmen PHP bilgi mesajları gösterecektir.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Bu hatayı düzeltmek için php.ini içerisindeki <code>always_populate_raw_post_data</code> ayarını <code>-1</code> olarak ayarlayın",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP satıriçi doc bloklarını ayıklamak üzere yapılandırılmış gibi görünüyor. Bu, bazı çekirdek uygulamalarını erişilemez yapacak.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu, muhtemelen Zend OPcache veya eAccelerator gibi bir önbellek/hızlandırıcı nedeniyle meydana gelir.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?",
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
index 5f34c79d4bf..add5a27ad60 100644
--- a/lib/l10n/tr.json
+++ b/lib/l10n/tr.json
@@ -129,9 +129,6 @@
"PHP module %s not installed." : "PHP modülü %s yüklü değil.",
"PHP setting \"%s\" is not set to \"%s\"." : "PHP ayarı \"%s\", \"%s\" olarak ayarlanmamış.",
"Adjusting this setting in php.ini will make ownCloud run again" : "Bu ayarı php.ini içerisinde ayarlamak ownCloud'ı tekrar çalıştıracak.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Lütfen PHP'yi en son sürüme güncellemesi için sunucu yönetinize danışın. PHP sürümünüz ownCloud ve PHP topluluğu tarafından artık desteklenmemektedir.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "PHP, ham gönderi verisini yerleştirmek üzere ayarlanmış. PHP 5.6'dan itibaren tamamen geçerli kod olmasına rağmen PHP bilgi mesajları gösterecektir.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Bu hatayı düzeltmek için php.ini içerisindeki <code>always_populate_raw_post_data</code> ayarını <code>-1</code> olarak ayarlayın",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP satıriçi doc bloklarını ayıklamak üzere yapılandırılmış gibi görünüyor. Bu, bazı çekirdek uygulamalarını erişilemez yapacak.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Bu, muhtemelen Zend OPcache veya eAccelerator gibi bir önbellek/hızlandırıcı nedeniyle meydana gelir.",
"PHP modules have been installed, but they are still listed as missing?" : "PHP modülleri yüklü, ancak hala eksik olarak mı görünüyorlar?",
diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js
index 44964a0514b..a3a1e55b685 100644
--- a/lib/l10n/uk.js
+++ b/lib/l10n/uk.js
@@ -128,9 +128,6 @@ OC.L10N.register(
"PHP module %s not installed." : "%s модуль PHP не встановлено.",
"PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не встановлено в \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Установка цього параметру в php.ini дозволяє запуститися ownCloud знову.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Будь ласка, зверніться до адміністратора серверу, щоб оновити PHP до останньої версії. Встановлена версія PHP більше не підтримується ownCloud і співтовариством PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "У PHP включена директива \"always_populate_raw_post_data\". PHP версії 5.6 і вище, при включеній директиві, додає повідомлення в журнал навіть для абсолютно робочого коду.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Щоб виправити цю помилку, вкажіть значення <code> -1 </ code> як значення параметра <code> always_populate_raw_post_data </ code> у вашому php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Модулі PHP були встановлені, але вони все ще перераховані як відсутні?",
diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json
index a3ddeb3656a..609c498f56d 100644
--- a/lib/l10n/uk.json
+++ b/lib/l10n/uk.json
@@ -126,9 +126,6 @@
"PHP module %s not installed." : "%s модуль PHP не встановлено.",
"PHP setting \"%s\" is not set to \"%s\"." : "Параметр PHP \"%s\" не встановлено в \"%s\".",
"Adjusting this setting in php.ini will make ownCloud run again" : "Установка цього параметру в php.ini дозволяє запуститися ownCloud знову.",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "Будь ласка, зверніться до адміністратора серверу, щоб оновити PHP до останньої версії. Встановлена версія PHP більше не підтримується ownCloud і співтовариством PHP.",
- "PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code." : "У PHP включена директива \"always_populate_raw_post_data\". PHP версії 5.6 і вище, при включеній директиві, додає повідомлення в журнал навіть для абсолютно робочого коду.",
- "To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini" : "Щоб виправити цю помилку, вкажіть значення <code> -1 </ code> як значення параметра <code> always_populate_raw_post_data </ code> у вашому php.ini",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.",
"PHP modules have been installed, but they are still listed as missing?" : "Модулі PHP були встановлені, але вони все ще перераховані як відсутні?",
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
index 9753d5e9163..4430310e8f8 100644
--- a/lib/l10n/zh_CN.js
+++ b/lib/l10n/zh_CN.js
@@ -89,7 +89,6 @@ OC.L10N.register(
"Setting locale to %s failed" : "设置语言为 %s 失败",
"Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。",
"PHP module %s not installed." : "PHP %s 模块未安装。",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "请联系服务器管理员升级 PHP 到最新的版本。ownCloud 和 PHP 社区已经不再支持此版本的 PHP。",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除行内 <doc> 块,这将导致数个核心应用无法访问。",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的,例如 Zend OPcache 或 eAccelerator。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装,但仍然显示未安装?",
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
index 3ce438cd77c..e5edddc2fa1 100644
--- a/lib/l10n/zh_CN.json
+++ b/lib/l10n/zh_CN.json
@@ -87,7 +87,6 @@
"Setting locale to %s failed" : "设置语言为 %s 失败",
"Please ask your server administrator to install the module." : "请联系服务器管理员安装模块。",
"PHP module %s not installed." : "PHP %s 模块未安装。",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "请联系服务器管理员升级 PHP 到最新的版本。ownCloud 和 PHP 社区已经不再支持此版本的 PHP。",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除行内 <doc> 块,这将导致数个核心应用无法访问。",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的,例如 Zend OPcache 或 eAccelerator。",
"PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装,但仍然显示未安装?",
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index 2a7adcef04f..1458f4637b8 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -102,7 +102,6 @@ OC.L10N.register(
"Please install one of these locales on your system and restart your webserver." : "請在系統中安裝這些語系的其中一個,然後重啓網頁伺服器",
"Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
"PHP module %s not installed." : "未安裝 PHP 模組 %s",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "請詢問系統管理員將 PHP 升級至最新版,目前的 PHP 版本已經不再被 ownCloud 和 PHP 社群支援",
"PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",
"Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
"PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index 9ac52be13c4..ce93965013f 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -100,7 +100,6 @@
"Please install one of these locales on your system and restart your webserver." : "請在系統中安裝這些語系的其中一個,然後重啓網頁伺服器",
"Please ask your server administrator to install the module." : "請詢問系統管理員來安裝這些模組",
"PHP module %s not installed." : "未安裝 PHP 模組 %s",
- "Please ask your server administrator to update PHP to the latest version. Your PHP version is no longer supported by ownCloud and the PHP community." : "請詢問系統管理員將 PHP 升級至最新版,目前的 PHP 版本已經不再被 ownCloud 和 PHP 社群支援",
"PHP modules have been installed, but they are still listed as missing?" : "你已經安裝了指定的 PHP 模組,可是還是顯示為找不到嗎?",
"Please ask your server administrator to restart the web server." : "請聯絡您的系統管理員重新啟動網頁伺服器",
"PostgreSQL >= 9 required" : "需要 PostgreSQL 版本 >= 9",
diff --git a/lib/private/app.php b/lib/private/app.php
index aec67e6efd6..a4dd513a5d8 100644
--- a/lib/private/app.php
+++ b/lib/private/app.php
@@ -385,7 +385,13 @@ class OC_App {
public static function getAppNavigationEntries($app) {
if (is_file(self::getAppPath($app) . '/appinfo/app.php')) {
OC::$server->getNavigationManager()->clear();
- require $app . '/appinfo/app.php';
+ try {
+ require $app . '/appinfo/app.php';
+ } catch (\OC\Encryption\Exceptions\ModuleAlreadyExistsException $e) {
+ // FIXME we should avoid getting this exception in first place,
+ // For now we just catch it, since we don't care about encryption modules
+ // when trying to find out, whether the app has a navigation entry.
+ }
return OC::$server->getNavigationManager()->getAll();
}
return array();
diff --git a/lib/private/app/codechecker.php b/lib/private/app/codechecker.php
index 75db9ab3560..8c2f3405fb9 100644
--- a/lib/private/app/codechecker.php
+++ b/lib/private/app/codechecker.php
@@ -42,6 +42,7 @@ class CodeChecker extends BasicEmitter {
const STATIC_CALL_NOT_ALLOWED = 1002;
const CLASS_CONST_FETCH_NOT_ALLOWED = 1003;
const CLASS_NEW_FETCH_NOT_ALLOWED = 1004;
+ const OP_OPERATOR_USAGE_DISCOURAGED = 1005;
/** @var Parser */
private $parser;
@@ -118,7 +119,7 @@ class CodeChecker extends BasicEmitter {
/** @var SplFileInfo $file */
$this->emit('CodeChecker', 'analyseFileBegin', [$file->getPathname()]);
$fileErrors = $this->analyseFile($file);
- $this->emit('CodeChecker', 'analyseFileFinished', [$fileErrors]);
+ $this->emit('CodeChecker', 'analyseFileFinished', [$file->getPathname(), $fileErrors]);
$errors = array_merge($fileErrors, $errors);
}
diff --git a/lib/private/app/codecheckvisitor.php b/lib/private/app/codecheckvisitor.php
index c8f383c0493..03b238096e7 100644
--- a/lib/private/app/codecheckvisitor.php
+++ b/lib/private/app/codecheckvisitor.php
@@ -44,6 +44,22 @@ class CodeCheckVisitor extends NodeVisitorAbstract {
public $errors = [];
public function enterNode(Node $node) {
+ if ($node instanceof Node\Expr\BinaryOp\Equal) {
+ $this->errors[]= [
+ 'disallowedToken' => '==',
+ 'errorCode' => CodeChecker::OP_OPERATOR_USAGE_DISCOURAGED,
+ 'line' => $node->getLine(),
+ 'reason' => $this->buildReason('==', CodeChecker::OP_OPERATOR_USAGE_DISCOURAGED)
+ ];
+ }
+ if ($node instanceof Node\Expr\BinaryOp\NotEqual) {
+ $this->errors[]= [
+ 'disallowedToken' => '!=',
+ 'errorCode' => CodeChecker::OP_OPERATOR_USAGE_DISCOURAGED,
+ 'line' => $node->getLine(),
+ 'reason' => $this->buildReason('!=', CodeChecker::OP_OPERATOR_USAGE_DISCOURAGED)
+ ];
+ }
if ($node instanceof Node\Stmt\Class_) {
if (!is_null($node->extends)) {
$this->checkBlackList($node->extends->toString(), CodeChecker::CLASS_EXTENDS_NOT_ALLOWED, $node);
@@ -114,6 +130,7 @@ class CodeCheckVisitor extends NodeVisitorAbstract {
CodeChecker::STATIC_CALL_NOT_ALLOWED => "static method call on private class",
CodeChecker::CLASS_CONST_FETCH_NOT_ALLOWED => "used to fetch a const from",
CodeChecker::CLASS_NEW_FETCH_NOT_ALLOWED => "is instanciated",
+ CodeChecker::OP_OPERATOR_USAGE_DISCOURAGED => "is discouraged"
];
if (isset($errorMessages[$errorCode])) {
diff --git a/lib/private/appconfig.php b/lib/private/appconfig.php
index a2095c571f3..37532616e1e 100644
--- a/lib/private/appconfig.php
+++ b/lib/private/appconfig.php
@@ -42,13 +42,14 @@
namespace OC;
-use \OC\DB\Connection;
+use OC\DB\Connection;
+use OCP\IAppConfig;
/**
* This class provides an easy way for apps to store config values in the
* database.
*/
-class AppConfig implements \OCP\IAppConfig {
+class AppConfig implements IAppConfig {
/**
* @var \OC\DB\Connection $conn
*/
@@ -64,7 +65,7 @@ class AppConfig implements \OCP\IAppConfig {
private $apps = null;
/**
- * @param \OC\DB\Connection $conn
+ * @param Connection $conn
*/
public function __construct(Connection $conn) {
$this->conn = $conn;
@@ -172,27 +173,31 @@ class AppConfig implements \OCP\IAppConfig {
}
/**
- * sets a value in the appconfig
+ * Sets a value. If the key did not exist before it will be created.
*
* @param string $app app
* @param string $key key
* @param string $value value
- *
- * Sets a value. If the key did not exist before it will be created.
+ * @return void
*/
public function setValue($app, $key, $value) {
+ $inserted = false;
// Does the key exist? no: insert, yes: update.
if (!$this->hasKey($app, $key)) {
- $data = array(
+ $inserted = (bool) $this->conn->insertIfNotExist('*PREFIX*appconfig', [
'appid' => $app,
'configkey' => $key,
'configvalue' => $value,
- );
- $this->conn->insert('*PREFIX*appconfig', $data);
- } else {
+ ], [
+ 'appid',
+ 'configkey',
+ ]);
+ }
+
+ if (!$inserted) {
$oldValue = $this->getValue($app, $key);
if($oldValue === strval($value)) {
- return true;
+ return;
}
$data = array(
'configvalue' => $value,
diff --git a/lib/private/appframework/app.php b/lib/private/appframework/app.php
index ede97180fe2..f6c1e31cddd 100644
--- a/lib/private/appframework/app.php
+++ b/lib/private/appframework/app.php
@@ -49,19 +49,22 @@ class App {
*/
public static function buildAppNamespace($appId, $topNamespace='OCA\\') {
// first try to parse the app's appinfo/info.xml <namespace> tag
- $filePath = OC_App::getAppPath($appId) . '/appinfo/info.xml';
- $loadEntities = libxml_disable_entity_loader(false);
- $xml = @simplexml_load_file($filePath);
- libxml_disable_entity_loader($loadEntities);
-
- if ($xml) {
- $result = $xml->xpath('/info/namespace');
- if ($result && count($result) > 0) {
- // take first namespace result
- return $topNamespace . trim((string) $result[0]);
+ $appPath = OC_App::getAppPath($appId);
+ if ($appPath !== false) {
+ $filePath = "$appPath/appinfo/info.xml";
+ if (is_file($filePath)) {
+ $loadEntities = libxml_disable_entity_loader(false);
+ $xml = @simplexml_load_file($filePath);
+ libxml_disable_entity_loader($loadEntities);
+ if ($xml) {
+ $result = $xml->xpath('/info/namespace');
+ if ($result && count($result) > 0) {
+ // take first namespace result
+ return $topNamespace . trim((string) $result[0]);
+ }
+ }
}
}
-
// if the tag is not found, fall back to uppercasing the first letter
return $topNamespace . ucfirst($appId);
}
diff --git a/lib/private/backgroundjob/job.php b/lib/private/backgroundjob/job.php
index 068d1da0ae3..88682cd09bb 100644
--- a/lib/private/backgroundjob/job.php
+++ b/lib/private/backgroundjob/job.php
@@ -24,6 +24,7 @@
namespace OC\BackgroundJob;
use OCP\BackgroundJob\IJob;
+use OCP\ILogger;
abstract class Job implements IJob {
/**
@@ -43,9 +44,9 @@ abstract class Job implements IJob {
/**
* @param JobList $jobList
- * @param \OC\Log $logger
+ * @param ILogger $logger
*/
- public function execute($jobList, $logger = null) {
+ public function execute($jobList, ILogger $logger = null) {
$jobList->setLastRun($this);
try {
$this->run($this->argument);
diff --git a/lib/private/backgroundjob/queuedjob.php b/lib/private/backgroundjob/queuedjob.php
index 21ee03f478d..c4cf8b0e5e0 100644
--- a/lib/private/backgroundjob/queuedjob.php
+++ b/lib/private/backgroundjob/queuedjob.php
@@ -21,6 +21,7 @@
*/
namespace OC\BackgroundJob;
+use OCP\ILogger;
/**
* Class QueuedJob
@@ -34,9 +35,9 @@ abstract class QueuedJob extends Job {
* run the job, then remove it from the joblist
*
* @param JobList $jobList
- * @param \OC\Log $logger
+ * @param ILogger $logger
*/
- public function execute($jobList, $logger = null) {
+ public function execute($jobList, ILogger $logger = null) {
$jobList->remove($this, $this->argument);
parent::execute($jobList, $logger);
}
diff --git a/lib/private/backgroundjob/timedjob.php b/lib/private/backgroundjob/timedjob.php
index 3b896bd4cc7..63db1fed61c 100644
--- a/lib/private/backgroundjob/timedjob.php
+++ b/lib/private/backgroundjob/timedjob.php
@@ -21,6 +21,7 @@
*/
namespace OC\BackgroundJob;
+use OCP\ILogger;
/**
* Class QueuedJob
@@ -45,9 +46,9 @@ abstract class TimedJob extends Job {
* run the job if
*
* @param JobList $jobList
- * @param \OC\Log $logger
+ * @param ILogger $logger
*/
- public function execute($jobList, $logger = null) {
+ public function execute($jobList, ILogger $logger = null) {
if ((time() - $this->lastRun) > $this->interval) {
parent::execute($jobList, $logger);
}
diff --git a/lib/private/connector/sabre/dummygetresponseplugin.php b/lib/private/connector/sabre/dummygetresponseplugin.php
index 7d57f6021fa..6057236b635 100644
--- a/lib/private/connector/sabre/dummygetresponseplugin.php
+++ b/lib/private/connector/sabre/dummygetresponseplugin.php
@@ -20,6 +20,8 @@
*/
namespace OC\Connector\Sabre;
+use Sabre\HTTP\ResponseInterface;
+use Sabre\HTTP\RequestInterface;
/**
* Class DummyGetResponsePlugin is a plugin used to not show a "Not implemented"
@@ -42,15 +44,25 @@ class DummyGetResponsePlugin extends \Sabre\DAV\ServerPlugin {
* @param \Sabre\DAV\Server $server
* @return void
*/
- function initialize(\Sabre\DAV\Server $server) {
+ function initialize(\Sabre\DAV\Server $server) {
$this->server = $server;
- $this->server->on('method:GET', [$this,'httpGet'], 200);
+ $this->server->on('method:GET', [$this, 'httpGet'], 200);
}
/**
+ * @param RequestInterface $request
+ * @param ResponseInterface $response
* @return false
*/
- function httpGet() {
+ function httpGet(RequestInterface $request, ResponseInterface $response) {
+ $string = 'This is the WebDAV interface. It can only be accessed by ' .
+ 'WebDAV clients such as the ownCloud desktop sync client.';
+ $stream = fopen('php://memory','r+');
+ fwrite($stream, $string);
+ rewind($stream);
+
+ $response->setBody($stream);
+
return false;
}
}
diff --git a/lib/private/connector/sabre/file.php b/lib/private/connector/sabre/file.php
index 8ff5577629d..8e4460ef3b5 100644
--- a/lib/private/connector/sabre/file.php
+++ b/lib/private/connector/sabre/file.php
@@ -99,8 +99,8 @@ class File extends Node implements IFile {
return $this->createFileChunked($data);
}
- list($storage) = $this->fileView->resolvePath($this->path);
- $needsPartFile = $this->needsPartFile($storage) && (strlen($this->path) > 1);
+ list($partStorage) = $this->fileView->resolvePath($this->path);
+ $needsPartFile = $this->needsPartFile($partStorage) && (strlen($this->path) > 1);
if ($needsPartFile) {
// mark file as partial while uploading (ignored by the scanner)
@@ -110,14 +110,16 @@ class File extends Node implements IFile {
$partFilePath = $this->path;
}
+ // the part file and target file might be on a different storage in case of a single file storage (e.g. single file share)
+ /** @var \OC\Files\Storage\Storage $partStorage */
+ list($partStorage, $internalPartPath) = $this->fileView->resolvePath($partFilePath);
/** @var \OC\Files\Storage\Storage $storage */
- list($storage, $internalPartPath) = $this->fileView->resolvePath($partFilePath);
- list(, $internalPath) = $this->fileView->resolvePath($this->path);
+ list($storage, $internalPath) = $this->fileView->resolvePath($this->path);
try {
- $target = $storage->fopen($internalPartPath, 'wb');
+ $target = $partStorage->fopen($internalPartPath, 'wb');
if ($target === false) {
\OC_Log::write('webdav', '\OC\Files\Filesystem::fopen() failed', \OC_Log::ERROR);
- $storage->unlink($internalPartPath);
+ $partStorage->unlink($internalPartPath);
// because we have no clue about the cause we can only throw back a 500/Internal Server Error
throw new Exception('Could not write file contents');
}
@@ -130,7 +132,7 @@ class File extends Node implements IFile {
if (isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['REQUEST_METHOD'] !== 'LOCK') {
$expected = $_SERVER['CONTENT_LENGTH'];
if ($count != $expected) {
- $storage->unlink($internalPartPath);
+ $partStorage->unlink($internalPartPath);
throw new BadRequest('expected filesize ' . $expected . ' got ' . $count);
}
}
@@ -159,14 +161,38 @@ class File extends Node implements IFile {
}
try {
+ $view = \OC\Files\Filesystem::getView();
+ $run = true;
+ if ($view) {
+ $hookPath = $view->getRelativePath($this->fileView->getAbsolutePath($this->path));
+
+ if (!$exists) {
+ \OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_create, array(
+ \OC\Files\Filesystem::signal_param_path => $hookPath,
+ \OC\Files\Filesystem::signal_param_run => &$run,
+ ));
+ } else {
+ \OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_update, array(
+ \OC\Files\Filesystem::signal_param_path => $hookPath,
+ \OC\Files\Filesystem::signal_param_run => &$run,
+ ));
+ }
+ \OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_write, array(
+ \OC\Files\Filesystem::signal_param_path => $hookPath,
+ \OC\Files\Filesystem::signal_param_run => &$run,
+ ));
+ }
+
if ($needsPartFile) {
// rename to correct path
try {
- $renameOkay = $storage->rename($internalPartPath, $internalPath);
- $fileExists = $storage->file_exists($internalPath);
- if ($renameOkay === false || $fileExists === false) {
- \OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR);
- $storage->unlink($internalPartPath);
+ if ($run) {
+ $renameOkay = $storage->moveFromStorage($partStorage, $internalPartPath, $internalPath);
+ $fileExists = $storage->file_exists($internalPath);
+ }
+ if (!$run || $renameOkay === false || $fileExists === false) {
+ \OC_Log::write('webdav', 'renaming part file to final file failed', \OC_Log::ERROR);
+ $partStorage->unlink($internalPartPath);
throw new Exception('Could not rename part file to final file');
}
} catch (\OCP\Files\LockNotAcquiredException $e) {
@@ -176,11 +202,9 @@ class File extends Node implements IFile {
}
// since we skipped the view we need to scan and emit the hooks ourselves
- $storage->getScanner()->scanFile($internalPath);
+ $partStorage->getScanner()->scanFile($internalPath);
- $view = \OC\Files\Filesystem::getView();
if ($view) {
- $hookPath = $view->getRelativePath($this->fileView->getAbsolutePath($this->path));
$this->fileView->getUpdater()->propagate($hookPath);
if (!$exists) {
\OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_post_create, array(
diff --git a/lib/private/connector/sabre/quotaplugin.php b/lib/private/connector/sabre/quotaplugin.php
index 51eab1bae6e..22b687b3508 100644
--- a/lib/private/connector/sabre/quotaplugin.php
+++ b/lib/private/connector/sabre/quotaplugin.php
@@ -89,6 +89,9 @@ class QuotaPlugin extends \Sabre\DAV\ServerPlugin {
$uri = '/' . $uri;
}
list($parentUri, $newName) = \Sabre\HTTP\URLUtil::splitPath($uri);
+ if(is_null($parentUri)) {
+ $parentUri = '';
+ }
$req = $this->server->httpRequest;
if ($req->getHeader('OC-Chunked')) {
$info = \OC_FileChunking::decodeName($newName);
diff --git a/lib/private/defaults.php b/lib/private/defaults.php
index af4370e17e5..16f45943f54 100644
--- a/lib/private/defaults.php
+++ b/lib/private/defaults.php
@@ -60,7 +60,7 @@ class OC_Defaults {
$this->defaultiTunesAppId = '543672169';
$this->defaultAndroidClientUrl = 'https://play.google.com/store/apps/details?id=com.owncloud.android';
$this->defaultDocBaseUrl = 'https://doc.owncloud.org';
- $this->defaultDocVersion = $version[0] . '.0'; // used to generate doc links
+ $this->defaultDocVersion = $version[0] . '.' . $version[1]; // used to generate doc links
$this->defaultSlogan = $this->l->t('web services under your control');
$this->defaultLogoClaim = '';
$this->defaultMailHeaderColor = '#1d2d44'; /* header color of mail notifications */
diff --git a/lib/private/encryption/exceptions/decryptionfailedexception.php b/lib/private/encryption/exceptions/decryptionfailedexception.php
index 406ae12968e..7e9fa21eaef 100644
--- a/lib/private/encryption/exceptions/decryptionfailedexception.php
+++ b/lib/private/encryption/exceptions/decryptionfailedexception.php
@@ -27,4 +27,15 @@ use OCP\Encryption\Exceptions\GenericEncryptionException;
class DecryptionFailedException extends GenericEncryptionException {
+ /**
+ * @param string $message
+ * @param int $code
+ * @param \Exception $previous
+ * @param string $hint
+ */
+ public function __construct($message = '', $code = 0, \Exception $previous = null, $hint = '') {
+ parent::__construct($message, $code, $previous, $hint);
+
+}
+
}
diff --git a/lib/private/encryption/hookmanager.php b/lib/private/encryption/hookmanager.php
index c62583b4b47..31ecb2fbcf6 100644
--- a/lib/private/encryption/hookmanager.php
+++ b/lib/private/encryption/hookmanager.php
@@ -37,6 +37,14 @@ class HookManager {
self::getUpdate()->postUnshared($params);
}
+ public static function postRename($params) {
+ self::getUpdate()->postRename($params);
+ }
+
+ public static function postRestore($params) {
+ self::getUpdate()->postRestore($params);
+ }
+
/**
* @return Update
*/
diff --git a/lib/private/encryption/keys/storage.php b/lib/private/encryption/keys/storage.php
index 118c8dc920d..6aa00c5b5ee 100644
--- a/lib/private/encryption/keys/storage.php
+++ b/lib/private/encryption/keys/storage.php
@@ -125,10 +125,9 @@ class Storage implements IStorage {
/**
* @inheritdoc
*/
- public function deleteAllFileKeys($path, $encryptionModuleId) {
- $keyDir = $this->getFileKeyDir($encryptionModuleId, $path);
- $path = dirname($keyDir);
- return !$this->view->file_exists($path) || $this->view->deleteAll($path);
+ public function deleteAllFileKeys($path) {
+ $keyDir = $this->getFileKeyDir('', $path);
+ return !$this->view->file_exists($keyDir) || $this->view->deleteAll($keyDir);
}
/**
@@ -208,17 +207,10 @@ class Storage implements IStorage {
* @param string $encryptionModuleId
* @param string $path path to the file, relative to data/
* @return string
- * @throws GenericEncryptionException
- * @internal param string $keyId
*/
private function getFileKeyDir($encryptionModuleId, $path) {
- if ($this->view->is_dir($path)) {
- throw new GenericEncryptionException("file was expected but directory was given: $path");
- }
-
list($owner, $filename) = $this->util->getUidAndFilename($path);
- $filename = $this->util->stripPartialFileExtension($filename);
// in case of system wide mount points the keys are stored directly in the data directory
if ($this->util->isSystemWideMountPoint($filename, $owner)) {
diff --git a/lib/private/encryption/update.php b/lib/private/encryption/update.php
index a0b0af968c6..02579fd9136 100644
--- a/lib/private/encryption/update.php
+++ b/lib/private/encryption/update.php
@@ -81,11 +81,13 @@ class Update {
* @param array $params
*/
public function postShared($params) {
- if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
- $path = Filesystem::getPath($params['fileSource']);
- list($owner, $ownerPath) = $this->getOwnerPath($path);
- $absPath = '/' . $owner . '/files/' . $ownerPath;
- $this->update($absPath);
+ if ($this->encryptionManager->isEnabled()) {
+ if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
+ $path = Filesystem::getPath($params['fileSource']);
+ list($owner, $ownerPath) = $this->getOwnerPath($path);
+ $absPath = '/' . $owner . '/files/' . $ownerPath;
+ $this->update($absPath);
+ }
}
}
@@ -95,11 +97,45 @@ class Update {
* @param array $params
*/
public function postUnshared($params) {
- if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
- $path = Filesystem::getPath($params['fileSource']);
- list($owner, $ownerPath) = $this->getOwnerPath($path);
- $absPath = '/' . $owner . '/files/' . $ownerPath;
- $this->update($absPath);
+ if ($this->encryptionManager->isEnabled()) {
+ if ($params['itemType'] === 'file' || $params['itemType'] === 'folder') {
+ $path = Filesystem::getPath($params['fileSource']);
+ list($owner, $ownerPath) = $this->getOwnerPath($path);
+ $absPath = '/' . $owner . '/files/' . $ownerPath;
+ $this->update($absPath);
+ }
+ }
+ }
+
+ /**
+ * inform encryption module that a file was restored from the trash bin,
+ * e.g. to update the encryption keys
+ *
+ * @param array $params
+ */
+ public function postRestore($params) {
+ if ($this->encryptionManager->isEnabled()) {
+ $path = Filesystem::normalizePath('/' . $this->uid . '/files/' . $params['filePath']);
+ $this->update($path);
+ }
+ }
+
+ /**
+ * inform encryption module that a file was renamed,
+ * e.g. to update the encryption keys
+ *
+ * @param array $params
+ */
+ public function postRename($params) {
+ $source = $params['oldpath'];
+ $target = $params['newpath'];
+ if(
+ $this->encryptionManager->isEnabled() &&
+ dirname($source) !== dirname($target)
+ ) {
+ list($owner, $ownerPath) = $this->getOwnerPath($target);
+ $absPath = '/' . $owner . '/files/' . $ownerPath;
+ $this->update($absPath);
}
}
@@ -110,7 +146,7 @@ class Update {
* @return array ['owner' => $owner, 'path' => $path]
* @throw \InvalidArgumentException
*/
- private function getOwnerPath($path) {
+ protected function getOwnerPath($path) {
$info = Filesystem::getFileInfo($path);
$owner = Filesystem::getOwner($path);
$view = new View('/' . $owner . '/files');
diff --git a/lib/private/encryption/util.php b/lib/private/encryption/util.php
index 032ac83f37e..45d4dd90d9f 100644
--- a/lib/private/encryption/util.php
+++ b/lib/private/encryption/util.php
@@ -357,7 +357,7 @@ class Util {
public function isExcluded($path) {
$normalizedPath = \OC\Files\Filesystem::normalizePath($path);
$root = explode('/', $normalizedPath, 4);
- if (count($root) > 2) {
+ if (count($root) > 1) {
//detect system wide folders
if (in_array($root[1], $this->excludedPaths)) {
diff --git a/lib/private/files.php b/lib/private/files.php
index 97f9d8163b1..6a739fc844c 100644
--- a/lib/private/files.php
+++ b/lib/private/files.php
@@ -129,52 +129,60 @@ class OC_Files {
$zip = new ZipStreamer(false);
}
OC_Util::obEnd();
- if ($zip or \OC\Files\Filesystem::isReadable($filename)) {
- self::sendHeaders($filename, $name, $zip);
- } elseif (!\OC\Files\Filesystem::file_exists($filename)) {
- header("HTTP/1.0 404 Not Found");
- $tmpl = new OC_Template('', '404', 'guest');
- $tmpl->printPage();
- } else {
- header("HTTP/1.0 403 Forbidden");
- die('403 Forbidden');
- }
- if($only_header) {
- return ;
- }
- if ($zip) {
- $executionTime = intval(ini_get('max_execution_time'));
- set_time_limit(0);
- if ($get_type === self::ZIP_FILES) {
- foreach ($files as $file) {
- $file = $dir . '/' . $file;
- if (\OC\Files\Filesystem::is_file($file)) {
- $fh = \OC\Files\Filesystem::fopen($file, 'r');
- $zip->addFileFromStream($fh, basename($file));
- fclose($fh);
- } elseif (\OC\Files\Filesystem::is_dir($file)) {
- self::zipAddDir($file, $zip);
+
+ try {
+
+ if ($zip or \OC\Files\Filesystem::isReadable($filename)) {
+ self::sendHeaders($filename, $name, $zip);
+ } elseif (!\OC\Files\Filesystem::file_exists($filename)) {
+ header("HTTP/1.0 404 Not Found");
+ $tmpl = new OC_Template('', '404', 'guest');
+ $tmpl->printPage();
+ } else {
+ header("HTTP/1.0 403 Forbidden");
+ die('403 Forbidden');
+ }
+ if ($only_header) {
+ return;
+ }
+ if ($zip) {
+ $executionTime = intval(ini_get('max_execution_time'));
+ set_time_limit(0);
+ if ($get_type === self::ZIP_FILES) {
+ foreach ($files as $file) {
+ $file = $dir . '/' . $file;
+ if (\OC\Files\Filesystem::is_file($file)) {
+ $fh = \OC\Files\Filesystem::fopen($file, 'r');
+ $zip->addFileFromStream($fh, basename($file));
+ fclose($fh);
+ } elseif (\OC\Files\Filesystem::is_dir($file)) {
+ self::zipAddDir($file, $zip);
+ }
}
+ } elseif ($get_type === self::ZIP_DIR) {
+ $file = $dir . '/' . $files;
+ self::zipAddDir($file, $zip);
}
- } elseif ($get_type === self::ZIP_DIR) {
- $file = $dir . '/' . $files;
- self::zipAddDir($file, $zip);
- }
- $zip->finalize();
- set_time_limit($executionTime);
- } else {
- if ($xsendfile) {
- $view = \OC\Files\Filesystem::getView();
- /** @var $storage \OC\Files\Storage\Storage */
- list($storage) = $view->resolvePath($filename);
- if ($storage->isLocal()) {
- self::addSendfileHeader($filename);
+ $zip->finalize();
+ set_time_limit($executionTime);
+ } else {
+ if ($xsendfile) {
+ $view = \OC\Files\Filesystem::getView();
+ /** @var $storage \OC\Files\Storage\Storage */
+ list($storage) = $view->resolvePath($filename);
+ if ($storage->isLocal()) {
+ self::addSendfileHeader($filename);
+ } else {
+ \OC\Files\Filesystem::readfile($filename);
+ }
} else {
\OC\Files\Filesystem::readfile($filename);
}
- } else {
- \OC\Files\Filesystem::readfile($filename);
}
+ } catch (\Exception $ex) {
+ $l = \OC::$server->getL10N('core');
+ $hint = method_exists($ex, 'getHint') ? $ex->getHint() : '';
+ \OC_Template::printErrorPage($l->t('Can\'t read file'), $hint);
}
}
diff --git a/lib/private/files/cache/cache.php b/lib/private/files/cache/cache.php
index 7d3738fdc73..a82ccec2813 100644
--- a/lib/private/files/cache/cache.php
+++ b/lib/private/files/cache/cache.php
@@ -35,9 +35,14 @@
namespace OC\Files\Cache;
/**
- * Metadata cache for the filesystem
+ * Metadata cache for a storage
*
- * don't use this class directly if you need to get metadata, use \OC\Files\Filesystem::getFileInfo instead
+ * The cache stores the metadata for all files and folders in a storage and is kept up to date trough the following mechanisms:
+ *
+ * - Scanner: scans the storage and updates the cache where needed
+ * - Watcher: checks for changes made to the filesystem outside of the ownCloud instance and rescans files and folder when a change is detected
+ * - Updater: listens to changes made to the filesystem inside of the ownCloud instance and updates the cache where needed
+ * - ChangePropagator: updates the mtime and etags of parent folders whenever a change to the cache is made to the cache by the updater
*/
class Cache {
const NOT_FOUND = 0;
@@ -79,12 +84,20 @@ class Cache {
$this->storageCache = new Storage($storage);
}
+ /**
+ * Get the numeric storage id for this cache's storage
+ *
+ * @return int
+ */
public function getNumericStorageId() {
return $this->storageCache->getNumericId();
}
/**
- * normalize mimetypes
+ * Get the numeric id for a mimetype
+ *
+ * Mimetypes are stored as integers in the cache to prevent duplicated data of the (usually) fairly limited amount of unique mimetypes
+ * If the supplied mimetype does not yet have a numeric id a new one will be generated
*
* @param string $mime
* @return int
@@ -114,6 +127,13 @@ class Cache {
return self::$mimetypeIds[$mime];
}
+
+ /**
+ * Get the mimetype (as string) from a mimetype id
+ *
+ * @param int $id
+ * @return string | null the mimetype for the id or null if the id is not known
+ */
public function getMimetype($id) {
if (empty(self::$mimetypes)) {
$this->loadMimetypes();
@@ -122,6 +142,11 @@ class Cache {
return isset(self::$mimetypes[$id]) ? self::$mimetypes[$id] : null;
}
+ /**
+ * Load all known mimetypes and mimetype ids from the database
+ *
+ * @throws \OC\DatabaseException
+ */
public function loadMimetypes() {
self::$mimetypeIds = self::$mimetypes = array();
@@ -137,8 +162,28 @@ class Cache {
/**
* get the stored metadata of a file or folder
*
- * @param string /int $file
- * @return array|false
+ * the returned cache entry contains at least the following values:
+ * [
+ * 'fileid' => int, the numeric id of a file (see getId)
+ * 'storage' => int, the numeric id of the storage the file is stored on
+ * 'path' => string, the path of the file within the storage ('foo/bar.txt')
+ * 'name' => string, the basename of a file ('bar.txt)
+ * 'mimetype' => string, the full mimetype of the file ('text/plain')
+ * 'mimepart' => string, the first half of the mimetype ('text')
+ * 'size' => int, the size of the file or folder in bytes
+ * 'mtime' => int, the last modified date of the file as unix timestamp as shown in the ui
+ * 'storage_mtime' => int, the last modified date of the file as unix timestamp as stored on the storage
+ * Note that when a file is updated we also update the mtime of all parent folders to make it visible to the user which folder has had updates most recently
+ * This can differ from the mtime on the underlying storage which usually only changes when a direct child is added, removed or renamed
+ * 'etag' => string, the etag for the file
+ * An etag is used for change detection of files and folders, an etag of a file changes whenever the content of the file changes
+ * Etag for folders change whenever a file in the folder has changed
+ * 'permissions' int, the permissions for the file stored as bitwise combination of \OCP\PERMISSION_READ, \OCP\PERMISSION_CREATE
+ * \OCP\PERMISSION_UPDATE, \OCP\PERMISSION_DELETE and \OCP\PERMISSION_SHARE
+ * ]
+ *
+ * @param string | int $file either the path of a file or folder or the file id for a file or folder
+ * @return array|false the cache entry as array of false if the file is not found in the cache
*/
public function get($file) {
if (is_string($file) or $file == '') {
@@ -288,10 +333,10 @@ class Cache {
}
/**
- * update the metadata in the cache
+ * update the metadata of an existing file or folder in the cache
*
- * @param int $id
- * @param array $data
+ * @param int $id the fileid of the existing file or folder
+ * @param array $data [$key => $value] the metadata to update, only the fields provided in the array will be updated, non-provided values will remain unchanged
*/
public function update($id, array $data) {
@@ -323,9 +368,11 @@ class Cache {
* extract query parts and params array from data array
*
* @param array $data
- * @return array
+ * @return array [$queryParts, $params]
+ * $queryParts: string[], the (escaped) column names to be set in the query
+ * $params: mixed[], the new values for the columns, to be passed as params to the query
*/
- function buildParts(array $data) {
+ protected function buildParts(array $data) {
$fields = array(
'path', 'parent', 'name', 'mimetype', 'size', 'mtime', 'storage_mtime', 'encrypted',
'etag', 'permissions');
@@ -359,6 +406,10 @@ class Cache {
/**
* get the file id for a file
*
+ * A file id is a numeric id for a file or folder that's unique within an owncloud instance which stays the same for the lifetime of a file
+ *
+ * File ids are easiest way for apps to store references to a file since unlike paths they are not affected by renames or sharing
+ *
* @param string $file
* @return int
*/
@@ -408,6 +459,8 @@ class Cache {
/**
* remove a file or folder from the cache
*
+ * when removing a folder from the cache all files and folders inside the folder will be removed as well
+ *
* @param string $file
*/
public function remove($file) {
@@ -419,6 +472,12 @@ class Cache {
}
}
+ /**
+ * Get all sub folders of a folder
+ *
+ * @param array $entry the cache entry of the folder to get the subfolders for
+ * @return array[] the cache entries for the subfolders
+ */
private function getSubFolders($entry) {
$children = $this->getFolderContentsById($entry['fileid']);
return array_filter($children, function ($child) {
@@ -426,6 +485,12 @@ class Cache {
});
}
+ /**
+ * Recursively remove all children of a folder
+ *
+ * @param array $entry the cache entry of the folder to remove the children of
+ * @throws \OC\DatabaseException
+ */
private function removeChildren($entry) {
$subFolders = $this->getSubFolders($entry);
foreach ($subFolders as $folder) {
@@ -507,6 +572,13 @@ class Cache {
}
/**
+ * Get the scan status of a file
+ *
+ * - Cache::NOT_FOUND: File is not in the cache
+ * - Cache::PARTIAL: File is not stored in the cache but some incomplete data is known
+ * - Cache::SHALLOW: The folder and it's direct children are in the cache but not all sub folders are fully scanned
+ * - Cache::COMPLETE: The file or folder, with all it's children) are fully scanned
+ *
* @param string $file
*
* @return int Cache::NOT_FOUND, Cache::PARTIAL, Cache::SHALLOW or Cache::COMPLETE
@@ -536,8 +608,8 @@ class Cache {
/**
* search for files matching $pattern
*
- * @param string $pattern
- * @return array an array of file data
+ * @param string $pattern the search pattern using SQL search syntax (e.g. '%searchstring%')
+ * @return array an array of cache entries where the name matches the search pattern
*/
public function search($pattern) {
@@ -567,8 +639,9 @@ class Cache {
/**
* search for files by mimetype
*
- * @param string $mimetype
- * @return array
+ * @param string $mimetype either a full mimetype to search ('text/plain') or only the first part of a mimetype ('image')
+ * where it will search for all mimetypes in the group ('image/*')
+ * @return array an array of cache entries where the mimetype matches the search
*/
public function searchByMime($mimetype) {
if (strpos($mimetype, '/')) {
@@ -635,7 +708,7 @@ class Cache {
}
/**
- * update the folder size and the size of all parent folders
+ * Re-calculate the folder size and the size of all parent folders
*
* @param string|boolean $path
* @param array $data (optional) meta data of the folder
@@ -652,7 +725,7 @@ class Cache {
}
/**
- * get the size of a folder and set it in the cache
+ * calculate the size of a folder and set it in the cache
*
* @param string $path
* @param array $entry (optional) meta data of the folder
@@ -729,10 +802,10 @@ class Cache {
}
/**
- * get the path of a file on this storage by it's id
+ * get the path of a file on this storage by it's file id
*
- * @param int $id
- * @return string|null
+ * @param int $id the file id of the file or folder to search
+ * @return string|null the path of the file (relative to the storage) or null if a file with the given id does not exists within this cache
*/
public function getPathById($id) {
$sql = 'SELECT `path` FROM `*PREFIX*filecache` WHERE `fileid` = ? AND `storage` = ?';
@@ -754,6 +827,7 @@ class Cache {
* instead does a global search in the cache table
*
* @param int $id
+ * @deprecated use getPathById() instead
* @return array first element holding the storage id, second the path
*/
static public function getById($id) {
diff --git a/lib/private/files/cache/storage.php b/lib/private/files/cache/storage.php
index 2007f0c9e3d..ebef245f399 100644
--- a/lib/private/files/cache/storage.php
+++ b/lib/private/files/cache/storage.php
@@ -27,9 +27,13 @@
namespace OC\Files\Cache;
/**
- * Class Storage
+ * Handle the mapping between the string and numeric storage ids
*
- * cache storage specific data
+ * Each storage has 2 different ids
+ * a string id which is generated by the storage backend and reflects the configuration of the storage (e.g. 'smb://user@host/share')
+ * and a numeric storage id which is referenced in the file cache
+ *
+ * A mapping between the two storage ids is stored in the database and accessible trough this class
*
* @package OC\Files\Cache
*/
@@ -71,7 +75,7 @@ class Storage {
/**
* Adjusts the storage id to use md5 if too long
* @param string $storageId storage id
- * @return unchanged $storageId if its length is less than 64 characters,
+ * @return string unchanged $storageId if its length is less than 64 characters,
* else returns the md5 of $storageId
*/
public static function adjustStorageId($storageId) {
@@ -82,14 +86,19 @@ class Storage {
}
/**
- * @return string
+ * Get the numeric id for the storage
+ *
+ * @return int
*/
public function getNumericId() {
return $this->numericId;
}
/**
- * @return string|null
+ * Get the string id for the storage
+ *
+ * @param int $numericId
+ * @return string|null either the storage id string or null if the numeric id is not known
*/
public static function getStorageId($numericId) {
@@ -103,7 +112,10 @@ class Storage {
}
/**
- * @return string|null
+ * Get the numeric of the storage with the provided string id
+ *
+ * @param $storageId
+ * @return int|null either the numeric storage id or null if the storage id is not knwon
*/
public static function getNumericStorageId($storageId) {
$storageId = self::adjustStorageId($storageId);
@@ -118,6 +130,8 @@ class Storage {
}
/**
+ * Check if a string storage id is known
+ *
* @param string $storageId
* @return bool
*/
diff --git a/lib/private/files/cache/updater.php b/lib/private/files/cache/updater.php
index 66345350168..7df223eb037 100644
--- a/lib/private/files/cache/updater.php
+++ b/lib/private/files/cache/updater.php
@@ -27,6 +27,9 @@ namespace OC\Files\Cache;
/**
* Update the cache and propagate changes
+ *
+ * Unlike most other classes an Updater is not related to a specific storage but handles updates for all storages in a users filesystem.
+ * This is needed because the propagation of mtime and etags need to cross storage boundaries
*/
class Updater {
/**
@@ -45,25 +48,42 @@ class Updater {
protected $propagator;
/**
- * @param \OC\Files\View $view
+ * @param \OC\Files\View $view the view the updater works on, usually the view of the logged in user
*/
public function __construct($view) {
$this->view = $view;
$this->propagator = new ChangePropagator($view);
}
+ /**
+ * Disable updating the cache trough this updater
+ */
public function disable() {
$this->enabled = false;
}
+ /**
+ * Re-enable the updating of the cache trough this updater
+ */
public function enable() {
$this->enabled = true;
}
+ /**
+ * Get the propagator for etags and mtime for the view the updater works on
+ *
+ * @return ChangePropagator
+ */
public function getPropagator() {
return $this->propagator;
}
+ /**
+ * Propagate etag and mtime changes for the parent folders of $path up to the root of the filesystem
+ *
+ * @param string $path the path of the file to propagate the changes for
+ * @param int|null $time the timestamp to set as mtime for the parent folders, if left out the current time is used
+ */
public function propagate($path, $time = null) {
if (Scanner::isPartialFile($path)) {
return;
@@ -73,7 +93,7 @@ class Updater {
}
/**
- * Update the cache for $path
+ * Update the cache for $path and update the size, etag and mtime of the parent folders
*
* @param string $path
* @param int $time
@@ -99,7 +119,7 @@ class Updater {
}
/**
- * Remove $path from the cache
+ * Remove $path from the cache and update the size, etag and mtime of the parent folders
*
* @param string $path
*/
@@ -127,6 +147,8 @@ class Updater {
}
/**
+ * Rename a file or folder in the cache and update the size, etag and mtime of the parent folders
+ *
* @param string $source
* @param string $target
*/
@@ -176,7 +198,7 @@ class Updater {
}
/**
- * update the storage_mtime of the parent
+ * update the storage_mtime of the direct parent in the cache to the mtime from the storage
*
* @param \OC\Files\Storage\Storage $storage
* @param string $internalPath
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php
index 06c61fe6931..fc30b385e2e 100644
--- a/lib/private/files/storage/common.php
+++ b/lib/private/files/storage/common.php
@@ -545,6 +545,11 @@ abstract class Common implements Storage {
}
} else {
$source = $sourceStorage->fopen($sourceInternalPath, 'r');
+ // TODO: call fopen in a way that we execute again all storage wrappers
+ // to avoid that we bypass storage wrappers which perform important actions
+ // for this operation. Same is true for all other operations which
+ // are not the same as the original one.Once this is fixed we also
+ // need to adjust the encryption wrapper.
$target = $this->fopen($targetInternalPath, 'w');
list(, $result) = \OC_Helper::streamCopy($source, $target);
if ($result and $preserveMtime) {
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index 3d9d48c7763..0ddfde15047 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -346,8 +346,12 @@ class DAV extends Common {
curl_setopt($curl, CURLOPT_URL, $this->createBaseUri() . $this->encodePath($path));
curl_setopt($curl, CURLOPT_FILE, $fp);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
- curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
- curl_setopt($curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
+ if(defined('CURLOPT_PROTOCOLS')) {
+ curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
+ }
+ if(defined('CURLOPT_REDIR_PROTOCOLS')) {
+ curl_setopt($curl, CURLOPT_REDIR_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
+ }
if ($this->secure === true) {
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php
index 41a7f9e9242..1683ff1350f 100644
--- a/lib/private/files/storage/wrapper/encryption.php
+++ b/lib/private/files/storage/wrapper/encryption.php
@@ -61,19 +61,20 @@ class Encryption extends Wrapper {
/** @var IMountPoint */
private $mount;
- /** @var \OCP\Encryption\Keys\IStorage */
+
+ /** @var IStorage */
private $keyStorage;
- /** @var \OC\Encryption\Update */
+ /** @var Update */
private $update;
/**
* @param array $parameters
- * @param \OCP\Encryption\IManager $encryptionManager
- * @param \OC\Encryption\Util $util
- * @param \OCP\ILogger $logger
- * @param \OCP\Encryption\IFile $fileHelper
- * @param string $uid user who perform the read/write operation (null for public access)
+ * @param IManager $encryptionManager
+ * @param Util $util
+ * @param ILogger $logger
+ * @param IFile $fileHelper
+ * @param string $uid
* @param IStorage $keyStorage
* @param Update $update
*/
@@ -205,8 +206,7 @@ class Encryption extends Wrapper {
$encryptionModule = $this->getEncryptionModule($path);
if ($encryptionModule) {
- $this->keyStorage->deleteAllFileKeys($this->getFullPath($path),
- $encryptionModule->getId());
+ $this->keyStorage->deleteAllFileKeys($this->getFullPath($path));
}
return $this->storage->unlink($path);
@@ -220,23 +220,17 @@ class Encryption extends Wrapper {
* @return bool
*/
public function rename($path1, $path2) {
- $source = $this->getFullPath($path1);
- if ($this->util->isExcluded($source)) {
- return $this->storage->rename($path1, $path2);
- }
$result = $this->storage->rename($path1, $path2);
- if ($result) {
- $target = $this->getFullPath($path2);
- if (isset($this->unencryptedSize[$source])) {
- $this->unencryptedSize[$target] = $this->unencryptedSize[$source];
- }
- $keysRenamed = $this->keyStorage->renameKeys($source, $target);
- if ($keysRenamed &&
- dirname($source) !== dirname($target) &&
- $this->util->isFile($target)
- ) {
- $this->update->update($target);
+
+ if ($result && $this->encryptionManager->isEnabled()) {
+ $source = $this->getFullPath($path1);
+ if (!$this->util->isExcluded($source)) {
+ $target = $this->getFullPath($path2);
+ if (isset($this->unencryptedSize[$source])) {
+ $this->unencryptedSize[$target] = $this->unencryptedSize[$source];
+ }
+ $this->keyStorage->renameKeys($source, $target);
}
}
@@ -244,6 +238,45 @@ class Encryption extends Wrapper {
}
/**
+ * see http://php.net/manual/en/function.rmdir.php
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function rmdir($path) {
+ $result = $this->storage->rmdir($path);
+ if ($result && $this->encryptionManager->isEnabled()) {
+ $this->keyStorage->deleteAllFileKeys($this->getFullPath($path));
+ }
+
+ return $result;
+ }
+
+ /**
+ * check if a file can be read
+ *
+ * @param string $path
+ * @return bool
+ */
+ public function isReadable($path) {
+
+ $isReadable = true;
+
+ $metaData = $this->getMetaData($path);
+ if (
+ !$this->is_dir($path) &&
+ isset($metaData['encrypted']) &&
+ $metaData['encrypted'] === true
+ ) {
+ $fullPath = $this->getFullPath($path);
+ $module = $this->getEncryptionModule($path);
+ $isReadable = $module->isReadable($fullPath, $this->uid);
+ }
+
+ return $this->storage->isReadable($path) && $isReadable;
+ }
+
+ /**
* see http://php.net/manual/en/function.copy.php
*
* @param string $path1
@@ -251,21 +284,35 @@ class Encryption extends Wrapper {
* @return bool
*/
public function copy($path1, $path2) {
+
$fullPath1 = $this->getFullPath($path1);
+ $fullPath2 = $this->getFullPath($path2);
+
if ($this->util->isExcluded($fullPath1)) {
return $this->storage->copy($path1, $path2);
}
- $source = $this->getFullPath($path1);
$result = $this->storage->copy($path1, $path2);
- if ($result) {
- $target = $this->getFullPath($path2);
- $keysCopied = $this->keyStorage->copyKeys($source, $target);
- if ($keysCopied &&
- dirname($source) !== dirname($target) &&
- $this->util->isFile($target)
- ) {
- $this->update->update($target);
+
+ if ($result && $this->encryptionManager->isEnabled()) {
+ $source = $this->getFullPath($path1);
+ if (!$this->util->isExcluded($source)) {
+ $target = $this->getFullPath($path2);
+ $keysCopied = $this->keyStorage->copyKeys($source, $target);
+ if ($keysCopied &&
+ dirname($source) !== dirname($target) &&
+ $this->util->isFile($target)
+ ) {
+ $this->update->update($target);
+ }
+ }
+ $data = $this->getMetaData($path1);
+
+ if (isset($data['encrypted'])) {
+ $this->getCache()->put($path2, ['encrypted' => $data['encrypted']]);
+ }
+ if (isset($data['size'])) {
+ $this->updateUnencryptedSize($fullPath2, $data['size']);
}
}
@@ -357,6 +404,101 @@ class Encryption extends Wrapper {
}
/**
+ * @param \OCP\Files\Storage $sourceStorage
+ * @param string $sourceInternalPath
+ * @param string $targetInternalPath
+ * @param bool $preserveMtime
+ * @return bool
+ */
+ public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = true) {
+
+ // TODO clean this up once the underlying moveFromStorage in OC\Files\Storage\Wrapper\Common is fixed:
+ // - call $this->storage->moveFromStorage() instead of $this->copyBetweenStorage
+ // - copy the file cache update from $this->copyBetweenStorage to this method
+ // - remove $this->copyBetweenStorage
+
+ $result = $this->copyBetweenStorage($sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime, true);
+ if ($result) {
+ if ($sourceStorage->is_dir($sourceInternalPath)) {
+ $result &= $sourceStorage->rmdir($sourceInternalPath);
+ } else {
+ $result &= $sourceStorage->unlink($sourceInternalPath);
+ }
+ }
+ return $result;
+ }
+
+
+ /**
+ * @param \OCP\Files\Storage $sourceStorage
+ * @param string $sourceInternalPath
+ * @param string $targetInternalPath
+ * @param bool $preserveMtime
+ * @return bool
+ */
+ public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) {
+
+ // TODO clean this up once the underlying moveFromStorage in OC\Files\Storage\Wrapper\Common is fixed:
+ // - call $this->storage->moveFromStorage() instead of $this->copyBetweenStorage
+ // - copy the file cache update from $this->copyBetweenStorage to this method
+ // - remove $this->copyBetweenStorage
+
+ return $this->copyBetweenStorage($sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime, false);
+ }
+
+ /**
+ * copy file between two storages
+ *
+ * @param \OCP\Files\Storage $sourceStorage
+ * @param string $sourceInternalPath
+ * @param string $targetInternalPath
+ * @param bool $preserveMtime
+ * @param bool $isRename
+ * @return bool
+ */
+ private function copyBetweenStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime, $isRename) {
+ if ($sourceStorage->is_dir($sourceInternalPath)) {
+ $dh = $sourceStorage->opendir($sourceInternalPath);
+ $result = $this->mkdir($targetInternalPath);
+ if (is_resource($dh)) {
+ while ($result and ($file = readdir($dh)) !== false) {
+ if (!Filesystem::isIgnoredDir($file)) {
+ $result &= $this->copyFromStorage($sourceStorage, $sourceInternalPath . '/' . $file, $targetInternalPath . '/' . $file);
+ }
+ }
+ }
+ } else {
+ $source = $sourceStorage->fopen($sourceInternalPath, 'r');
+ $target = $this->fopen($targetInternalPath, 'w');
+ list(, $result) = \OC_Helper::streamCopy($source, $target);
+ fclose($source);
+ fclose($target);
+
+ if($result) {
+ if ($preserveMtime) {
+ $this->touch($targetInternalPath, $sourceStorage->filemtime($sourceInternalPath));
+ }
+ $isEncrypted = $this->mount->getOption('encrypt', true) ? 1 : 0;
+
+ // in case of a rename we need to manipulate the source cache because
+ // this information will be kept for the new target
+ if ($isRename) {
+ $sourceStorage->getCache()->put($sourceInternalPath, ['encrypted' => $isEncrypted]);
+ } else {
+ $this->getCache()->put($targetInternalPath, ['encrypted' => $isEncrypted]);
+ }
+ } else {
+ // delete partially written target file
+ $this->unlink($targetInternalPath);
+ // delete cache entry that was created by fopen
+ $this->getCache()->remove($targetInternalPath);
+ }
+ }
+ return (bool)$result;
+
+ }
+
+ /**
* get the path to a local version of the file.
* The local version of the file can be temporary and doesn't have to be persistent across requests
*
diff --git a/lib/private/helper.php b/lib/private/helper.php
index 144ccbfe228..981447c213b 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -394,6 +394,9 @@ class OC_Helper {
*/
public static function computerFileSize($str) {
$str = strtolower($str);
+ if (is_numeric($str)) {
+ return $str;
+ }
$bytes_array = array(
'b' => 1,
@@ -413,6 +416,8 @@ class OC_Helper {
if (preg_match('#([kmgtp]?b?)$#si', $str, $matches) && !empty($bytes_array[$matches[1]])) {
$bytes *= $bytes_array[$matches[1]];
+ } else {
+ return false;
}
$bytes = round($bytes);
diff --git a/lib/private/l10n.php b/lib/private/l10n.php
index b070a299a16..d367dbae690 100644
--- a/lib/private/l10n.php
+++ b/lib/private/l10n.php
@@ -385,6 +385,7 @@ class OC_L10N implements \OCP\IL10N {
if ($locale === null) {
$locale = self::findLanguage();
}
+ $locale = $this->transformToCLDRLocale($locale);
$options = array_merge(array('width' => 'long'), $options);
$width = $options['width'];
@@ -538,6 +539,7 @@ class OC_L10N implements \OCP\IL10N {
*/
public function getDateFormat() {
$locale = $this->getLanguageCode();
+ $locale = $this->transformToCLDRLocale($locale);
return Punic\Calendar::getDateFormat('short', $locale);
}
@@ -546,6 +548,15 @@ class OC_L10N implements \OCP\IL10N {
*/
public function getFirstWeekDay() {
$locale = $this->getLanguageCode();
+ $locale = $this->transformToCLDRLocale($locale);
return Punic\Calendar::getFirstWeekday($locale);
}
+
+ private function transformToCLDRLocale($locale) {
+ if ($locale === 'sr@latin') {
+ return 'sr_latn';
+ }
+
+ return $locale;
+ }
}
diff --git a/lib/private/lock/memcachelockingprovider.php b/lib/private/lock/memcachelockingprovider.php
new file mode 100644
index 00000000000..9c8c7235462
--- /dev/null
+++ b/lib/private/lock/memcachelockingprovider.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Lock;
+
+use OCP\Lock\ILockingProvider;
+use OCP\Lock\LockedException;
+use OCP\IMemcache;
+
+class MemcacheLockingProvider implements ILockingProvider {
+ /**
+ * @var \OCP\IMemcache
+ */
+ private $memcache;
+
+ /**
+ * @param \OCP\IMemcache $memcache
+ */
+ public function __construct(IMemcache $memcache) {
+ $this->memcache = $memcache;
+ }
+
+ /**
+ * @param string $path
+ * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE
+ * @return bool
+ */
+ public function isLocked($path, $type) {
+ $lockValue = $this->memcache->get($path);
+ if ($type === self::LOCK_SHARED) {
+ return $lockValue > 0;
+ } else if ($type === self::LOCK_EXCLUSIVE) {
+ return $lockValue === 'exclusive';
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * @param string $path
+ * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE
+ * @throws \OCP\Lock\LockedException
+ */
+ public function acquireLock($path, $type) {
+ if ($type === self::LOCK_SHARED) {
+ if (!$this->memcache->inc($path)) {
+ throw new LockedException($path);
+ }
+ } else {
+ $this->memcache->add($path, 0);
+ if (!$this->memcache->cas($path, 0, 'exclusive')) {
+ throw new LockedException($path);
+ }
+ }
+ }
+
+ /**
+ * @param string $path
+ * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE
+ */
+ public function releaseLock($path, $type) {
+ if ($type === self::LOCK_SHARED) {
+ $this->memcache->dec($path);
+ } else if ($type === self::LOCK_EXCLUSIVE) {
+ $this->memcache->cas($path, 'exclusive', 0);
+ }
+ }
+}
diff --git a/lib/private/log/errorhandler.php b/lib/private/log/errorhandler.php
index d3b3b134d11..b1b15f12ed7 100644
--- a/lib/private/log/errorhandler.php
+++ b/lib/private/log/errorhandler.php
@@ -23,10 +23,10 @@
namespace OC\Log;
-use OC\Log as LoggerInterface;
+use OCP\ILogger;
class ErrorHandler {
- /** @var LoggerInterface */
+ /** @var ILogger */
private static $logger;
/**
@@ -50,7 +50,7 @@ class ErrorHandler {
set_exception_handler(array($handler, 'onException'));
}
- public static function setLogger(LoggerInterface $logger) {
+ public static function setLogger(ILogger $logger) {
self::$logger = $logger;
}
diff --git a/lib/private/memcache/apc.php b/lib/private/memcache/apc.php
index b8b2b608124..50b942e7297 100644
--- a/lib/private/memcache/apc.php
+++ b/lib/private/memcache/apc.php
@@ -24,7 +24,13 @@
namespace OC\Memcache;
-class APC extends Cache {
+use OCP\IMemcache;
+
+class APC extends Cache implements IMemcache {
+ use CASTrait {
+ cas as casEmulated;
+ }
+
public function get($key) {
$result = apc_fetch($this->getPrefix() . $key, $success);
if (!$success) {
@@ -52,6 +58,58 @@ class APC extends Cache {
return apc_delete($iter);
}
+ /**
+ * Set a value in the cache if it's not already stored
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
+ * @return bool
+ */
+ public function add($key, $value, $ttl = 0) {
+ return apc_add($this->getPrefix() . $key, $value, $ttl);
+ }
+
+ /**
+ * Increase a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function inc($key, $step = 1) {
+ $this->add($key, 0);
+ return apc_inc($this->getPrefix() . $key, $step);
+ }
+
+ /**
+ * Decrease a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function dec($key, $step = 1) {
+ return apc_dec($this->getPrefix() . $key, $step);
+ }
+
+ /**
+ * Compare and set
+ *
+ * @param string $key
+ * @param mixed $old
+ * @param mixed $new
+ * @return bool
+ */
+ public function cas($key, $old, $new) {
+ // apc only does cas for ints
+ if (is_int($old) and is_int($new)) {
+ return apc_cas($this->getPrefix() . $key, $old, $new);
+ } else {
+ return $this->casEmulated($key, $old, $new);
+ }
+ }
+
static public function isAvailable() {
if (!extension_loaded('apc')) {
return false;
diff --git a/lib/private/memcache/arraycache.php b/lib/private/memcache/arraycache.php
index 939472dc518..2b1b87a9eb3 100644
--- a/lib/private/memcache/arraycache.php
+++ b/lib/private/memcache/arraycache.php
@@ -22,7 +22,9 @@
namespace OC\Memcache;
-class ArrayCache extends Cache {
+use OCP\IMemcache;
+
+class ArrayCache extends Cache implements IMemcache {
/** @var array Array with the cached data */
protected $cachedData = array();
@@ -77,6 +79,74 @@ class ArrayCache extends Cache {
}
/**
+ * Set a value in the cache if it's not already stored
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
+ * @return bool
+ */
+ public function add($key, $value, $ttl = 0) {
+ // since this cache is not shared race conditions aren't an issue
+ if ($this->hasKey($key)) {
+ return false;
+ } else {
+ return $this->set($key, $value, $ttl);
+ }
+ }
+
+ /**
+ * Increase a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function inc($key, $step = 1) {
+ $oldValue = $this->get($key);
+ if (is_int($oldValue)) {
+ $this->set($key, $oldValue + $step);
+ return $oldValue + $step;
+ } else {
+ $success = $this->add($key, $step);
+ return ($success) ? $step : false;
+ }
+ }
+
+ /**
+ * Decrease a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function dec($key, $step = 1) {
+ $oldValue = $this->get($key);
+ if (is_int($oldValue)) {
+ $this->set($key, $oldValue - $step);
+ return $oldValue - $step;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Compare and set
+ *
+ * @param string $key
+ * @param mixed $old
+ * @param mixed $new
+ * @return bool
+ */
+ public function cas($key, $old, $new) {
+ if ($this->get($key) === $old) {
+ return $this->set($key, $new);
+ } else {
+ return false;
+ }
+ }
+
+ /**
* {@inheritDoc}
*/
static public function isAvailable() {
diff --git a/lib/private/memcache/castrait.php b/lib/private/memcache/castrait.php
new file mode 100644
index 00000000000..c52538023fb
--- /dev/null
+++ b/lib/private/memcache/castrait.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Memcache;
+
+trait CASTrait {
+ abstract public function get($key);
+
+ abstract public function set($key, $value, $ttl = 0);
+
+ abstract public function remove($key);
+
+ abstract public function add($key, $value, $ttl = 0);
+
+ /**
+ * Compare and set
+ *
+ * @param string $key
+ * @param mixed $old
+ * @param mixed $new
+ * @return bool
+ */
+ public function cas($key, $old, $new) {
+ //no native cas, emulate with locking
+ if ($this->add($key . '_lock', true)) {
+ if ($this->get($key) === $old) {
+ $this->set($key, $new);
+ $this->remove($key . '_lock');
+ return true;
+ } else {
+ $this->remove($key . '_lock');
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
+}
diff --git a/lib/private/memcache/memcached.php b/lib/private/memcache/memcached.php
index a2b3440317f..cf1d651b551 100644
--- a/lib/private/memcache/memcached.php
+++ b/lib/private/memcache/memcached.php
@@ -24,7 +24,11 @@
namespace OC\Memcache;
-class Memcached extends Cache {
+use OCP\IMemcache;
+
+class Memcached extends Cache implements IMemcache {
+ use CASTrait;
+
/**
* @var \Memcached $cache
*/
@@ -100,6 +104,41 @@ class Memcached extends Cache {
return true;
}
+ /**
+ * Set a value in the cache if it's not already stored
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
+ * @return bool
+ */
+ public function add($key, $value, $ttl = 0) {
+ return self::$cache->add($this->getPrefix() . $key, $value, $ttl);
+ }
+
+ /**
+ * Increase a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function inc($key, $step = 1) {
+ $this->add($key, 0);
+ return self::$cache->increment($this->getPrefix() . $key, $step);
+ }
+
+ /**
+ * Decrease a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function dec($key, $step = 1) {
+ return self::$cache->decrement($this->getPrefix() . $key, $step);
+ }
+
static public function isAvailable() {
return extension_loaded('memcached');
}
diff --git a/lib/private/memcache/redis.php b/lib/private/memcache/redis.php
index e7425726b2b..78d061404ef 100644
--- a/lib/private/memcache/redis.php
+++ b/lib/private/memcache/redis.php
@@ -23,7 +23,10 @@
namespace OC\Memcache;
-class Redis extends Cache {
+use OCP\IMemcache;
+
+class Redis extends Cache implements IMemcache {
+ use CASTrait;
/**
* @var \Redis $cache
@@ -52,10 +55,10 @@ class Redis extends Cache {
$timeout = 0.0; // unlimited
}
- self::$cache->connect( $host, $port, $timeout );
+ self::$cache->connect($host, $port, $timeout);
if (isset($config['dbindex'])) {
- self::$cache->select( $config['dbindex'] );
+ self::$cache->select($config['dbindex']);
}
}
}
@@ -94,19 +97,59 @@ class Redis extends Cache {
} else {
return false;
}
-
}
public function clear($prefix = '') {
- $prefix = $this->getNamespace() . $prefix.'*';
+ $prefix = $this->getNamespace() . $prefix . '*';
$it = null;
self::$cache->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY);
- while($keys = self::$cache->scan($it, $prefix)) {
+ while ($keys = self::$cache->scan($it, $prefix)) {
self::$cache->delete($keys);
}
return true;
}
+ /**
+ * Set a value in the cache if it's not already stored
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
+ * @return bool
+ */
+ public function add($key, $value, $ttl = 0) {
+ // dont encode ints for inc/dec
+ if (!is_int($value)) {
+ $value = json_encode($value);
+ }
+ return self::$cache->setnx($this->getPrefix() . $key, $value);
+ }
+
+ /**
+ * Increase a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function inc($key, $step = 1) {
+ return self::$cache->incrBy($this->getNamespace() . $key, $step);
+ }
+
+ /**
+ * Decrease a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function dec($key, $step = 1) {
+ if (!$this->hasKey($key)) {
+ return false;
+ }
+ return self::$cache->decrBy($this->getNamespace() . $key, $step);
+ }
+
static public function isAvailable() {
return extension_loaded('redis');
}
diff --git a/lib/private/memcache/xcache.php b/lib/private/memcache/xcache.php
index 33cea23e62b..0be79d06ed9 100644
--- a/lib/private/memcache/xcache.php
+++ b/lib/private/memcache/xcache.php
@@ -25,11 +25,15 @@
namespace OC\Memcache;
+use OCP\IMemcache;
+
/**
* See http://xcache.lighttpd.net/wiki/XcacheApi for provided constants and
* functions etc.
*/
-class XCache extends Cache {
+class XCache extends Cache implements IMemcache {
+ use CASTrait;
+
/**
* entries in XCache gets namespaced to prevent collisions between ownCloud instances and users
*/
@@ -38,28 +42,28 @@ class XCache extends Cache {
}
public function get($key) {
- return xcache_get($this->getNamespace().$key);
+ return xcache_get($this->getNamespace() . $key);
}
- public function set($key, $value, $ttl=0) {
- if($ttl>0) {
- return xcache_set($this->getNamespace().$key, $value, $ttl);
- }else{
- return xcache_set($this->getNamespace().$key, $value);
+ public function set($key, $value, $ttl = 0) {
+ if ($ttl > 0) {
+ return xcache_set($this->getNamespace() . $key, $value, $ttl);
+ } else {
+ return xcache_set($this->getNamespace() . $key, $value);
}
}
public function hasKey($key) {
- return xcache_isset($this->getNamespace().$key);
+ return xcache_isset($this->getNamespace() . $key);
}
public function remove($key) {
- return xcache_unset($this->getNamespace().$key);
+ return xcache_unset($this->getNamespace() . $key);
}
- public function clear($prefix='') {
+ public function clear($prefix = '') {
if (function_exists('xcache_unset_by_prefix')) {
- return xcache_unset_by_prefix($this->getNamespace().$prefix);
+ return xcache_unset_by_prefix($this->getNamespace() . $prefix);
} else {
// Since we can not clear by prefix, we just clear the whole cache.
xcache_clear_cache(\XC_TYPE_VAR, 0);
@@ -67,11 +71,49 @@ class XCache extends Cache {
return true;
}
- static public function isAvailable(){
+ /**
+ * Set a value in the cache if it's not already stored
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
+ * @return bool
+ */
+ public function add($key, $value, $ttl = 0) {
+ if ($this->hasKey($key)) {
+ return false;
+ } else {
+ return $this->set($key, $value, $ttl);
+ }
+ }
+
+ /**
+ * Increase a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function inc($key, $step = 1) {
+ return xcache_inc($this->getPrefix() . $key, $step);
+ }
+
+ /**
+ * Decrease a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ */
+ public function dec($key, $step = 1) {
+ return xcache_dec($this->getPrefix() . $key, $step);
+ }
+
+ static public function isAvailable() {
if (!extension_loaded('xcache')) {
return false;
}
- if (\OC::$CLI) {
+ if (\OC::$CLI && !getenv('XCACHE_TEST')) {
return false;
}
if (!function_exists('xcache_unset_by_prefix') && ini_get('xcache.admin.enable_auth')) {
@@ -80,7 +122,7 @@ class XCache extends Cache {
// AND administration functions are password-protected.
return false;
}
- $var_size = (int) ini_get('xcache.var_size');
+ $var_size = (int)ini_get('xcache.var_size');
if (!$var_size) {
return false;
}
diff --git a/lib/private/share/mailnotifications.php b/lib/private/share/mailnotifications.php
index 1c15b6e3e1d..7120d8493b0 100644
--- a/lib/private/share/mailnotifications.php
+++ b/lib/private/share/mailnotifications.php
@@ -122,6 +122,11 @@ class MailNotifications {
$args = array(
'dir' => $filename,
);
+ } else if (strpos($filename, '/')) {
+ $args = array(
+ 'dir' => '/' . dirname($filename),
+ 'scrollto' => basename($filename),
+ );
} else {
$args = array(
'dir' => '/',
diff --git a/lib/private/share/searchresultsorter.php b/lib/private/share/searchresultsorter.php
index 375e05d0bba..bde2fd05073 100644
--- a/lib/private/share/searchresultsorter.php
+++ b/lib/private/share/searchresultsorter.php
@@ -23,6 +23,8 @@
*/
namespace OC\Share;
+use OCP\ILogger;
+
class SearchResultSorter {
private $search;
private $encoding;
@@ -34,9 +36,9 @@ class SearchResultSorter {
* @param string $key the array key containing the value that should be compared
* against
* @param string $encoding optional, encoding to use, defaults to UTF-8
- * @param \OC\Log $log optional
+ * @param ILogger $log optional
*/
- public function __construct($search, $key, \OC\Log $log = null, $encoding = 'UTF-8') {
+ public function __construct($search, $key, ILogger $log = null, $encoding = 'UTF-8') {
$this->encoding = $encoding;
$this->key = $key;
$this->log = $log;
diff --git a/lib/private/share/share.php b/lib/private/share/share.php
index 38f763bfe87..027c518f9f1 100644
--- a/lib/private/share/share.php
+++ b/lib/private/share/share.php
@@ -333,15 +333,15 @@ class Share extends Constants {
$shares = array();
$fileDependent = false;
+ $where = 'WHERE';
+ $fileDependentWhere = '';
if ($itemType === 'file' || $itemType === 'folder') {
$fileDependent = true;
$column = 'file_source';
- $where = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid` ';
- $where .= 'INNER JOIN `*PREFIX*storages` ON `numeric_id` = `*PREFIX*filecache`.`storage` ';
- $where .= ' WHERE';
+ $fileDependentWhere = 'INNER JOIN `*PREFIX*filecache` ON `file_source` = `*PREFIX*filecache`.`fileid` ';
+ $fileDependentWhere .= 'INNER JOIN `*PREFIX*storages` ON `numeric_id` = `*PREFIX*filecache`.`storage` ';
} else {
$column = 'item_source';
- $where = 'WHERE';
}
$select = self::createSelectStatement(self::FORMAT_NONE, $fileDependent);
@@ -364,7 +364,7 @@ class Share extends Constants {
$arguments[] = $owner;
}
- $query = \OC_DB::prepare('SELECT ' . $select . ' FROM `*PREFIX*share` '. $where);
+ $query = \OC_DB::prepare('SELECT ' . $select . ' FROM `*PREFIX*share` '. $fileDependentWhere . $where);
$result = \OC_DB::executeAudited($query, $arguments);
@@ -380,7 +380,7 @@ class Share extends Constants {
$groups = \OC_Group::getUserGroups($user);
if (!empty($groups)) {
- $where = 'WHERE `' . $column . '` = ? AND `item_type` = ? AND `share_with` in (?)';
+ $where = $fileDependentWhere . ' WHERE `' . $column . '` = ? AND `item_type` = ? AND `share_with` in (?)';
$arguments = array($itemSource, $itemType, $groups);
$types = array(null, null, \Doctrine\DBAL\Connection::PARAM_STR_ARRAY);
@@ -394,7 +394,7 @@ class Share extends Constants {
// class isn't static anymore...
$conn = \OC_DB::getConnection();
$result = $conn->executeQuery(
- 'SELECT * FROM `*PREFIX*share` ' . $where,
+ 'SELECT ' . $select . ' FROM `*PREFIX*share` ' . $where,
$arguments,
$types
);
@@ -2100,7 +2100,9 @@ class Share extends Constants {
\OC_Log::write('OCP\Share', sprintf($message, $itemSourceName, $shareWith), \OC_Log::ERROR);
throw new \Exception($message_t);
}
+ }
+ if ($checkReshare && $checkReshare['uid_owner'] !== \OC_User::getUser()) {
// Check if share permissions is granted
if (self::isResharingAllowed() && (int)$checkReshare['permissions'] & \OCP\Constants::PERMISSION_SHARE) {
if (~(int)$checkReshare['permissions'] & $permissions) {
diff --git a/lib/private/tags.php b/lib/private/tags.php
index 6edd7b2f980..09cb7618c02 100644
--- a/lib/private/tags.php
+++ b/lib/private/tags.php
@@ -257,6 +257,7 @@ class Tags implements \OCP\ITags {
*/
public function getIdsForTag($tag) {
$result = null;
+ $tagId = false;
if(is_numeric($tag)) {
$tagId = $tag;
} elseif(is_string($tag)) {
diff --git a/lib/private/templatelayout.php b/lib/private/templatelayout.php
index 448276ca7fe..0e1a8f33c45 100644
--- a/lib/private/templatelayout.php
+++ b/lib/private/templatelayout.php
@@ -85,6 +85,7 @@ class OC_TemplateLayout extends OC_Template {
$this->assign('updateAvailable', true);
$this->assign('updateVersion', $data['versionstring']);
$this->assign('updateLink', $data['web']);
+ \OCP\Util::addScript('core', 'update-notification');
} else {
$this->assign('updateAvailable', false); // No update available or not an admin user
}
diff --git a/lib/private/updater.php b/lib/private/updater.php
index 01d4b943bd5..59b1c0a8f66 100644
--- a/lib/private/updater.php
+++ b/lib/private/updater.php
@@ -37,6 +37,7 @@ use OC_Installer;
use OC_Util;
use OCP\IConfig;
use OC\Setup;
+use OCP\ILogger;
/**
* Class that handles autoupdating of ownCloud
@@ -49,7 +50,7 @@ use OC\Setup;
*/
class Updater extends BasicEmitter {
- /** @var \OC\Log $log */
+ /** @var ILogger $log */
private $log;
/** @var \OC\HTTPHelper $helper */
@@ -67,9 +68,9 @@ class Updater extends BasicEmitter {
/**
* @param HTTPHelper $httpHelper
* @param IConfig $config
- * @param \OC\Log $log
+ * @param ILogger $log
*/
- public function __construct(HTTPHelper $httpHelper, IConfig $config, $log = null) {
+ public function __construct(HTTPHelper $httpHelper, IConfig $config, ILogger $log = null) {
$this->httpHelper = $httpHelper;
$this->log = $log;
$this->config = $config;
diff --git a/lib/private/util.php b/lib/private/util.php
index 102dc8c59db..367199f7735 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -671,8 +671,6 @@ class OC_Util {
'PDO::ATTR_DRIVER_NAME' => 'PDO'
),
'ini' => [
- 'mbstring.func_overload' => 0,
- 'output_buffering' => false,
'default_charset' => 'UTF-8',
],
);
@@ -686,6 +684,7 @@ class OC_Util {
* approach to check for these values we should re-enable those
* checks.
*/
+ $iniWrapper = \OC::$server->getIniWrapper();
if (!self::runningOnHhvm()) {
foreach ($dependencies['classes'] as $class => $module) {
if (!class_exists($class)) {
@@ -703,7 +702,6 @@ class OC_Util {
}
}
foreach ($dependencies['ini'] as $setting => $expected) {
- $iniWrapper = \OC::$server->getIniWrapper();
if (is_bool($expected)) {
if ($iniWrapper->getBool($setting) !== $expected) {
$invalidIniSettings[] = [$setting, $expected];
@@ -740,31 +738,19 @@ class OC_Util {
$webServerRestart = true;
}
- if (version_compare(phpversion(), '5.4.0', '<')) {
- $errors[] = array(
- 'error' => $l->t('PHP %s or higher is required.', '5.4.0'),
- 'hint' => $l->t('Please ask your server administrator to update PHP to the latest version.'
- . ' Your PHP version is no longer supported by ownCloud and the PHP community.')
- );
- $webServerRestart = true;
- }
-
/**
- * PHP 5.6 ships with a PHP setting which throws notices by default for a
- * lot of endpoints. Thus we need to ensure that the value is set to -1
- *
- * FIXME: Due to https://github.com/owncloud/core/pull/13593#issuecomment-71178078
- * this check is disabled for HHVM at the moment. This should get re-evaluated
- * at a later point.
+ * The mbstring.func_overload check can only be performed if the mbstring
+ * module is installed as it will return null if the checking setting is
+ * not available and thus a check on the boolean value fails.
*
- * @link https://github.com/owncloud/core/issues/13592
+ * TODO: Should probably be implemented in the above generic dependency
+ * check somehow in the long-term.
*/
- if(version_compare(phpversion(), '5.6.0', '>=') &&
- !self::runningOnHhvm() &&
- \OC::$server->getIniWrapper()->getNumeric('always_populate_raw_post_data') !== -1) {
+ if($iniWrapper->getBool('mbstring.func_overload') !== null &&
+ $iniWrapper->getBool('mbstring.func_overload') === true) {
$errors[] = array(
- 'error' => $l->t('PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.'),
- 'hint' => $l->t('To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini')
+ 'error' => $l->t('mbstring.func_overload is set to "%s" instead to the expected value "0"', [$iniWrapper->getString('mbstring.func_overload')]),
+ 'hint' => $l->t('To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini')
);
}
diff --git a/lib/public/backgroundjob/ijob.php b/lib/public/backgroundjob/ijob.php
index 3a1be86ef4e..a24a5434521 100644
--- a/lib/public/backgroundjob/ijob.php
+++ b/lib/public/backgroundjob/ijob.php
@@ -22,6 +22,7 @@
*/
namespace OCP\BackgroundJob;
+use OCP\ILogger;
/**
* Interface IJob
@@ -34,11 +35,11 @@ interface IJob {
* Run the background job with the registered argument
*
* @param \OCP\BackgroundJob\IJobList $jobList The job list that manages the state of this job
- * @param \OC\Log $logger
+ * @param ILogger $logger
* @return void
* @since 7.0.0
*/
- public function execute($jobList, $logger = null);
+ public function execute($jobList, ILogger $logger = null);
/**
* Get the id of the background job
diff --git a/lib/public/encryption/exceptions/genericencryptionexception.php b/lib/public/encryption/exceptions/genericencryptionexception.php
index be96450d431..e97f00c88bf 100644
--- a/lib/public/encryption/exceptions/genericencryptionexception.php
+++ b/lib/public/encryption/exceptions/genericencryptionexception.php
@@ -30,17 +30,26 @@ namespace OCP\Encryption\Exceptions;
*/
class GenericEncryptionException extends \Exception {
+ /** @var string */
+ protected $hint;
+
/**
* @param string $message
* @param int $code
* @param \Exception $previous
* @since 8.1.0
*/
- public function __construct($message = '', $code = 0, \Exception $previous = null) {
+ public function __construct($message = '', $code = 0, \Exception $previous = null, $hint = '') {
if (empty($message)) {
$message = 'Unspecified encryption exception';
}
parent::__construct($message, $code, $previous);
+
+ $this->hint = $hint;
+ }
+
+ public function getHint() {
+ return $this->hint;
}
}
diff --git a/lib/public/encryption/iencryptionmodule.php b/lib/public/encryption/iencryptionmodule.php
index 0dda042d759..975e57744e9 100644
--- a/lib/public/encryption/iencryptionmodule.php
+++ b/lib/public/encryption/iencryptionmodule.php
@@ -119,4 +119,16 @@ interface IEncryptionModule {
* @since 8.1.0
*/
public function getUnencryptedBlockSize();
+
+ /**
+ * check if the encryption module is able to read the file,
+ * e.g. if all encryption keys exists
+ *
+ * @param string $path
+ * @param string $uid user for whom we want to check if he can read the file
+ * @return boolean
+ * @since 8.1.0
+ */
+ public function isReadable($path, $uid);
+
}
diff --git a/lib/public/encryption/keys/istorage.php b/lib/public/encryption/keys/istorage.php
index 752c073375d..17677814107 100644
--- a/lib/public/encryption/keys/istorage.php
+++ b/lib/public/encryption/keys/istorage.php
@@ -129,12 +129,11 @@ interface IStorage {
* delete all file keys for a given file
*
* @param string $path to the file
- * @param string $encryptionModuleId
*
* @return boolean False when the keys could not be deleted
* @since 8.1.0
*/
- public function deleteAllFileKeys($path, $encryptionModuleId);
+ public function deleteAllFileKeys($path);
/**
* delete system-wide encryption keys not related to a specific user,
diff --git a/lib/public/files/storage.php b/lib/public/files/storage.php
index 17e09af9832..b89fb49a4be 100644
--- a/lib/public/files/storage.php
+++ b/lib/public/files/storage.php
@@ -45,7 +45,6 @@ interface Storage {
* $parameters is a free form array with the configuration options needed to construct the storage
*
* @param array $parameters
- * @return void
* @since 6.0.0
*/
public function __construct($parameters);
diff --git a/lib/public/imemcache.php b/lib/public/imemcache.php
new file mode 100644
index 00000000000..56a33c9572f
--- /dev/null
+++ b/lib/public/imemcache.php
@@ -0,0 +1,78 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+/**
+ * Public interface of ownCloud for apps to use.
+ * Cache interface
+ *
+ */
+
+// use OCP namespace for all classes that are considered public.
+// This means that they should be used by apps instead of the internal ownCloud classes
+namespace OCP;
+
+/**
+ * This interface defines method for accessing the file based user cache.
+ *
+ * @since 8.1.0
+ */
+interface IMemcache extends ICache {
+ /**
+ * Set a value in the cache if it's not already stored
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
+ * @return bool
+ * @since 8.0.0
+ */
+ public function add($key, $value, $ttl = 0);
+
+ /**
+ * Increase a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ * @since 8.0.0
+ */
+ public function inc($key, $step = 1);
+
+ /**
+ * Decrease a stored number
+ *
+ * @param string $key
+ * @param int $step
+ * @return int | bool
+ * @since 8.0.0
+ */
+ public function dec($key, $step = 1);
+
+ /**
+ * Compare and set
+ *
+ * @param string $key
+ * @param mixed $old
+ * @param mixed $new
+ * @return bool
+ */
+ public function cas($key, $old, $new);
+}
diff --git a/lib/public/lock/ilockingprovider.php b/lib/public/lock/ilockingprovider.php
new file mode 100644
index 00000000000..0b17580faac
--- /dev/null
+++ b/lib/public/lock/ilockingprovider.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCP\Lock;
+
+interface ILockingProvider {
+ const LOCK_SHARED = 1;
+ const LOCK_EXCLUSIVE = 2;
+
+ /**
+ * @param string $path
+ * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE
+ * @return bool
+ */
+ public function isLocked($path, $type);
+
+ /**
+ * @param string $path
+ * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE
+ * @throws \OCP\Lock\LockedException
+ */
+ public function acquireLock($path, $type);
+
+ /**
+ * @param string $path
+ * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE
+ */
+ public function releaseLock($path, $type);
+}
diff --git a/lib/public/lock/lockedexception.php b/lib/public/lock/lockedexception.php
new file mode 100644
index 00000000000..87f7164b7e0
--- /dev/null
+++ b/lib/public/lock/lockedexception.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCP\Lock;
+
+class LockedException extends \Exception {
+ /**
+ * @var string
+ */
+ private $path;
+
+ /**
+ * LockedException constructor.
+ *
+ * @param string $path
+ */
+ public function __construct($path) {
+ parent::__construct($path . ' is locked');
+ $this->path = $path;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPath() {
+ return $this->path;
+ }
+}
diff --git a/settings/admin.php b/settings/admin.php
index e8d9c6530db..5720bd9f99c 100644
--- a/settings/admin.php
+++ b/settings/admin.php
@@ -141,9 +141,10 @@ if ($request->getServerProtocol() !== 'https' || !OC_Util::isAnnotationsWorking
$formsAndMore[] = array('anchor' => 'security-warning', 'section-name' => $l->t('Security & setup warnings'));
}
$formsAndMore[] = array('anchor' => 'shareAPI', 'section-name' => $l->t('Sharing'));
+$formsAndMore[] = ['anchor' => 'encryptionAPI', 'section-name' => $l->t('Server-side encryption')];
// Prioritize fileSharingSettings and files_external and move updater to the version
-$fileSharingSettings = $filesExternal = $updaterAppPanel = '';
+$fileSharingSettings = $filesExternal = $updaterAppPanel = $ocDefaultEncryptionModulePanel = '';
foreach ($forms as $index => $form) {
if (strpos($form, 'id="fileSharingSettings"')) {
$fileSharingSettings = $form;
@@ -160,6 +161,11 @@ foreach ($forms as $index => $form) {
unset($forms[$index]);
continue;
}
+ if (strpos($form, 'id="ocDefaultEncryptionModule"')) {
+ $ocDefaultEncryptionModulePanel = $form;
+ unset($forms[$index]);
+ continue;
+ }
}
if ($filesExternal) {
$formsAndMore[] = array('anchor' => 'files_external', 'section-name' => $l->t('External Storage'));
@@ -168,6 +174,7 @@ if ($filesExternal) {
$template->assign('fileSharingSettings', $fileSharingSettings);
$template->assign('filesExternal', $filesExternal);
$template->assign('updaterAppPanel', $updaterAppPanel);
+$template->assign('ocDefaultEncryptionModulePanel', $ocDefaultEncryptionModulePanel);
$formsMap = array_map(function ($form) {
if (preg_match('%(<h2[^>]*>.*?</h2>)%i', $form, $regs)) {
@@ -190,7 +197,6 @@ $formsMap = array_map(function ($form) {
$formsAndMore = array_merge($formsAndMore, $formsMap);
// add bottom hardcoded forms from the template
-$formsAndMore[] = ['anchor' => 'encryptionAPI', 'section-name' => $l->t('Server-side encryption')];
$formsAndMore[] = ['anchor' => 'backgroundjobs', 'section-name' => $l->t('Cron')];
$formsAndMore[] = ['anchor' => 'mail_general_settings', 'section-name' => $l->t('Email server')];
$formsAndMore[] = ['anchor' => 'log-section', 'section-name' => $l->t('Log')];
diff --git a/settings/changepassword/controller.php b/settings/changepassword/controller.php
index 4a68636d3f8..69b7ca710a9 100644
--- a/settings/changepassword/controller.php
+++ b/settings/changepassword/controller.php
@@ -89,7 +89,8 @@ class Controller {
$crypt,
\OC::$server->getLogger(),
\OC::$server->getUserSession(),
- \OC::$server->getConfig());
+ \OC::$server->getConfig(),
+ \OC::$server->getUserManager());
$keyManager = new \OCA\Encryption\KeyManager(
$keyStorage,
$crypt,
@@ -113,30 +114,27 @@ class Controller {
$recoveryEnabledForUser = false;
if ($recoveryAdminEnabled) {
$validRecoveryPassword = $keyManager->checkRecoveryPassword($recoveryPassword);
- $recoveryEnabledForUser = $recovery->isRecoveryEnabledForUser();
+ $recoveryEnabledForUser = $recovery->isRecoveryEnabledForUser($username);
}
+ $l = new \OC_L10n('settings');
if ($recoveryEnabledForUser && $recoveryPassword === '') {
- $l = new \OC_L10n('settings');
\OC_JSON::error(array('data' => array(
'message' => $l->t('Please provide an admin recovery password, otherwise all user data will be lost')
)));
} elseif ($recoveryEnabledForUser && ! $validRecoveryPassword) {
- $l = new \OC_L10n('settings');
\OC_JSON::error(array('data' => array(
'message' => $l->t('Wrong admin recovery password. Please check the password and try again.')
)));
} else { // now we know that everything is fine regarding the recovery password, let's try to change the password
$result = \OC_User::setPassword($username, $password, $recoveryPassword);
if (!$result && $recoveryEnabledForUser) {
- $l = new \OC_L10n('settings');
\OC_JSON::error(array(
"data" => array(
"message" => $l->t("Backend doesn't support password change, but the user's encryption key was successfully updated.")
)
));
} elseif (!$result && !$recoveryEnabledForUser) {
- $l = new \OC_L10n('settings');
\OC_JSON::error(array("data" => array( "message" => $l->t("Unable to change password" ) )));
} else {
\OC_JSON::success(array("data" => array( "username" => $username )));
@@ -147,7 +145,6 @@ class Controller {
if (!is_null($password) && \OC_User::setPassword($username, $password)) {
\OC_JSON::success(array('data' => array('username' => $username)));
} else {
- $l = new \OC_L10n('settings');
\OC_JSON::error(array('data' => array('message' => $l->t('Unable to change password'))));
}
}
diff --git a/settings/controller/certificatecontroller.php b/settings/controller/certificatecontroller.php
index d9026cd42af..ea20b7c587f 100644
--- a/settings/controller/certificatecontroller.php
+++ b/settings/controller/certificatecontroller.php
@@ -54,6 +54,9 @@ class CertificateController extends Controller {
/**
* Add a new personal root certificate to the users' trust store
+ *
+ * @NoAdminRequired
+ * @NoSubadminRequired
* @return array
*/
public function addPersonalRootCertificate() {
@@ -82,6 +85,9 @@ class CertificateController extends Controller {
/**
* Removes a personal root certificate from the users' trust store
+ *
+ * @NoAdminRequired
+ * @NoSubadminRequired
* @param string $certificateIdentifier
* @return DataResponse
*/
diff --git a/settings/controller/userscontroller.php b/settings/controller/userscontroller.php
index 46782a0cace..d0b5267e3c8 100644
--- a/settings/controller/userscontroller.php
+++ b/settings/controller/userscontroller.php
@@ -122,10 +122,10 @@ class UsersController extends Controller {
$this->subAdminFactory = $subAdminFactory;
// check for encryption state - TODO see formatUserForIndex
- $this->isEncryptionAppEnabled = $appManager->isEnabledForUser('files_encryption');
+ $this->isEncryptionAppEnabled = $appManager->isEnabledForUser('encryption');
if($this->isEncryptionAppEnabled) {
// putting this directly in empty is possible in PHP 5.5+
- $result = $config->getAppValue('files_encryption', 'recoveryAdminEnabled', 0);
+ $result = $config->getAppValue('encryption', 'recoveryAdminEnabled', 0);
$this->isRestoreEnabled = !empty($result);
}
}
@@ -148,7 +148,7 @@ class UsersController extends Controller {
if ($this->isEncryptionAppEnabled) {
if ($this->isRestoreEnabled) {
// check for the users recovery setting
- $recoveryMode = $this->config->getUserValue($user->getUID(), 'files_encryption', 'recovery_enabled', '0');
+ $recoveryMode = $this->config->getUserValue($user->getUID(), 'encryption', 'recoveryEnabled', '0');
// method call inside empty is possible with PHP 5.5+
$recoveryModeEnabled = !empty($recoveryMode);
if ($recoveryModeEnabled) {
@@ -504,7 +504,12 @@ class UsersController extends Controller {
);
}
- $this->config->setUserValue($id, 'settings', 'email', $mailAddress);
+ // delete user value if email address is empty
+ if($mailAddress === '') {
+ $this->config->deleteUserValue($id, 'settings', 'email');
+ } else {
+ $this->config->setUserValue($id, 'settings', 'email', $mailAddress);
+ }
return new DataResponse(
array(
diff --git a/settings/css/settings.css b/settings/css/settings.css
index f610e96eea8..e0fe9b446be 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -116,7 +116,14 @@ li.active span.utils .delete:hover, li.active .rename:hover { opacity: 1; }
span.utils .delete, .rename { display: none; }
#app-navigation ul li.active > span.utils .delete,
#app-navigation ul li.active > span.utils .rename { display: block; }
-#usersearchform { position: absolute; top: 2px; right: 250px; }
+#usersearchform {
+ position: absolute;
+ top: 2px;
+ right: 0;
+}
+#usersearchform input {
+ width: 150px;
+}
#usersearchform label { font-weight: 700; }
/* display table at full width */
@@ -368,8 +375,15 @@ table.grid td.date{
display: inline-block;
}
+/* correctly display help icons next to headings */
.icon-info {
padding: 11px 20px;
+ vertical-align: text-bottom;
+}
+#shareAPI h2,
+#encryptionAPI h2,
+#mail_general_settings h2 {
+ display: inline-block;
}
.mail_settings p label:first-child {
@@ -487,3 +501,7 @@ doesnotexist:-o-prefocus, .strengthify-wrapper {
#encryptionModules {
padding: 10px;
}
+
+#warning {
+ color: red;
+}
diff --git a/settings/help.php b/settings/help.php
index 116c2083b64..aa89277d883 100644
--- a/settings/help.php
+++ b/settings/help.php
@@ -36,10 +36,10 @@ OC_App::setActiveNavigationEntry( "help" );
if(isset($_GET['mode']) and $_GET['mode'] === 'admin') {
$url=OC_Helper::linkToAbsolute( 'core', 'doc/admin/index.html' );
$style1='';
- $style2=' pressed';
+ $style2=' active';
}else{
$url=OC_Helper::linkToAbsolute( 'core', 'doc/user/index.html' );
- $style1=' pressed';
+ $style1=' active';
$style2='';
}
diff --git a/settings/js/admin.js b/settings/js/admin.js
index 9cdb7f5b0f1..8f705b9048d 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -54,20 +54,15 @@ $(document).ready(function(){
$('#shareAPI p:not(#enable)').toggleClass('hidden', !this.checked);
});
- $('#encryptionEnabled').change(function() {
- $('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden');
+ $('#enableEncryption').change(function() {
+ $('#encryptionAPI div#EncryptionWarning').toggleClass('hidden');
});
- $('#encryptionAPI input').change(function() {
- var value = $(this).val();
- if ($(this).attr('type') === 'checkbox') {
- if (this.checked) {
- value = 'yes';
- } else {
- value = 'no';
- }
- }
- OC.AppConfig.setValue('core', $(this).attr('name'), value);
+ $('#reallyEnableEncryption').click(function() {
+ $('#encryptionAPI div#EncryptionWarning').toggleClass('hidden');
+ $('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden');
+ OC.AppConfig.setValue('core', 'encryption_enabled', 'yes');
+ $('#enableEncryption').attr('disabled', 'disabled');
});
$('#startmigration').click(function(event){
diff --git a/settings/js/personal.js b/settings/js/personal.js
index f3fcf614bfa..3745b1372ea 100644
--- a/settings/js/personal.js
+++ b/settings/js/personal.js
@@ -12,8 +12,9 @@
* user or 1 second after the last data entry
*
* @param callback
+ * @param allowEmptyValue if this is set to true the callback is also called when the value is empty
*/
-jQuery.fn.keyUpDelayedOrEnter = function (callback) {
+jQuery.fn.keyUpDelayedOrEnter = function (callback, allowEmptyValue) {
var cb = callback;
var that = this;
this.keyup(_.debounce(function (event) {
@@ -21,13 +22,13 @@ jQuery.fn.keyUpDelayedOrEnter = function (callback) {
if (event.keyCode === 13) {
return;
}
- if (that.val() !== '') {
+ if (allowEmptyValue || that.val() !== '') {
cb();
}
}, 1000));
this.keypress(function (event) {
- if (event.keyCode === 13 && that.val() !== '') {
+ if (event.keyCode === 13 && (allowEmptyValue || that.val() !== '')) {
event.preventDefault();
cb();
}
@@ -213,7 +214,7 @@ $(document).ready(function () {
});
$('#displayName').keyUpDelayedOrEnter(changeDisplayName);
- $('#email').keyUpDelayedOrEnter(changeEmailAddress);
+ $('#email').keyUpDelayedOrEnter(changeEmailAddress, true);
$("#languageinput").change(function () {
// Serialize the data
@@ -301,6 +302,10 @@ $(document).ready(function () {
type: 'DELETE'
});
row.remove();
+
+ if ($('#sslCertificate > tbody > tr').length === 0) {
+ $('#sslCertificate').hide();
+ }
return true;
});
@@ -329,6 +334,7 @@ $(document).ready(function () {
));
$('#sslCertificate tbody').append(row);
+ $('#sslCertificate').show();
},
fail: function () {
OC.Notification.showTemporary(
@@ -339,6 +345,10 @@ $(document).ready(function () {
$('#rootcert_import_button').click(function () {
$('#rootcert_import').click();
});
+
+ if ($('#sslCertificate > tbody > tr').length === 0) {
+ $('#sslCertificate').hide();
+ }
});
if (!OC.Encryption) {
diff --git a/settings/l10n/az.js b/settings/l10n/az.js
index a088666f52c..677a7d3ab54 100644
--- a/settings/l10n/az.js
+++ b/settings/l10n/az.js
@@ -152,7 +152,6 @@ OC.L10N.register(
"How to do backups" : "Rezerv nüsxələr neçə edilisin",
"Advanced monitoring" : "İrəliləmiş monitoring",
"Version" : "Versiya",
- "More apps" : "Çoxlu proqramlar",
"Developer documentation" : "Yaradıcı sənədləşməsi",
"by" : "onunla",
"licensed" : "Lisenziyalaşdırılıb",
diff --git a/settings/l10n/az.json b/settings/l10n/az.json
index 0a3eb295f44..1d0b227a3bd 100644
--- a/settings/l10n/az.json
+++ b/settings/l10n/az.json
@@ -150,7 +150,6 @@
"How to do backups" : "Rezerv nüsxələr neçə edilisin",
"Advanced monitoring" : "İrəliləmiş monitoring",
"Version" : "Versiya",
- "More apps" : "Çoxlu proqramlar",
"Developer documentation" : "Yaradıcı sənədləşməsi",
"by" : "onunla",
"licensed" : "Lisenziyalaşdırılıb",
diff --git a/settings/l10n/bg_BG.js b/settings/l10n/bg_BG.js
index d1bdea2b333..705728ef365 100644
--- a/settings/l10n/bg_BG.js
+++ b/settings/l10n/bg_BG.js
@@ -153,7 +153,6 @@ OC.L10N.register(
"Improving the config.php" : "Подобряване на config.php",
"Theming" : "Промяна на облика",
"Version" : "Версия",
- "More apps" : "Още приложения",
"Developer documentation" : "Документация за разработчици",
"by" : "от",
"licensed" : "лицензирано",
diff --git a/settings/l10n/bg_BG.json b/settings/l10n/bg_BG.json
index 0fcbc78187b..4e21984c104 100644
--- a/settings/l10n/bg_BG.json
+++ b/settings/l10n/bg_BG.json
@@ -151,7 +151,6 @@
"Improving the config.php" : "Подобряване на config.php",
"Theming" : "Промяна на облика",
"Version" : "Версия",
- "More apps" : "Още приложения",
"Developer documentation" : "Документация за разработчици",
"by" : "от",
"licensed" : "лицензирано",
diff --git a/settings/l10n/bs.js b/settings/l10n/bs.js
index 293aff2cf3a..dfba4566d82 100644
--- a/settings/l10n/bs.js
+++ b/settings/l10n/bs.js
@@ -131,7 +131,6 @@ OC.L10N.register(
"More" : "Više",
"Less" : "Manje",
"Version" : "Verzija",
- "More apps" : "Više aplikacija",
"by" : "od strane",
"licensed" : "licenciran",
"Documentation:" : "Dokumentacija:",
diff --git a/settings/l10n/bs.json b/settings/l10n/bs.json
index 272158b9e46..5c6f543656f 100644
--- a/settings/l10n/bs.json
+++ b/settings/l10n/bs.json
@@ -129,7 +129,6 @@
"More" : "Više",
"Less" : "Manje",
"Version" : "Verzija",
- "More apps" : "Više aplikacija",
"by" : "od strane",
"licensed" : "licenciran",
"Documentation:" : "Dokumentacija:",
diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js
index 175b2572c2f..722f9799fb9 100644
--- a/settings/l10n/ca.js
+++ b/settings/l10n/ca.js
@@ -159,7 +159,6 @@ OC.L10N.register(
"Theming" : "Tematització",
"Hardening and security guidance" : "Guia de protecció i seguretat",
"Version" : "Versió",
- "More apps" : "Més aplicacions",
"Developer documentation" : "Documentació para desenvolupadors",
"by" : "per",
"licensed" : "llicenciat/da",
diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json
index 32c0b588b1a..e7738f2ad32 100644
--- a/settings/l10n/ca.json
+++ b/settings/l10n/ca.json
@@ -157,7 +157,6 @@
"Theming" : "Tematització",
"Hardening and security guidance" : "Guia de protecció i seguretat",
"Version" : "Versió",
- "More apps" : "Més aplicacions",
"Developer documentation" : "Documentació para desenvolupadors",
"by" : "per",
"licensed" : "llicenciat/da",
diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js
index edc9f676273..a6c16fa5f55 100644
--- a/settings/l10n/cs_CZ.js
+++ b/settings/l10n/cs_CZ.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Upozornění zabezpečení a nastavení",
"Sharing" : "Sdílení",
- "External Storage" : "Externí úložiště",
"Server-side encryption" : "Šifrování na serveru",
+ "External Storage" : "Externí úložiště",
"Cron" : "Cron",
"Email server" : "Emailový server",
"Log" : "Záznam",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwrite.cli.url\" (Je doporučena tato: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Nebylo možné spustit službu cron v CLI. Došlo k následujícím technickým chybám:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Ověřte znovu prosím informace z <a target=\"_blank\" href=\"%s\">instalační příručky ↗</a> a zkontrolujte <a href=\"#log-section\">log</a> na výskyt chyb a varování.",
+ "Open documentation" : "Otevřít dokumentaci",
"Allow apps to use the Share API" : "Povolit aplikacím používat API sdílení",
"Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů",
"Enforce password protection" : "Vynutit ochranu heslem",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Poslední cron proběhl: %s.",
"Last cron job execution: %s. Something seems wrong." : "Poslední cron proběhl: %s. Vypadá to, že něco není v pořádku.",
"Cron was not executed yet!" : "Cron ještě nebyl spuštěn!",
- "Open documentation" : "Otevřít dokumentaci",
"Execute one task with each page loaded" : "Spustit jednu úlohu s každým načtením stránky",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.",
"Enable server-side encryption" : "Povolit šifrování na straně serveru",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Zašifrování je nevratný proces. Po zapnutí šifrování jsou poté všechny soubory na serveru šifrovány a to již poté nelze vypnout. Toto je poslední varování: Opravdu si přejete zapnout šifrování?",
+ "Enable encryption" : "Povolit šifrování",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Není načten žádný šifrovací modul, povolte ho prosím v menu aplikací.",
+ "Select default encryption module:" : "Vybrat výchozí šifrovací modul:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Povolte prosím \"ownCloud Default Encryption Module\" a spusťte 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.",
"Start migration" : "Spustit migraci",
"This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.",
"Send mode" : "Mód odesílání",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Vzhledy",
"Hardening and security guidance" : "Průvodce vylepšením bezpečnosti",
"Version" : "Verze",
- "More apps" : "Více aplikací",
"Developer documentation" : "Vývojářská dokumentace",
"Experimental applications ahead" : "Experimentální aplikace v pořadí",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentální aplikace nejsou prověřovány na bezpečnostní chyby, mohou být nestabilní a velmi se měnit. Jejich instalací můžete způsobit ztrátu dat nebo bezpečnostní problémy.",
diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json
index f9c923fbcc7..627f21b95b2 100644
--- a/settings/l10n/cs_CZ.json
+++ b/settings/l10n/cs_CZ.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Upozornění zabezpečení a nastavení",
"Sharing" : "Sdílení",
- "External Storage" : "Externí úložiště",
"Server-side encryption" : "Šifrování na serveru",
+ "External Storage" : "Externí úložiště",
"Cron" : "Cron",
"Email server" : "Emailový server",
"Log" : "Záznam",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwrite.cli.url\" (Je doporučena tato: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Nebylo možné spustit službu cron v CLI. Došlo k následujícím technickým chybám:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Ověřte znovu prosím informace z <a target=\"_blank\" href=\"%s\">instalační příručky ↗</a> a zkontrolujte <a href=\"#log-section\">log</a> na výskyt chyb a varování.",
+ "Open documentation" : "Otevřít dokumentaci",
"Allow apps to use the Share API" : "Povolit aplikacím používat API sdílení",
"Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů",
"Enforce password protection" : "Vynutit ochranu heslem",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Poslední cron proběhl: %s.",
"Last cron job execution: %s. Something seems wrong." : "Poslední cron proběhl: %s. Vypadá to, že něco není v pořádku.",
"Cron was not executed yet!" : "Cron ještě nebyl spuštěn!",
- "Open documentation" : "Otevřít dokumentaci",
"Execute one task with each page loaded" : "Spustit jednu úlohu s každým načtením stránky",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.",
"Enable server-side encryption" : "Povolit šifrování na straně serveru",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Zašifrování je nevratný proces. Po zapnutí šifrování jsou poté všechny soubory na serveru šifrovány a to již poté nelze vypnout. Toto je poslední varování: Opravdu si přejete zapnout šifrování?",
+ "Enable encryption" : "Povolit šifrování",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Není načten žádný šifrovací modul, povolte ho prosím v menu aplikací.",
+ "Select default encryption module:" : "Vybrat výchozí šifrovací modul:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou. Povolte prosím \"ownCloud Default Encryption Module\" a spusťte 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.",
"Start migration" : "Spustit migraci",
"This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.",
"Send mode" : "Mód odesílání",
@@ -172,7 +178,6 @@
"Theming" : "Vzhledy",
"Hardening and security guidance" : "Průvodce vylepšením bezpečnosti",
"Version" : "Verze",
- "More apps" : "Více aplikací",
"Developer documentation" : "Vývojářská dokumentace",
"Experimental applications ahead" : "Experimentální aplikace v pořadí",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentální aplikace nejsou prověřovány na bezpečnostní chyby, mohou být nestabilní a velmi se měnit. Jejich instalací můžete způsobit ztrátu dat nebo bezpečnostní problémy.",
diff --git a/settings/l10n/da.js b/settings/l10n/da.js
index 5ddd3f728cb..acfcbc99f30 100644
--- a/settings/l10n/da.js
+++ b/settings/l10n/da.js
@@ -112,6 +112,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwrite.cli.url\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Det var ikke muligt at udføre cronjobbet via kommandolinjefladen CLI. Følgende tekniske fejl fremkom:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Dobbelttjek venligst <a target=\"_blank\" href=\"%s\">, og tjek om der er fejl eller advarsler i <a href=\"#log-section\">loggen</a>.",
+ "Open documentation" : "Åben dokumentation",
"Allow apps to use the Share API" : "Tillad apps til at bruge Share API",
"Allow users to share via link" : "Tillad brugere at dele via link",
"Enforce password protection" : "Tving kodeords beskyttelse",
@@ -129,7 +130,6 @@ OC.L10N.register(
"Last cron job execution: %s." : "Seneste udførsel af cronjob: %s.",
"Last cron job execution: %s. Something seems wrong." : "Seneste udførsel af cronjob: %s. Der er vist noget galt.",
"Cron was not executed yet!" : "Cron har ikke kørt endnu!",
- "Open documentation" : "Åben dokumentation",
"Execute one task with each page loaded" : "Udføre en opgave med hver side indlæsning",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Brug systemets cron service til at kalde cron.php hver 15. minut",
@@ -163,7 +163,6 @@ OC.L10N.register(
"Theming" : "Temaer",
"Hardening and security guidance" : "Modstanddygtighed og sikkerheds vejledning",
"Version" : "Version",
- "More apps" : "Flere programmer",
"Developer documentation" : "Dokumentation for udviklere",
"Experimental applications ahead" : "Kommende eksperimentale programmer",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Eksperimentale programmer er ikke undersøgt for sikkerheds problemer. Kendt for at være ustabil og stadig under intensiv udvikling. Installering af disse programmer kan medføre datatab og/eller udgøre en sikkerhedsrisiko.",
diff --git a/settings/l10n/da.json b/settings/l10n/da.json
index 65aed57dea0..ecb240b0603 100644
--- a/settings/l10n/da.json
+++ b/settings/l10n/da.json
@@ -110,6 +110,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Hvis din installation ikke er installeret i roden af domænet, og bruger systemets cron, så kan der være problemer med URL-oprettelsen. For at undgå disse problemer, så angiv tilvalget \"overwrite.cli.url\" i din fil config.php til webrodens sti for din installation (foreslået værdi: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Det var ikke muligt at udføre cronjobbet via kommandolinjefladen CLI. Følgende tekniske fejl fremkom:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Dobbelttjek venligst <a target=\"_blank\" href=\"%s\">, og tjek om der er fejl eller advarsler i <a href=\"#log-section\">loggen</a>.",
+ "Open documentation" : "Åben dokumentation",
"Allow apps to use the Share API" : "Tillad apps til at bruge Share API",
"Allow users to share via link" : "Tillad brugere at dele via link",
"Enforce password protection" : "Tving kodeords beskyttelse",
@@ -127,7 +128,6 @@
"Last cron job execution: %s." : "Seneste udførsel af cronjob: %s.",
"Last cron job execution: %s. Something seems wrong." : "Seneste udførsel af cronjob: %s. Der er vist noget galt.",
"Cron was not executed yet!" : "Cron har ikke kørt endnu!",
- "Open documentation" : "Åben dokumentation",
"Execute one task with each page loaded" : "Udføre en opgave med hver side indlæsning",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Brug systemets cron service til at kalde cron.php hver 15. minut",
@@ -161,7 +161,6 @@
"Theming" : "Temaer",
"Hardening and security guidance" : "Modstanddygtighed og sikkerheds vejledning",
"Version" : "Version",
- "More apps" : "Flere programmer",
"Developer documentation" : "Dokumentation for udviklere",
"Experimental applications ahead" : "Kommende eksperimentale programmer",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Eksperimentale programmer er ikke undersøgt for sikkerheds problemer. Kendt for at være ustabil og stadig under intensiv udvikling. Installering af disse programmer kan medføre datatab og/eller udgøre en sikkerhedsrisiko.",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 8eab3230f22..e0bf022dd39 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
"Sharing" : "Teilen",
- "External Storage" : "Externer Speicher",
"Server-side encryption" : "Serverseitige Verschlüsselung",
+ "External Storage" : "Externer Speicher",
"Cron" : "Cron",
"Email server" : "E-Mail-Server",
"Log" : "Log",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die „overwrite.cli.url“-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: „%s“).",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Die Ausführung des Cron-Jobs über die Kommandozeile war nicht möglich. Die folgenden technischen Fehler sind dabei aufgetreten:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Bitte überprüfe noch einmal die <a target=\"_blank\" href=\"%s\">Installationsanleitungen ↗</a> und kontrolliere das <a href=\"#log-section\">Log</a> auf mögliche Fehler oder Warnungen.",
+ "Open documentation" : "Dokumentation öffnen",
"Allow apps to use the Share API" : "Erlaubt Apps die Nutzung der Share-API",
"Allow users to share via link" : "Benutzern erlauben, Inhalte über Links zu teilen",
"Enforce password protection" : "Passwortschutz erzwingen",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Letzte Cron-Job-Ausführung: %s.",
"Last cron job execution: %s. Something seems wrong." : "Letzte Cron-Job-Ausführung: %s. Möglicherweise liegt ein Fehler vor.",
"Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
- "Open documentation" : "Offene Dokumentation",
"Execute one task with each page loaded" : "Führe eine Aufgabe mit jeder geladenen Seite aus",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Benutze den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.",
"Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchtest Du die Verschlüsselung wirklich aktivieren?",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
+ "Select default encryption module:" : "Bite Standard-Verschlüsselungs-Modul auswählen:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktiviere das \"ownCloud Default Encryption Module\" und rufe 'occ encryption:migrate' auf.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.",
"Send mode" : "Sendemodus",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Themes verwenden",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Version" : "Version",
- "More apps" : "Weitere Apps",
"Developer documentation" : "Dokumentation für Entwickler",
"Experimental applications ahead" : "Kommende experimentelle Apps",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index c05f488bd74..f0a2efdbf91 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
"Sharing" : "Teilen",
- "External Storage" : "Externer Speicher",
"Server-side encryption" : "Serverseitige Verschlüsselung",
+ "External Storage" : "Externer Speicher",
"Cron" : "Cron",
"Email server" : "E-Mail-Server",
"Log" : "Log",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Deine Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setze bitte die „overwrite.cli.url“-Option in Deiner config.php auf das Web-Wurzelverzeichnis Deiner Installation (Vorschlag: „%s“).",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Die Ausführung des Cron-Jobs über die Kommandozeile war nicht möglich. Die folgenden technischen Fehler sind dabei aufgetreten:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Bitte überprüfe noch einmal die <a target=\"_blank\" href=\"%s\">Installationsanleitungen ↗</a> und kontrolliere das <a href=\"#log-section\">Log</a> auf mögliche Fehler oder Warnungen.",
+ "Open documentation" : "Dokumentation öffnen",
"Allow apps to use the Share API" : "Erlaubt Apps die Nutzung der Share-API",
"Allow users to share via link" : "Benutzern erlauben, Inhalte über Links zu teilen",
"Enforce password protection" : "Passwortschutz erzwingen",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Letzte Cron-Job-Ausführung: %s.",
"Last cron job execution: %s. Something seems wrong." : "Letzte Cron-Job-Ausführung: %s. Möglicherweise liegt ein Fehler vor.",
"Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
- "Open documentation" : "Offene Dokumentation",
"Execute one task with each page loaded" : "Führe eine Aufgabe mit jeder geladenen Seite aus",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Benutze den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.",
"Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchtest Du die Verschlüsselung wirklich aktivieren?",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
+ "Select default encryption module:" : "Bite Standard-Verschlüsselungs-Modul auswählen:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktiviere das \"ownCloud Default Encryption Module\" und rufe 'occ encryption:migrate' auf.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du musst Deine Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.",
"Send mode" : "Sendemodus",
@@ -172,7 +178,6 @@
"Theming" : "Themes verwenden",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Version" : "Version",
- "More apps" : "Weitere Apps",
"Developer documentation" : "Dokumentation für Entwickler",
"Experimental applications ahead" : "Kommende experimentelle Apps",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
diff --git a/settings/l10n/de_AT.js b/settings/l10n/de_AT.js
index cbec5214387..d1584ae9451 100644
--- a/settings/l10n/de_AT.js
+++ b/settings/l10n/de_AT.js
@@ -7,11 +7,12 @@ OC.L10N.register(
"__language_name__" : "Deutsch (Österreich)",
"Server address" : "Adresse des Servers",
"Port" : "Port",
- "More apps" : "Mehr Apps",
"by" : "von",
"Password" : "Passwort",
+ "Change password" : "Passwort ändern",
"Email" : "E-Mail",
"Cancel" : "Abbrechen",
+ "Username" : "Benutzername",
"Other" : "Anderes"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de_AT.json b/settings/l10n/de_AT.json
index c47cd69e340..98ae6547481 100644
--- a/settings/l10n/de_AT.json
+++ b/settings/l10n/de_AT.json
@@ -5,11 +5,12 @@
"__language_name__" : "Deutsch (Österreich)",
"Server address" : "Adresse des Servers",
"Port" : "Port",
- "More apps" : "Mehr Apps",
"by" : "von",
"Password" : "Passwort",
+ "Change password" : "Passwort ändern",
"Email" : "E-Mail",
"Cancel" : "Abbrechen",
+ "Username" : "Benutzername",
"Other" : "Anderes"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 967d352d760..4b8f056b4e4 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
"Sharing" : "Teilen",
- "External Storage" : "Externer Speicher",
"Server-side encryption" : "Serverseitige Verschlüsselung",
+ "External Storage" : "Externer Speicher",
"Cron" : "Cron",
"Email server" : "E-Mail-Server",
"Log" : "Log",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setzen Sie bitte die „overwrite.cli.url“-Option in Ihrer config.php auf das Web-Wurzelverzeichnis Ihrer Installation (Vorschlag: „%s“).",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Die Ausführung des Cron-Jobs über die Kommandozeile war nicht möglich. Die folgenden technischen Fehler sind dabei aufgetreten:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Bitte überprüfen Sie noch einmal die <a target=\"_blank\" href=\"%s\">Installationsanleitungen ↗</a> und kontrollieren Sie das <a href=\"#log-section\">Log</a> auf mögliche Fehler oder Warnungen.",
+ "Open documentation" : "Dokumentation öffnen",
"Allow apps to use the Share API" : "Anwendungen erlauben, die Share-API zu benutzen",
"Allow users to share via link" : "Benutzern erlauben, Inhalte über Links zu teilen",
"Enforce password protection" : "Passwortschutz erzwingen",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Letzte Cron-Job-Ausführung: %s.",
"Last cron job execution: %s. Something seems wrong." : "Letzte Cron-Job-Ausführung: %s. Möglicherweise liegt ein Fehler vor.",
"Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
- "Open documentation" : "Offene Dokumentation",
"Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.",
"Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
+ "Select default encryption module:" : "Standard-Verschlüsselungs-Modul auswählen:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktivieren Sie das \"ownCloud Default Encryption Module\" und rufen Sie 'occ encryption:migrate' auf.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.",
"Send mode" : "Sendemodus",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Themes verwenden",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Version" : "Version",
- "More apps" : "Weitere Apps",
"Developer documentation" : "Dokumentation für Entwickler",
"Experimental applications ahead" : "Kommende experimentelle Apps",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index 8522a75dd99..977ade2a79b 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen",
"Sharing" : "Teilen",
- "External Storage" : "Externer Speicher",
"Server-side encryption" : "Serverseitige Verschlüsselung",
+ "External Storage" : "Externer Speicher",
"Cron" : "Cron",
"Email server" : "E-Mail-Server",
"Log" : "Log",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Wenn sich Ihre Installation nicht im Wurzelverzeichnis der Domain befindet und Cron aus dem System genutzt wird, kann es zu Fehlern bei der URL-Generierung kommen. Um dies zu verhindern, setzen Sie bitte die „overwrite.cli.url“-Option in Ihrer config.php auf das Web-Wurzelverzeichnis Ihrer Installation (Vorschlag: „%s“).",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Die Ausführung des Cron-Jobs über die Kommandozeile war nicht möglich. Die folgenden technischen Fehler sind dabei aufgetreten:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Bitte überprüfen Sie noch einmal die <a target=\"_blank\" href=\"%s\">Installationsanleitungen ↗</a> und kontrollieren Sie das <a href=\"#log-section\">Log</a> auf mögliche Fehler oder Warnungen.",
+ "Open documentation" : "Dokumentation öffnen",
"Allow apps to use the Share API" : "Anwendungen erlauben, die Share-API zu benutzen",
"Allow users to share via link" : "Benutzern erlauben, Inhalte über Links zu teilen",
"Enforce password protection" : "Passwortschutz erzwingen",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Letzte Cron-Job-Ausführung: %s.",
"Last cron job execution: %s. Something seems wrong." : "Letzte Cron-Job-Ausführung: %s. Möglicherweise liegt ein Fehler vor.",
"Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
- "Open documentation" : "Offene Dokumentation",
"Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.",
"Enable server-side encryption" : "Serverseitige Verschlüsselung aktivieren",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Verschlüsselung ist ein ein Prozess in eine Richtung. Wenn die Verschlüsselung aktiviert ist, werden alle Dateien von diesem Zeitpunkt an auf dem Server verschlüsselt und es wird nicht mehr möglich sein, die Verschlüsselung zu einem späteren Zeitpunkt zu deaktivieren. Dies ist die letzte Warnung: Möchten Sie die Verschlüsselung wirklich aktivieren?",
+ "Enable encryption" : "Verschlüsselung aktivieren",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Kein Verschlüsselungs-Modul geladen, bitte aktiviere ein Verschlüsselungs-Modul im Anwendungs-Menü.",
+ "Select default encryption module:" : "Standard-Verschlüsselungs-Modul auswählen:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren. Bitte aktivieren Sie das \"ownCloud Default Encryption Module\" und rufen Sie 'occ encryption:migrate' auf.",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sie müssen Ihre Verschlüsselungsschlüssel von der alten Verschlüsselung (ownCloud <= 8.0) zur Neuen migrieren.",
"Start migration" : "Migration beginnen",
"This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.",
"Send mode" : "Sendemodus",
@@ -172,7 +178,6 @@
"Theming" : "Themes verwenden",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Version" : "Version",
- "More apps" : "Weitere Apps",
"Developer documentation" : "Dokumentation für Entwickler",
"Experimental applications ahead" : "Kommende experimentelle Apps",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
index f38184a3cfd..76b269cf443 100644
--- a/settings/l10n/el.js
+++ b/settings/l10n/el.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων",
"Sharing" : "Διαμοιρασμός",
- "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο",
"Server-side encryption" : "Κρυπτογράφηση από τον Διακομιστή",
+ "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο",
"Cron" : "Cron",
"Email server" : "Διακομιστής Email",
"Log" : "Καταγραφές",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Αν η εγκατάστασή σας δεν έχει γίνει στο root του τομέα και χρησιμοποιείται το cron του συστήματος, μπορεί να υπάρξουν ζητήματα με τη δημιουργία URL. Για να αποφύγετε αυτά τα προβλήματα, παρακαλώ ρυθμίστε την επιλογή \"overwrite.cli.url\" στο αρχείο config.php που βρίσκεται στη διαδρομή webroot της εγκατάστασής σας (Suggested: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Δεν ήταν δυνατή η εκτέλεση της cronjob μέσω τερματικού. Εμφανίστηκαν τα παρακάτω τεχνικά σφάλματα:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Παρακαλώ ελέγξτε ξανά <a target=\"_blank\" href=\"%s\">τους οδηγούς εγκατάστασης, καθώς επίσης και για τυχόν σφάλματα ή προειδοποιήσεις στο <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Ανοιχτή τεκμηρίωση.",
"Allow apps to use the Share API" : "Επιτρέπει την χρήση του API διαμοιρασμού σε εφαρμογές ",
"Allow users to share via link" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μέσω συνδέσμου",
"Enforce password protection" : "Επιβολή προστασίας με κωδικό",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Τελευταία εκτέλεση cron job: %s.",
"Last cron job execution: %s. Something seems wrong." : "Τελευταία εκτέλεση cron job: %s. Κάτι πήγε στραβά.",
"Cron was not executed yet!" : "Η διεργασία cron δεν έχει εκτελεστεί ακόμα!",
- "Open documentation" : "Ανοιχτή τεκμηρίωση.",
"Execute one task with each page loaded" : "Εκτελεί μια διεργασία κάθε φορά που φορτώνεται μια σελίδα",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.",
"Enable server-side encryption" : "Ενεργοποίηση κρυπτογράφησης από το διακομιστή",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Η κρυπτογράφηση είναι μια μη αντιστρεπτή διαδικασία. Μόλις ενεργοποιηθεί, όλα τα αρχεία από αυτό το σημείο και μετά θα κρυπτογραφηθούν στο διακομιστή και η κρυπτογράφηση δεν είναι δυνατόν να απενεργοποιηθεί αργότερα. Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;",
+ "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Δεν έχει φορτωθεί μονάδα κρυπτογράφησης, παρακαλούμε φορτώστε μια μονάδα κρυπτογράφησης από το μενού εφαρμογών.",
+ "Select default encryption module:" : "Επιλογή προεπιλεγμένης μονάδας κρυπτογράφησης:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης του ownCloud\" και εκτελέστε την εντολή 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Πρέπει να μεταφέρετε τα κλειδιά σας κρυπτογράφησης από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια.",
"Start migration" : "Έναρξη μετάβασης",
"This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.",
"Send mode" : "Κατάσταση αποστολής",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Θέματα",
"Hardening and security guidance" : "Οδηγίες ασφάλειας και θωράκισης",
"Version" : "Έκδοση",
- "More apps" : "Περισσότερες εφαρμογές",
"Developer documentation" : "Τεκμηρίωση προγραμματιστή",
"Experimental applications ahead" : "Πειραματικές εφαρμογές",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Οι πειραματικές εφαρμογές δεν ελέγχονται για θέματα ασφάλειας, είναι ασταθείς και υπό συνεχή εξέλιξη. Η εγκατάσταση τους μπορεί να προκαλέσει απώλεια δεδομένων ή παραβιάσεις της ασφάλειας.",
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
index c3df28bc3a1..02306218155 100644
--- a/settings/l10n/el.json
+++ b/settings/l10n/el.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων",
"Sharing" : "Διαμοιρασμός",
- "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο",
"Server-side encryption" : "Κρυπτογράφηση από τον Διακομιστή",
+ "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο",
"Cron" : "Cron",
"Email server" : "Διακομιστής Email",
"Log" : "Καταγραφές",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Αν η εγκατάστασή σας δεν έχει γίνει στο root του τομέα και χρησιμοποιείται το cron του συστήματος, μπορεί να υπάρξουν ζητήματα με τη δημιουργία URL. Για να αποφύγετε αυτά τα προβλήματα, παρακαλώ ρυθμίστε την επιλογή \"overwrite.cli.url\" στο αρχείο config.php που βρίσκεται στη διαδρομή webroot της εγκατάστασής σας (Suggested: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Δεν ήταν δυνατή η εκτέλεση της cronjob μέσω τερματικού. Εμφανίστηκαν τα παρακάτω τεχνικά σφάλματα:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Παρακαλώ ελέγξτε ξανά <a target=\"_blank\" href=\"%s\">τους οδηγούς εγκατάστασης, καθώς επίσης και για τυχόν σφάλματα ή προειδοποιήσεις στο <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Ανοιχτή τεκμηρίωση.",
"Allow apps to use the Share API" : "Επιτρέπει την χρήση του API διαμοιρασμού σε εφαρμογές ",
"Allow users to share via link" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μέσω συνδέσμου",
"Enforce password protection" : "Επιβολή προστασίας με κωδικό",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Τελευταία εκτέλεση cron job: %s.",
"Last cron job execution: %s. Something seems wrong." : "Τελευταία εκτέλεση cron job: %s. Κάτι πήγε στραβά.",
"Cron was not executed yet!" : "Η διεργασία cron δεν έχει εκτελεστεί ακόμα!",
- "Open documentation" : "Ανοιχτή τεκμηρίωση.",
"Execute one task with each page loaded" : "Εκτελεί μια διεργασία κάθε φορά που φορτώνεται μια σελίδα",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.",
"Enable server-side encryption" : "Ενεργοποίηση κρυπτογράφησης από το διακομιστή",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Η κρυπτογράφηση είναι μια μη αντιστρεπτή διαδικασία. Μόλις ενεργοποιηθεί, όλα τα αρχεία από αυτό το σημείο και μετά θα κρυπτογραφηθούν στο διακομιστή και η κρυπτογράφηση δεν είναι δυνατόν να απενεργοποιηθεί αργότερα. Αυτή είναι η τελευταία προειδοποίηση: Θέλετε πραγματικά να ενεργοποιήσετε την κρυπτογράφηση;",
+ "Enable encryption" : "Ενεργοποίηση κρυπτογράφησης",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Δεν έχει φορτωθεί μονάδα κρυπτογράφησης, παρακαλούμε φορτώστε μια μονάδα κρυπτογράφησης από το μενού εφαρμογών.",
+ "Select default encryption module:" : "Επιλογή προεπιλεγμένης μονάδας κρυπτογράφησης:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Πρέπει να μεταφέρετε τα κλειδιά κρυπτογράφησής σας από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια. Παρακαλούμε ενεργοποιήστε την \"Προεπιλεγμένη Μονάδα Κρυπτογράφησης του ownCloud\" και εκτελέστε την εντολή 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Πρέπει να μεταφέρετε τα κλειδιά σας κρυπτογράφησης από την παλιά κρυπτογράφηση (ownCloud <= 8.0) στην καινούρια.",
"Start migration" : "Έναρξη μετάβασης",
"This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.",
"Send mode" : "Κατάσταση αποστολής",
@@ -172,7 +178,6 @@
"Theming" : "Θέματα",
"Hardening and security guidance" : "Οδηγίες ασφάλειας και θωράκισης",
"Version" : "Έκδοση",
- "More apps" : "Περισσότερες εφαρμογές",
"Developer documentation" : "Τεκμηρίωση προγραμματιστή",
"Experimental applications ahead" : "Πειραματικές εφαρμογές",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Οι πειραματικές εφαρμογές δεν ελέγχονται για θέματα ασφάλειας, είναι ασταθείς και υπό συνεχή εξέλιξη. Η εγκατάσταση τους μπορεί να προκαλέσει απώλεια δεδομένων ή παραβιάσεις της ασφάλειας.",
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
index 7329098ec4c..76951f31441 100644
--- a/settings/l10n/en_GB.js
+++ b/settings/l10n/en_GB.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Security & setup warnings",
"Sharing" : "Sharing",
- "External Storage" : "External Storage",
"Server-side encryption" : "Server-side encryption",
+ "External Storage" : "External Storage",
"Cron" : "Cron",
"Email server" : "Email server",
"Log" : "Log",
@@ -119,6 +119,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "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\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Open documentation",
"Allow apps to use the Share API" : "Allow apps to use the Share API",
"Allow users to share via link" : "Allow users to share via link",
"Enforce password protection" : "Enforce password protection",
@@ -136,7 +137,6 @@ OC.L10N.register(
"Last cron job execution: %s." : "Last cron job execution: %s.",
"Last cron job execution: %s. Something seems wrong." : "Last cron job execution: %s. Something seems wrong.",
"Cron was not executed yet!" : "Cron was not executed yet!",
- "Open documentation" : "Open documentation",
"Execute one task with each page loaded" : "Execute one task with each page loaded",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is registered at a webcron service to call cron.php every 15 minutes over http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Use system's cron service to call the cron.php file every 15 minutes.",
@@ -172,7 +172,6 @@ OC.L10N.register(
"Theming" : "Theming",
"Hardening and security guidance" : "Hardening and security guidance",
"Version" : "Version",
- "More apps" : "More apps",
"Developer documentation" : "Developer documentation",
"Experimental applications ahead" : "Experimental applications ahead",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches.",
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
index de4fdc0699c..4630170e7cf 100644
--- a/settings/l10n/en_GB.json
+++ b/settings/l10n/en_GB.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Security & setup warnings",
"Sharing" : "Sharing",
- "External Storage" : "External Storage",
"Server-side encryption" : "Server-side encryption",
+ "External Storage" : "External Storage",
"Cron" : "Cron",
"Email server" : "Email server",
"Log" : "Log",
@@ -117,6 +117,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "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\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Open documentation",
"Allow apps to use the Share API" : "Allow apps to use the Share API",
"Allow users to share via link" : "Allow users to share via link",
"Enforce password protection" : "Enforce password protection",
@@ -134,7 +135,6 @@
"Last cron job execution: %s." : "Last cron job execution: %s.",
"Last cron job execution: %s. Something seems wrong." : "Last cron job execution: %s. Something seems wrong.",
"Cron was not executed yet!" : "Cron was not executed yet!",
- "Open documentation" : "Open documentation",
"Execute one task with each page loaded" : "Execute one task with each page loaded",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is registered at a webcron service to call cron.php every 15 minutes over http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Use system's cron service to call the cron.php file every 15 minutes.",
@@ -170,7 +170,6 @@
"Theming" : "Theming",
"Hardening and security guidance" : "Hardening and security guidance",
"Version" : "Version",
- "More apps" : "More apps",
"Developer documentation" : "Developer documentation",
"Experimental applications ahead" : "Experimental applications ahead",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches.",
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index 5565afb7163..b5498e54347 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Avisos de seguidad y configuración",
"Sharing" : "Compartiendo",
- "External Storage" : "Almacenamiento externo",
"Server-side encryption" : "Cifrado en el servidor",
+ "External Storage" : "Almacenamiento externo",
"Cron" : "Cron",
"Email server" : "Servidor de correo electrónico",
"Log" : "Registro",
@@ -50,7 +50,7 @@ OC.L10N.register(
"Email saved" : "Correo electrónico guardado",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
"Add trusted domain" : "Agregar dominio de confianza",
- "Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor espere hasta que la migración esté finalizada.",
+ "Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor, espere hasta que la migración esté finalizada.",
"Migration started …" : "Migración iniciada...",
"Sending..." : "Enviando...",
"All" : "Todos",
@@ -76,7 +76,7 @@ OC.L10N.register(
"Strong password" : "Contraseña muy buena",
"Valid until {date}" : "Válido hasta {date}",
"Delete" : "Eliminar",
- "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Un error ha ocurrido. Por favor cargue un certificado PEM codificado en ASCII.",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Ha ocurrido un error. Por favor, cargue un certificado PEM codificado en ASCII.",
"Groups" : "Grupos",
"Unable to delete {objName}" : "No es posible eliminar {objName}",
"Error creating group" : "Error al crear un grupo",
@@ -107,8 +107,8 @@ OC.L10N.register(
"NT LAN Manager" : "Gestor de NT LAN",
"SSL" : "SSL",
"TLS" : "TLS",
- "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no esta configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") solo retorna una respuesta vacía.",
- "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor verifique la documentación de instalación para las notas de configuración de php y la configuración de php en tu servidor, específicamente donde se está usando php-fpm.",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo retorna una respuesta vacía.",
+ "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor, verifique la documentación de instalación para las notas de configuración de php y la configuración de php en tu servidor, específicamente donde se está usando php-fpm.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "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 cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar cronjob vía CLI. Han aparecido los siguientes errores técnicos:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Por favor revise las <a target=\"_blank\" href=\"%s\">guías de instalación ↗</a>, y compruebe los errores o avisos en el <a ref=\"#log-section\">registro</a>.",
+ "Open documentation" : "Documentación abierta",
"Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición",
"Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces",
"Enforce password protection" : "Forzar la protección por contraseña.",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Cron se ejecutó por última vez: %s",
"Last cron job execution: %s. Something seems wrong." : "Cron se ejecutó por última vez: %s. Algo va mal.",
"Cron was not executed yet!" : "¡Cron aún no ha sido ejecutado!",
- "Open documentation" : "Documentación abierta",
"Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.",
"Enable server-side encryption" : "Habilitar cifrado en el servidor",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "El cifrado es un proceso de una sola vía. Una vez el cifrado es habilitado, todos los archivos desde este punto en adelante serán cifrados en el servidor y no será posible deshabilitar el cifrado posteriormente. \nEsta es la advertencia final:\t¿Realmente quieres habilitar el cifrado?",
+ "Enable encryption" : "Habilitar cifrado",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado el modulo de cifrado. Por favor habilite un modulo de cifrado en el menú de aplicaciones.",
+ "Select default encryption module:" : "Seleccione el módulo de cifrado por defecto:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo. Por favor habilite el \"Módulo de cifrado por defecto\" y ejecute 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.",
"Start migration" : "Iniciar migración",
"This is used for sending out notifications." : "Esto se usa para enviar notificaciones.",
"Send mode" : "Modo de envío",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Personalizar el tema",
"Hardening and security guidance" : "Guía de protección y seguridad",
"Version" : "Versión",
- "More apps" : "Más aplicaciones",
"Developer documentation" : "Documentación de desarrollador",
"Experimental applications ahead" : "Aplicaciones experimentales más adelante",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Las aplicaciones experimentales no están verificadas por problemas de seguridad, recientes o conocidas por ser inestables y/o bajo un fuerte desarrollo. Instalándolas pueden causar pérdida de datos o violación de seguridades.",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index 42c926ed0bb..b22631b5406 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Avisos de seguidad y configuración",
"Sharing" : "Compartiendo",
- "External Storage" : "Almacenamiento externo",
"Server-side encryption" : "Cifrado en el servidor",
+ "External Storage" : "Almacenamiento externo",
"Cron" : "Cron",
"Email server" : "Servidor de correo electrónico",
"Log" : "Registro",
@@ -48,7 +48,7 @@
"Email saved" : "Correo electrónico guardado",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
"Add trusted domain" : "Agregar dominio de confianza",
- "Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor espere hasta que la migración esté finalizada.",
+ "Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor, espere hasta que la migración esté finalizada.",
"Migration started …" : "Migración iniciada...",
"Sending..." : "Enviando...",
"All" : "Todos",
@@ -74,7 +74,7 @@
"Strong password" : "Contraseña muy buena",
"Valid until {date}" : "Válido hasta {date}",
"Delete" : "Eliminar",
- "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Un error ha ocurrido. Por favor cargue un certificado PEM codificado en ASCII.",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Ha ocurrido un error. Por favor, cargue un certificado PEM codificado en ASCII.",
"Groups" : "Grupos",
"Unable to delete {objName}" : "No es posible eliminar {objName}",
"Error creating group" : "Error al crear un grupo",
@@ -105,8 +105,8 @@
"NT LAN Manager" : "Gestor de NT LAN",
"SSL" : "SSL",
"TLS" : "TLS",
- "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no esta configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") solo retorna una respuesta vacía.",
- "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor verifique la documentación de instalación para las notas de configuración de php y la configuración de php en tu servidor, específicamente donde se está usando php-fpm.",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo retorna una respuesta vacía.",
+ "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor, verifique la documentación de instalación para las notas de configuración de php y la configuración de php en tu servidor, específicamente donde se está usando php-fpm.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "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 cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar cronjob vía CLI. Han aparecido los siguientes errores técnicos:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Por favor revise las <a target=\"_blank\" href=\"%s\">guías de instalación ↗</a>, y compruebe los errores o avisos en el <a ref=\"#log-section\">registro</a>.",
+ "Open documentation" : "Documentación abierta",
"Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición",
"Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces",
"Enforce password protection" : "Forzar la protección por contraseña.",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Cron se ejecutó por última vez: %s",
"Last cron job execution: %s. Something seems wrong." : "Cron se ejecutó por última vez: %s. Algo va mal.",
"Cron was not executed yet!" : "¡Cron aún no ha sido ejecutado!",
- "Open documentation" : "Documentación abierta",
"Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.",
"Enable server-side encryption" : "Habilitar cifrado en el servidor",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "El cifrado es un proceso de una sola vía. Una vez el cifrado es habilitado, todos los archivos desde este punto en adelante serán cifrados en el servidor y no será posible deshabilitar el cifrado posteriormente. \nEsta es la advertencia final:\t¿Realmente quieres habilitar el cifrado?",
+ "Enable encryption" : "Habilitar cifrado",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado el modulo de cifrado. Por favor habilite un modulo de cifrado en el menú de aplicaciones.",
+ "Select default encryption module:" : "Seleccione el módulo de cifrado por defecto:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo. Por favor habilite el \"Módulo de cifrado por defecto\" y ejecute 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.",
"Start migration" : "Iniciar migración",
"This is used for sending out notifications." : "Esto se usa para enviar notificaciones.",
"Send mode" : "Modo de envío",
@@ -172,7 +178,6 @@
"Theming" : "Personalizar el tema",
"Hardening and security guidance" : "Guía de protección y seguridad",
"Version" : "Versión",
- "More apps" : "Más aplicaciones",
"Developer documentation" : "Documentación de desarrollador",
"Experimental applications ahead" : "Aplicaciones experimentales más adelante",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Las aplicaciones experimentales no están verificadas por problemas de seguridad, recientes o conocidas por ser inestables y/o bajo un fuerte desarrollo. Instalándolas pueden causar pérdida de datos o violación de seguridades.",
diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js
index 6e0677337dc..027c1c930bf 100644
--- a/settings/l10n/et_EE.js
+++ b/settings/l10n/et_EE.js
@@ -118,7 +118,6 @@ OC.L10N.register(
"More" : "Rohkem",
"Less" : "Vähem",
"Version" : "Versioon",
- "More apps" : "Rohkem rakendusi",
"by" : "lisas",
"licensed" : "litsenseeritud",
"Documentation:" : "Dokumentatsioon:",
diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json
index 0edc3d3b916..f1cb49e5fc6 100644
--- a/settings/l10n/et_EE.json
+++ b/settings/l10n/et_EE.json
@@ -116,7 +116,6 @@
"More" : "Rohkem",
"Less" : "Vähem",
"Version" : "Versioon",
- "More apps" : "Rohkem rakendusi",
"by" : "lisas",
"licensed" : "litsenseeritud",
"Documentation:" : "Dokumentatsioon:",
diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js
index 7f30c91fa52..d0da711e006 100644
--- a/settings/l10n/eu.js
+++ b/settings/l10n/eu.js
@@ -137,7 +137,6 @@ OC.L10N.register(
"More" : "Gehiago",
"Less" : "Gutxiago",
"Version" : "Bertsioa",
- "More apps" : "App gehiago",
"by" : " Egilea:",
"licensed" : "lizentziatua",
"Documentation:" : "Dokumentazioa:",
diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json
index 5c9ce4bdf34..6cbfc0a9d25 100644
--- a/settings/l10n/eu.json
+++ b/settings/l10n/eu.json
@@ -135,7 +135,6 @@
"More" : "Gehiago",
"Less" : "Gutxiago",
"Version" : "Bertsioa",
- "More apps" : "App gehiago",
"by" : " Egilea:",
"licensed" : "lizentziatua",
"Documentation:" : "Dokumentazioa:",
diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js
index 8e3f3983c34..18736c23151 100644
--- a/settings/l10n/fi_FI.js
+++ b/settings/l10n/fi_FI.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset",
"Sharing" : "Jakaminen",
- "External Storage" : "Erillinen tallennusväline",
"Server-side encryption" : "Palvelinpään salaus",
+ "External Storage" : "Erillinen tallennusväline",
"Cron" : "Cron",
"Email server" : "Sähköpostipalvelin",
"Log" : "Loki",
@@ -114,6 +114,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Suosittelemme asentamaan vaaditut paketit järjestelmään, jotta järjestelmässä on tuki yhdelle seuraavista maa-asetuksista: %s.",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Cron-työn suorittaminen komentorivin kautta ei onnistunut. Ilmeni seuraavia teknisiä virheitä:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Lue tarkasti <a target=\"_blank\" href=\"%s\">asennusohjeet ↗</a>, tarkista myös mahdolliset virheet ja varoitukset <a href=\"#log-section\">lokitiedostosta</a>.",
+ "Open documentation" : "Avaa dokumentaatio",
"Allow apps to use the Share API" : "Salli sovellusten käyttää jakamisen ohjelmointirajapintaa",
"Allow users to share via link" : "Salli käyttäjien jakaa linkkien kautta",
"Enforce password protection" : "Pakota salasanasuojaus",
@@ -131,11 +132,15 @@ OC.L10N.register(
"Last cron job execution: %s." : "Viimeisin cron-työn suoritus: %s.",
"Last cron job execution: %s. Something seems wrong." : "Viimeisin cron-työn suoritus: %s. Jokin vaikuttaa menneen pieleen.",
"Cron was not executed yet!" : "Cronia ei suoritettu vielä!",
- "Open documentation" : "Avaa dokumentaatio",
"Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.",
"Enable server-side encryption" : "Käytä palvelinpään salausta",
+ "Enable encryption" : "Käytä salausta",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Salausmoduulia ei ole käytössä. Ota salausmoduuli käyttöön sovellusvalikosta.",
+ "Select default encryption module:" : "Valitse oletuksena käytettävä salausmoduuli:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen. Ota \"ownCloud Default Encryption Module\" käyttöön ja suorita 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.",
"Start migration" : "Käynnistä migraatio",
"This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.",
"Send mode" : "Lähetystila",
@@ -166,7 +171,6 @@ OC.L10N.register(
"Theming" : "Teemojen käyttö",
"Hardening and security guidance" : "Turvaamis- ja tietoturvaopas",
"Version" : "Versio",
- "More apps" : "Lisää sovelluksia",
"Developer documentation" : "Kehittäjädokumentaatio",
"Experimental applications ahead" : "Kokeellisia sovelluksia edessä",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Kokeellisia sovelluksia ei ole tarkistettu tietoturvauhkien varalta. Sovellukset ovat uusia, ne saattavat olla epävakaita ja ovat nopean kehityksen alaisia. Kokeellisten sovellusten asentaminen saattaa aiheuttaa tietojen katoamista tai tietoturvauhkia.",
diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json
index 54da02c3291..9dc33ddd9fa 100644
--- a/settings/l10n/fi_FI.json
+++ b/settings/l10n/fi_FI.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset",
"Sharing" : "Jakaminen",
- "External Storage" : "Erillinen tallennusväline",
"Server-side encryption" : "Palvelinpään salaus",
+ "External Storage" : "Erillinen tallennusväline",
"Cron" : "Cron",
"Email server" : "Sähköpostipalvelin",
"Log" : "Loki",
@@ -112,6 +112,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Suosittelemme asentamaan vaaditut paketit järjestelmään, jotta järjestelmässä on tuki yhdelle seuraavista maa-asetuksista: %s.",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Cron-työn suorittaminen komentorivin kautta ei onnistunut. Ilmeni seuraavia teknisiä virheitä:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Lue tarkasti <a target=\"_blank\" href=\"%s\">asennusohjeet ↗</a>, tarkista myös mahdolliset virheet ja varoitukset <a href=\"#log-section\">lokitiedostosta</a>.",
+ "Open documentation" : "Avaa dokumentaatio",
"Allow apps to use the Share API" : "Salli sovellusten käyttää jakamisen ohjelmointirajapintaa",
"Allow users to share via link" : "Salli käyttäjien jakaa linkkien kautta",
"Enforce password protection" : "Pakota salasanasuojaus",
@@ -129,11 +130,15 @@
"Last cron job execution: %s." : "Viimeisin cron-työn suoritus: %s.",
"Last cron job execution: %s. Something seems wrong." : "Viimeisin cron-työn suoritus: %s. Jokin vaikuttaa menneen pieleen.",
"Cron was not executed yet!" : "Cronia ei suoritettu vielä!",
- "Open documentation" : "Avaa dokumentaatio",
"Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.",
"Enable server-side encryption" : "Käytä palvelinpään salausta",
+ "Enable encryption" : "Käytä salausta",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Salausmoduulia ei ole käytössä. Ota salausmoduuli käyttöön sovellusvalikosta.",
+ "Select default encryption module:" : "Valitse oletuksena käytettävä salausmoduuli:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen. Ota \"ownCloud Default Encryption Module\" käyttöön ja suorita 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.",
"Start migration" : "Käynnistä migraatio",
"This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.",
"Send mode" : "Lähetystila",
@@ -164,7 +169,6 @@
"Theming" : "Teemojen käyttö",
"Hardening and security guidance" : "Turvaamis- ja tietoturvaopas",
"Version" : "Versio",
- "More apps" : "Lisää sovelluksia",
"Developer documentation" : "Kehittäjädokumentaatio",
"Experimental applications ahead" : "Kokeellisia sovelluksia edessä",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Kokeellisia sovelluksia ei ole tarkistettu tietoturvauhkien varalta. Sovellukset ovat uusia, ne saattavat olla epävakaita ja ovat nopean kehityksen alaisia. Kokeellisten sovellusten asentaminen saattaa aiheuttaa tietojen katoamista tai tietoturvauhkia.",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index be037890bfd..c5c80130933 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Avertissements de sécurité ou de configuration",
"Sharing" : "Partage",
- "External Storage" : "Stockage externe",
"Server-side encryption" : "Chiffrement côté serveur",
+ "External Storage" : "Stockage externe",
"Cron" : "Cron",
"Email server" : "Serveur mail",
"Log" : "Log",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "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 cronjob 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 :",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Consultez les <a target=\"_blank\" href=\"%s\">guides d'installation ↗</a>, et cherchez des erreurs ou avertissements dans <a href=\"#log-section\">les logs</a>.",
+ "Open documentation" : "Voir la documentation",
"Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage",
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Enforce password protection" : "Obliger la protection par mot de passe",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Dernière tâche cron exécutée : %s.",
"Last cron job execution: %s. Something seems wrong." : "Dernière tâche cron exécutée : %s. Quelque chose s'est mal passé.",
"Cron was not executed yet!" : "Le cron n'a pas encore été exécuté !",
- "Open documentation" : "Voir la documentation",
"Execute one task with each page loaded" : "Exécute une tâche à chaque chargement de page",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré auprès d'un service webcron qui l'exécutera toutes les 15 minutes via http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.",
"Enable server-side encryption" : "Activer le chiffrement côté serveur",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Le chiffrement est un processus à sens unique. Une fois que le chiffrement est activé, tous les fichiers à partir de ce moment seront chiffrés sur le serveur et il ne sera pas possible de désactiver le chiffrement ultérieurement. Ceci est le dernier avertissement : Voulez-vous vraiment activer le chiffrement?",
+ "Enable encryption" : "Activer le chiffrement",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Aucun module de chiffrement n'est chargé. Merci d'activer un module de chiffrement dans le menu des applications.",
+ "Select default encryption module:" : "Sélectionnez le module de chiffrement par défaut :",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez activer \"ownCloud Default Encryption Module\" et exécuter 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.",
"Start migration" : "Démarrer la migration",
"This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.",
"Send mode" : "Mode d'envoi",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Thème",
"Hardening and security guidance" : "Guide pour le renforcement et la sécurité",
"Version" : "Version",
- "More apps" : "Plus d'applications",
"Developer documentation" : "Documentation pour les développeurs",
"Experimental applications ahead" : "Attention! Applications expérimentales",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Les applications expérimentales n'ont pas été testées pour les problèmes de sécurité, sont nouvelles ou connues comme étant instables et sont encore en développement. Les installer peut causer des pertes de données ou des failles de sécurités. ",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index c0c2a1ba6b3..c50304bb099 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Avertissements de sécurité ou de configuration",
"Sharing" : "Partage",
- "External Storage" : "Stockage externe",
"Server-side encryption" : "Chiffrement côté serveur",
+ "External Storage" : "Stockage externe",
"Cron" : "Cron",
"Email server" : "Serveur mail",
"Log" : "Log",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "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 cronjob 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 :",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Consultez les <a target=\"_blank\" href=\"%s\">guides d'installation ↗</a>, et cherchez des erreurs ou avertissements dans <a href=\"#log-section\">les logs</a>.",
+ "Open documentation" : "Voir la documentation",
"Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage",
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Enforce password protection" : "Obliger la protection par mot de passe",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Dernière tâche cron exécutée : %s.",
"Last cron job execution: %s. Something seems wrong." : "Dernière tâche cron exécutée : %s. Quelque chose s'est mal passé.",
"Cron was not executed yet!" : "Le cron n'a pas encore été exécuté !",
- "Open documentation" : "Voir la documentation",
"Execute one task with each page loaded" : "Exécute une tâche à chaque chargement de page",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré auprès d'un service webcron qui l'exécutera toutes les 15 minutes via http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.",
"Enable server-side encryption" : "Activer le chiffrement côté serveur",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Le chiffrement est un processus à sens unique. Une fois que le chiffrement est activé, tous les fichiers à partir de ce moment seront chiffrés sur le serveur et il ne sera pas possible de désactiver le chiffrement ultérieurement. Ceci est le dernier avertissement : Voulez-vous vraiment activer le chiffrement?",
+ "Enable encryption" : "Activer le chiffrement",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Aucun module de chiffrement n'est chargé. Merci d'activer un module de chiffrement dans le menu des applications.",
+ "Select default encryption module:" : "Sélectionnez le module de chiffrement par défaut :",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle. Veuillez activer \"ownCloud Default Encryption Module\" et exécuter 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.",
"Start migration" : "Démarrer la migration",
"This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.",
"Send mode" : "Mode d'envoi",
@@ -172,7 +178,6 @@
"Theming" : "Thème",
"Hardening and security guidance" : "Guide pour le renforcement et la sécurité",
"Version" : "Version",
- "More apps" : "Plus d'applications",
"Developer documentation" : "Documentation pour les développeurs",
"Experimental applications ahead" : "Attention! Applications expérimentales",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Les applications expérimentales n'ont pas été testées pour les problèmes de sécurité, sont nouvelles ou connues comme étant instables et sont encore en développement. Les installer peut causer des pertes de données ou des failles de sécurités. ",
diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js
index be7d809e120..a9216f36da8 100644
--- a/settings/l10n/gl.js
+++ b/settings/l10n/gl.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Avisos de seguridade e configuración",
"Sharing" : "Compartindo",
- "External Storage" : "Almacenamento externo",
"Server-side encryption" : "Cifrado na parte do servidor",
+ "External Storage" : "Almacenamento externo",
"Cron" : "Cron",
"Email server" : "Servidor de correo",
"Log" : "Rexistro",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a instalación no está feita na raíz do dominio e usa o sistema cron, pode haber incidencias coa xeración de URL. Para evitar estes problemas, axuste a opción «overwrite.cli.url» no seu ficheiro config.php á ruta webroot da instalación (suxestión: «%s»)",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Non foi posíbel executar a tarefa de cron programada desde a liña de ordes. Atopáronse os seguintes erros técnicos:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Volva comprobar as <a target=\"_blank\" href=\"%s\">guías de instalación ↗</a>, e comprobe que non existen erros ou avisos no <a href=\"#log-section\">rexistro</a>.>.",
+ "Open documentation" : "Abrir a documentación",
"Allow apps to use the Share API" : "Permitir que as aplicacións empreguen o API para compartir",
"Allow users to share via link" : "Permitir que os usuarios compartan a través de ligazóns",
"Enforce password protection" : "Forzar a protección por contrasinal",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Última execución da tarefa de cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Última execución da tarefa de cron: %s. Semella que algo vai mal",
"Cron was not executed yet!" : "«Cron» aínda non foi executado!",
- "Open documentation" : "Abrir a documentación",
"Execute one task with each page loaded" : "Executar unha tarefa con cada páxina cargada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está rexistrado nun servizo de WebCron para chamar a cron.php cada 15 minutos a través de HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 15 minutos.",
"Enable server-side encryption" : "Activar o cifrado na parte do servidor",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "O cifrado é un proceso dunha soa dirección. Unha vez activado o cifrado, cifraranse no servidor todos os ficheiros a partires dese momento e xa non será posíbel desactivalo no futuro. Este é o aviso final: Confirma que quere activar o cifrado?",
+ "Enable encryption" : "Activar o cifrado",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Non hai cargado ningún módulo de cifrado, active un módulo de cifrado no menú de aplicacións.",
+ "Select default encryption module:" : "Seleccionar o módulo predeterminado de cifrado:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado do ownCloud» e execute «occ encryption:migrate»",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo.",
"Start migration" : "Iniciar a migración",
"This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.",
"Send mode" : "Modo de envío",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Tematización",
"Hardening and security guidance" : "Orientacións sobre fortificación e seguridade",
"Version" : "Versión",
- "More apps" : "Máis aplicativos",
"Developer documentation" : "Documentación do desenvolvedor",
"Experimental applications ahead" : "Ante as aplicacións experimentais",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As aplicacións experimentais, novas ou coñecidas por ser inestábeis e en forte desenvolvemento, non se lles fan comprobacións de seguridade. A súa instalación pode provocar a perda de datos o violacións de seguridade.",
diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json
index bea734309f9..0f90b188d52 100644
--- a/settings/l10n/gl.json
+++ b/settings/l10n/gl.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Avisos de seguridade e configuración",
"Sharing" : "Compartindo",
- "External Storage" : "Almacenamento externo",
"Server-side encryption" : "Cifrado na parte do servidor",
+ "External Storage" : "Almacenamento externo",
"Cron" : "Cron",
"Email server" : "Servidor de correo",
"Log" : "Rexistro",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a instalación no está feita na raíz do dominio e usa o sistema cron, pode haber incidencias coa xeración de URL. Para evitar estes problemas, axuste a opción «overwrite.cli.url» no seu ficheiro config.php á ruta webroot da instalación (suxestión: «%s»)",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Non foi posíbel executar a tarefa de cron programada desde a liña de ordes. Atopáronse os seguintes erros técnicos:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Volva comprobar as <a target=\"_blank\" href=\"%s\">guías de instalación ↗</a>, e comprobe que non existen erros ou avisos no <a href=\"#log-section\">rexistro</a>.>.",
+ "Open documentation" : "Abrir a documentación",
"Allow apps to use the Share API" : "Permitir que as aplicacións empreguen o API para compartir",
"Allow users to share via link" : "Permitir que os usuarios compartan a través de ligazóns",
"Enforce password protection" : "Forzar a protección por contrasinal",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Última execución da tarefa de cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Última execución da tarefa de cron: %s. Semella que algo vai mal",
"Cron was not executed yet!" : "«Cron» aínda non foi executado!",
- "Open documentation" : "Abrir a documentación",
"Execute one task with each page loaded" : "Executar unha tarefa con cada páxina cargada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está rexistrado nun servizo de WebCron para chamar a cron.php cada 15 minutos a través de HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 15 minutos.",
"Enable server-side encryption" : "Activar o cifrado na parte do servidor",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "O cifrado é un proceso dunha soa dirección. Unha vez activado o cifrado, cifraranse no servidor todos os ficheiros a partires dese momento e xa non será posíbel desactivalo no futuro. Este é o aviso final: Confirma que quere activar o cifrado?",
+ "Enable encryption" : "Activar o cifrado",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Non hai cargado ningún módulo de cifrado, active un módulo de cifrado no menú de aplicacións.",
+ "Select default encryption module:" : "Seleccionar o módulo predeterminado de cifrado:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo. Active o «Módulo predeterminado de cifrado do ownCloud» e execute «occ encryption:migrate»",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "É necesario migrar as chaves de cifrado do antigo cifrado (ownCloud <= 8,0) cara ao novo.",
"Start migration" : "Iniciar a migración",
"This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.",
"Send mode" : "Modo de envío",
@@ -172,7 +178,6 @@
"Theming" : "Tematización",
"Hardening and security guidance" : "Orientacións sobre fortificación e seguridade",
"Version" : "Versión",
- "More apps" : "Máis aplicativos",
"Developer documentation" : "Documentación do desenvolvedor",
"Experimental applications ahead" : "Ante as aplicacións experimentais",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As aplicacións experimentais, novas ou coñecidas por ser inestábeis e en forte desenvolvemento, non se lles fan comprobacións de seguridade. A súa instalación pode provocar a perda de datos o violacións de seguridade.",
diff --git a/settings/l10n/he.js b/settings/l10n/he.js
index 0873768285e..546a303c2f3 100644
--- a/settings/l10n/he.js
+++ b/settings/l10n/he.js
@@ -45,7 +45,6 @@ OC.L10N.register(
"More" : "יותר",
"Less" : "פחות",
"Version" : "גרסא",
- "More apps" : "יישומים נוספים",
"by" : "על ידי",
"User Documentation" : "תיעוד משתמש",
"Forum" : "פורום",
diff --git a/settings/l10n/he.json b/settings/l10n/he.json
index 47e9f8d95e9..3c35ed9de47 100644
--- a/settings/l10n/he.json
+++ b/settings/l10n/he.json
@@ -43,7 +43,6 @@
"More" : "יותר",
"Less" : "פחות",
"Version" : "גרסא",
- "More apps" : "יישומים נוספים",
"by" : "על ידי",
"User Documentation" : "תיעוד משתמש",
"Forum" : "פורום",
diff --git a/settings/l10n/id.js b/settings/l10n/id.js
index 5719ca22195..177e2f70f95 100644
--- a/settings/l10n/id.js
+++ b/settings/l10n/id.js
@@ -1,10 +1,14 @@
OC.L10N.register(
"settings",
{
+ "Security & setup warnings" : "Peringatan Keamanan & Pengaturan",
"Sharing" : "Berbagi",
+ "Server-side encryption" : "Enkripsi sisi-server",
"External Storage" : "Penyimpanan Eksternal",
"Cron" : "Cron",
+ "Email server" : "Server email",
"Log" : "Log",
+ "Tips & tricks" : "Tips & trik",
"Updates" : "Pembaruan",
"Authentication error" : "Terjadi kesalahan saat otentikasi",
"Your full name has been changed." : "Nama lengkap Anda telah diubah",
@@ -20,18 +24,23 @@ OC.L10N.register(
"No user supplied" : "Tidak ada pengguna yang diberikan",
"Please provide an admin recovery password, otherwise all user data will be lost" : "Mohon sediakan sandi pemulihan admin, jika tidak semua data pengguna akan terhapus",
"Wrong admin recovery password. Please check the password and try again." : "Sandi pemulihan admin salah. Periksa sandi dan ulangi kembali.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Backend tidak mendukung pengubahan sandi, tapi kunci enkripsi pengguna berhasil diperbarui.",
"Unable to change password" : "Tidak dapat mengubah sandi",
"Enabled" : "Diaktifkan",
"Not enabled" : "Tidak diaktifkan",
+ "A problem occurred, please check your log files (Error: %s)" : "Terjadi masalah, mohon periksa berkas log Anda (Kesalahan: %s)",
+ "Migration Completed" : "Migrasi Selesai",
"Group already exists." : "Grup sudah ada.",
"Unable to add group." : "Tidak dapat menambah grup.",
"Unable to delete group." : "Tidak dapat menghapus grup.",
"log-level out of allowed range" : "level-log melebihi batas yang diizinkan",
"Saved" : "Disimpan",
"test email settings" : "pengaturan email percobaan",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Terjadi masalah saat mengirim email. Mohon periksa kembali pengaturan Anda. (Kesalahan: %s)",
"Email sent" : "Email terkirim",
"You need to set your user email before being able to send test emails." : "Anda perlu menetapkan email pengguna Anda sebelum dapat mengirim email percobaan.",
"Invalid mail address" : "Alamat email salah",
+ "A user with that name already exists." : "Pengguna dengan nama tersebut sudah ada.",
"Unable to create user." : "Tidak dapat membuat pengguna.",
"Your %s account was created" : "Akun %s Anda telah dibuat",
"Unable to delete user." : "Tidak dapat menghapus pengguna.",
@@ -41,8 +50,13 @@ OC.L10N.register(
"Email saved" : "Email disimpan",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Apakah And yakin ingin menambahkan \"{domain}\" sebagai domain terpercaya?",
"Add trusted domain" : "Tambah domain terpercaya",
+ "Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai.",
+ "Migration started …" : "Migrasi dimulai ...",
"Sending..." : "Mengirim",
"All" : "Semua",
+ "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplikasi resmi dikembangkan oleh komunitas ownCloud. Mereka menawarkan fitur pusat bagi ownCloud dan siap digunakan untuk penggunaan produksi.",
+ "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Aplikasi tersetujui dikembangkan oleh pengembang terpercaya dan telah lulus pemeriksaan keamanan. Mereka secara aktif dipelihara direpositori kode terbuka dan pemelihara sudah memastikan mereka stabil untuk penggunaan normal.",
+ "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Aplikasi ini belum diperiksa masalah keamanan dan masih baru atau dikenal tidak stabil. Instal dengan resiko.",
"Please wait...." : "Mohon tunggu....",
"Error while disabling app" : "Terjadi kesalahan saat menonaktifkan aplikasi",
"Disable" : "Nonaktifkan",
@@ -62,6 +76,7 @@ OC.L10N.register(
"Strong password" : "Sandi kuat",
"Valid until {date}" : "Berlaku sampai {date}",
"Delete" : "Hapus",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Terjadi kesalahan. Mohon unggah sertifikat PEM terenkode-ASCII.",
"Groups" : "Grup",
"Unable to delete {objName}" : "Tidak dapat menghapus {objName}",
"Error creating group" : "Terjadi kesalahan saat membuat grup",
@@ -78,6 +93,8 @@ OC.L10N.register(
"A valid password must be provided" : "Harus memberikan sandi yang benar",
"A valid email must be provided" : "Email yang benar harus diberikan",
"__language_name__" : "__language_name__",
+ "Sync clients" : "Klien sync",
+ "Personal info" : "Info pribadi",
"SSL root certificates" : "Sertifikat root SSL",
"Everything (fatal issues, errors, warnings, info, debug)" : "Semuanya (Masalah fatal, galat, peringatan, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, peringatan, galat dan masalah fatal",
@@ -90,15 +107,21 @@ OC.L10N.register(
"NT LAN Manager" : "Manajer NT LAN",
"SSL" : "SSL",
"TLS" : "TLS",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "kelihatannya php tidak diatur dengan benar untuk variabel lingkungan sistem kueri. Pemeriksaan dengan getenv(\"PATH\") hanya mengembalikan respon kosong.",
+ "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Mohon periksa dokumentasi instalasi untuk catatan konfigurasi php dan konfigurasi php server Anda, terutama saat menggunakan ph-fpm.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfig Hanya-Baca telah diaktifkan. Ini akan mencegah setelan beberapa konfigurasi melalui antarmuka-web. Selanjutnya, berkas perlu dibuat dapat-dibaca secara manual untuk setiap pembaruan.",
- "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP tampaknya disetel menjadi strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.",
"Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server Anda dijalankan di Microsoft Windows. Kami sangat menyarankan Linux untuk mendapatkan pengalaman pengguna yang optimal.",
+ "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu dibawah versi 4.0.6 terinstal, untuk alasan stabilitas dan kinerja, kami menyarankan untuk memperbarui ke versi APCu yang lebih baru.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Module 'fileinfo' pada PHP tidak ada. Kami sangat menyarankan untuk mengaktifkan modul ini untuk mendapatkan hasil terbaik pada proses pendeteksian mime-type.",
"System locale can not be set to a one which supports UTF-8." : "Sistem lokal tidak dapat diatur untuk satu yang mendukung UTF-8.",
"This means that there might be problems with certain characters in file names." : "Ini artinya mungkin ada masalah dengan karakter tertentu pada nama berkas.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Kamu sangat menyarankan untuk menginstal paket-paket yang dibutuhkan pada sistem agar mendukung lokal berikut: %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\")" : "Jika instalasi Anda tidak di root domain dan menggunakan sistem cron, hal tersebut dapat menyebabkan masalah dengan pembuatan URL. Untuk mencegah masalah tersebut, mohon atur opsi \"overwrite.cli.url\" pada berkas config.php Anda ke jalur lokasi webroot instalasi Anda (Disarankan: \"%s\")",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Tidak mungkin untuk mengeksekusi cronjob via CLI. Kesalahan teknis berikut muncul:",
+ "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Mohon periksa dua kali <a target=\"_blank\" href=\"%s\">panduan instalasi ↗</a>, dan periksa segala kesalahan atau peringatan pada <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Buka dokumentasi",
"Allow apps to use the Share API" : "Izinkan aplikasi untuk menggunakan API Pembagian",
"Allow users to share via link" : "Izinkan pengguna untuk membagikan via tautan",
"Enforce password protection" : "Berlakukan perlindungan sandi",
@@ -113,10 +136,20 @@ OC.L10N.register(
"Allow users to send mail notification for shared files to other users" : "Izinkan pengguna mengirim pemberitahuan email saat berbagi berkas kepada pengguna lainnya",
"Exclude groups from sharing" : "Tidak termasuk grup untuk berbagi",
"These groups will still be able to receive shares, but not to initiate them." : "Grup ini akan tetap dapat menerima berbagi, tatapi tidak dapat membagikan.",
+ "Last cron job execution: %s." : "Eksekusi penjadwalan cron terakhir: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "Eksekusi penjadwalan cron terakhir: %s. Kelihatannya ada yang salah.",
"Cron was not executed yet!" : "Cron masih belum dieksekusi!",
"Execute one task with each page loaded" : "Jalankan tugas setiap kali halaman dimuat",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php didaftarkan pada layanan webcron untuk memanggil cron.php setiap 15 menit melalui http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Gunakan layanan cron sistem untuk memanggil berkas cron.php setiap 15 menit.",
+ "Enable server-side encryption" : "Aktifkan enkripsi sisi-server",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Enkripsi adalah proses satu arah. Setelah enkripsi diaktifkan, semua berkas mulai saat ini akan di enkrispi pada server dan tidak mungkin untuk menonaktifkan enkrispi dikemudian hari. Ini merupakan peringatan terakhir: Apakah Anda yakin ingin mengaktifkan enkripsi?",
+ "Enable encryption" : "Aktifkan enkripsi",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Tidak ada modul enkripsi yang dimuat, mohon aktifkan modul enkripsi di menu aplikasi.",
+ "Select default encryption module:" : "Pilih modul enkripsi baku:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru. Mohon aktifkan \"Modul Enkripsi Baku ownCloud\" dan jalankan 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru.",
+ "Start migration" : "Mulai migrasi",
"This is used for sending out notifications." : "Ini digunakan untuk mengirim notifikasi keluar.",
"Send mode" : "Modus kirim",
"Encryption" : "Enkripsi",
@@ -136,25 +169,47 @@ OC.L10N.register(
"Download logfile" : "Unduh berkas log",
"More" : "Lainnya",
"Less" : "Ciutkan",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Berkas log lebih besar dari 100MB. Pengunduhan ini memerlukan beberapa saat!",
+ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite digunakan sebagai basis data. Untuk instalasi yang lebih besar, kami menyarankan untuk beralih ke backend basis data yang berbeda.",
+ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Untuk migrasi ke basis data lainnya, gunakan alat baris perintah: 'occ db:convert-type', atau lihat <a target=\"_blank\" href=\"%s\">dokumentasi ↗</a>.",
+ "How to do backups" : "Bagaimana cara membuat cadangan",
+ "Advanced monitoring" : "Pemantauan tingkat lanjut",
+ "Performance tuning" : "Pemeliharaan performa",
+ "Improving the config.php" : "Memperbaiki config.php",
+ "Theming" : "Tema",
+ "Hardening and security guidance" : "Panduan Keselamatan dan Keamanan",
"Version" : "Versi",
- "More apps" : "Lebih banyak aplikasi",
+ "Developer documentation" : "Dokumentasi pengembang",
+ "Experimental applications ahead" : "Aplikasi percobaan terdepan",
+ "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplikasi percobaan belum diperiksa untuk masalah keamanan, baru atau dikenal tidak stabil dan dalam proses pengembangan. Menginstalnya dapat menyebabkan kehilangan data atau penerobosan keamanan.",
"by" : "oleh",
"licensed" : "dilisensikan",
"Documentation:" : "Dokumentasi:",
"User Documentation" : "Dokumentasi Pengguna",
"Admin Documentation" : "Dokumentasi Admin",
+ "Show description …" : "Tampilkan deskripsi ...",
+ "Hide description …" : "Sembunyikan deskripsi ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:",
"Update to %s" : "Perbarui ke %s",
"Enable only for specific groups" : "Aktifkan hanya untuk grup tertentu",
"Uninstall App" : "Copot aplikasi",
+ "Enable experimental apps" : "Aktifkan aplikasi percobaan",
+ "No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini.",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hai,<br><br>sekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.<br><br>Nama Pengguna Anda: %s<br>Akses di: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Horee!",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hai,\n\nsekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.\n\nNama Pengguna Anda: %s\nAkses di: %s\n",
+ "User documentation" : "Dokumentasi pengguna.",
+ "Administrator documentation" : "Dokumentasi administrator",
+ "Online documentation" : "Dokumentasi online",
"Forum" : "Forum",
+ "Issue tracker" : "Pelacak masalah",
+ "Commercial support" : "Dukungan komersial",
"Get the apps to sync your files" : "Dapatkan aplikasi untuk sinkronisasi berkas Anda",
"Desktop client" : "Klien desktop",
"Android app" : "Aplikasi Android",
"iOS app" : "Aplikasi iOS",
+ "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Jika Anda ingin mendukung proyek ini\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">bergabunglah dalam pengembangan</a>\n\t\tatau\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">promosikan</a>!",
"Show First Run Wizard again" : "Tampilkan Penuntun Konfigurasi Awal",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Anda telah menggunakan <strong>%s</strong> dari total <strong>%s</strong>",
"Password" : "Sandi",
@@ -162,11 +217,13 @@ OC.L10N.register(
"Current password" : "Sandi saat ini",
"New password" : "Sandi baru",
"Change password" : "Ubah sandi",
+ "Full name" : "Nama lengkap",
"No display name set" : "Nama tampilan tidak diatur",
"Email" : "Email",
"Your email address" : "Alamat email Anda",
"Fill in an email address to enable password recovery and receive notifications" : "Isikan alamat email untuk mengaktifkan pemulihan sandi dan menerima notifikasi",
"No email address set" : "Alamat email tidak diatur",
+ "You are member of the following groups:" : "Anda adalah anggota dari grup berikut:",
"Profile picture" : "Foto profil",
"Upload new" : "Unggah baru",
"Select new from Files" : "Pilih baru dari Berkas",
@@ -181,6 +238,8 @@ OC.L10N.register(
"Valid until" : "Berlaku sampai",
"Issued By" : "Diterbitkan oleh",
"Valid until %s" : "Berlaku sampai %s",
+ "Import root certificate" : "Impor sertifikat root",
+ "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Dikembangkan oleh {communityopen}komunitas ownCloud{linkclose}, {githubopen}kode sumber{linkclose} dilisensikan dibawah {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}.",
"Show storage location" : "Tampilkan kolasi penyimpanan",
"Show last log in" : "Tampilkan masuk terakhir",
"Show user backend" : "Tampilkan pengguna backend",
@@ -209,6 +268,6 @@ OC.L10N.register(
"change full name" : "ubah nama lengkap",
"set new password" : "setel sandi baru",
"change email address" : "ubah alamat email",
- "Default" : "Default"
+ "Default" : "Baku"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/id.json b/settings/l10n/id.json
index c4b0c17df75..30acbef09c2 100644
--- a/settings/l10n/id.json
+++ b/settings/l10n/id.json
@@ -1,8 +1,12 @@
{ "translations": {
+ "Security & setup warnings" : "Peringatan Keamanan & Pengaturan",
"Sharing" : "Berbagi",
+ "Server-side encryption" : "Enkripsi sisi-server",
"External Storage" : "Penyimpanan Eksternal",
"Cron" : "Cron",
+ "Email server" : "Server email",
"Log" : "Log",
+ "Tips & tricks" : "Tips & trik",
"Updates" : "Pembaruan",
"Authentication error" : "Terjadi kesalahan saat otentikasi",
"Your full name has been changed." : "Nama lengkap Anda telah diubah",
@@ -18,18 +22,23 @@
"No user supplied" : "Tidak ada pengguna yang diberikan",
"Please provide an admin recovery password, otherwise all user data will be lost" : "Mohon sediakan sandi pemulihan admin, jika tidak semua data pengguna akan terhapus",
"Wrong admin recovery password. Please check the password and try again." : "Sandi pemulihan admin salah. Periksa sandi dan ulangi kembali.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Backend tidak mendukung pengubahan sandi, tapi kunci enkripsi pengguna berhasil diperbarui.",
"Unable to change password" : "Tidak dapat mengubah sandi",
"Enabled" : "Diaktifkan",
"Not enabled" : "Tidak diaktifkan",
+ "A problem occurred, please check your log files (Error: %s)" : "Terjadi masalah, mohon periksa berkas log Anda (Kesalahan: %s)",
+ "Migration Completed" : "Migrasi Selesai",
"Group already exists." : "Grup sudah ada.",
"Unable to add group." : "Tidak dapat menambah grup.",
"Unable to delete group." : "Tidak dapat menghapus grup.",
"log-level out of allowed range" : "level-log melebihi batas yang diizinkan",
"Saved" : "Disimpan",
"test email settings" : "pengaturan email percobaan",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Terjadi masalah saat mengirim email. Mohon periksa kembali pengaturan Anda. (Kesalahan: %s)",
"Email sent" : "Email terkirim",
"You need to set your user email before being able to send test emails." : "Anda perlu menetapkan email pengguna Anda sebelum dapat mengirim email percobaan.",
"Invalid mail address" : "Alamat email salah",
+ "A user with that name already exists." : "Pengguna dengan nama tersebut sudah ada.",
"Unable to create user." : "Tidak dapat membuat pengguna.",
"Your %s account was created" : "Akun %s Anda telah dibuat",
"Unable to delete user." : "Tidak dapat menghapus pengguna.",
@@ -39,8 +48,13 @@
"Email saved" : "Email disimpan",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Apakah And yakin ingin menambahkan \"{domain}\" sebagai domain terpercaya?",
"Add trusted domain" : "Tambah domain terpercaya",
+ "Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai.",
+ "Migration started …" : "Migrasi dimulai ...",
"Sending..." : "Mengirim",
"All" : "Semua",
+ "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplikasi resmi dikembangkan oleh komunitas ownCloud. Mereka menawarkan fitur pusat bagi ownCloud dan siap digunakan untuk penggunaan produksi.",
+ "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Aplikasi tersetujui dikembangkan oleh pengembang terpercaya dan telah lulus pemeriksaan keamanan. Mereka secara aktif dipelihara direpositori kode terbuka dan pemelihara sudah memastikan mereka stabil untuk penggunaan normal.",
+ "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Aplikasi ini belum diperiksa masalah keamanan dan masih baru atau dikenal tidak stabil. Instal dengan resiko.",
"Please wait...." : "Mohon tunggu....",
"Error while disabling app" : "Terjadi kesalahan saat menonaktifkan aplikasi",
"Disable" : "Nonaktifkan",
@@ -60,6 +74,7 @@
"Strong password" : "Sandi kuat",
"Valid until {date}" : "Berlaku sampai {date}",
"Delete" : "Hapus",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Terjadi kesalahan. Mohon unggah sertifikat PEM terenkode-ASCII.",
"Groups" : "Grup",
"Unable to delete {objName}" : "Tidak dapat menghapus {objName}",
"Error creating group" : "Terjadi kesalahan saat membuat grup",
@@ -76,6 +91,8 @@
"A valid password must be provided" : "Harus memberikan sandi yang benar",
"A valid email must be provided" : "Email yang benar harus diberikan",
"__language_name__" : "__language_name__",
+ "Sync clients" : "Klien sync",
+ "Personal info" : "Info pribadi",
"SSL root certificates" : "Sertifikat root SSL",
"Everything (fatal issues, errors, warnings, info, debug)" : "Semuanya (Masalah fatal, galat, peringatan, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, peringatan, galat dan masalah fatal",
@@ -88,15 +105,21 @@
"NT LAN Manager" : "Manajer NT LAN",
"SSL" : "SSL",
"TLS" : "TLS",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "kelihatannya php tidak diatur dengan benar untuk variabel lingkungan sistem kueri. Pemeriksaan dengan getenv(\"PATH\") hanya mengembalikan respon kosong.",
+ "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Mohon periksa dokumentasi instalasi untuk catatan konfigurasi php dan konfigurasi php server Anda, terutama saat menggunakan ph-fpm.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfig Hanya-Baca telah diaktifkan. Ini akan mencegah setelan beberapa konfigurasi melalui antarmuka-web. Selanjutnya, berkas perlu dibuat dapat-dibaca secara manual untuk setiap pembaruan.",
- "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Tampaknya pengaturan PHP strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP tampaknya disetel menjadi strip inline doc blocks. Hal ini akan membuat beberapa aplikasi inti tidak dapat diakses.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hal ini kemungkinan disebabkan oleh cache/akselerator seperti Zend OPcache atau eAccelerator.",
"Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server Anda dijalankan di Microsoft Windows. Kami sangat menyarankan Linux untuk mendapatkan pengalaman pengguna yang optimal.",
+ "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu dibawah versi 4.0.6 terinstal, untuk alasan stabilitas dan kinerja, kami menyarankan untuk memperbarui ke versi APCu yang lebih baru.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Module 'fileinfo' pada PHP tidak ada. Kami sangat menyarankan untuk mengaktifkan modul ini untuk mendapatkan hasil terbaik pada proses pendeteksian mime-type.",
"System locale can not be set to a one which supports UTF-8." : "Sistem lokal tidak dapat diatur untuk satu yang mendukung UTF-8.",
"This means that there might be problems with certain characters in file names." : "Ini artinya mungkin ada masalah dengan karakter tertentu pada nama berkas.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Kamu sangat menyarankan untuk menginstal paket-paket yang dibutuhkan pada sistem agar mendukung lokal berikut: %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\")" : "Jika instalasi Anda tidak di root domain dan menggunakan sistem cron, hal tersebut dapat menyebabkan masalah dengan pembuatan URL. Untuk mencegah masalah tersebut, mohon atur opsi \"overwrite.cli.url\" pada berkas config.php Anda ke jalur lokasi webroot instalasi Anda (Disarankan: \"%s\")",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Tidak mungkin untuk mengeksekusi cronjob via CLI. Kesalahan teknis berikut muncul:",
+ "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Mohon periksa dua kali <a target=\"_blank\" href=\"%s\">panduan instalasi ↗</a>, dan periksa segala kesalahan atau peringatan pada <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Buka dokumentasi",
"Allow apps to use the Share API" : "Izinkan aplikasi untuk menggunakan API Pembagian",
"Allow users to share via link" : "Izinkan pengguna untuk membagikan via tautan",
"Enforce password protection" : "Berlakukan perlindungan sandi",
@@ -111,10 +134,20 @@
"Allow users to send mail notification for shared files to other users" : "Izinkan pengguna mengirim pemberitahuan email saat berbagi berkas kepada pengguna lainnya",
"Exclude groups from sharing" : "Tidak termasuk grup untuk berbagi",
"These groups will still be able to receive shares, but not to initiate them." : "Grup ini akan tetap dapat menerima berbagi, tatapi tidak dapat membagikan.",
+ "Last cron job execution: %s." : "Eksekusi penjadwalan cron terakhir: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "Eksekusi penjadwalan cron terakhir: %s. Kelihatannya ada yang salah.",
"Cron was not executed yet!" : "Cron masih belum dieksekusi!",
"Execute one task with each page loaded" : "Jalankan tugas setiap kali halaman dimuat",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php didaftarkan pada layanan webcron untuk memanggil cron.php setiap 15 menit melalui http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Gunakan layanan cron sistem untuk memanggil berkas cron.php setiap 15 menit.",
+ "Enable server-side encryption" : "Aktifkan enkripsi sisi-server",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Enkripsi adalah proses satu arah. Setelah enkripsi diaktifkan, semua berkas mulai saat ini akan di enkrispi pada server dan tidak mungkin untuk menonaktifkan enkrispi dikemudian hari. Ini merupakan peringatan terakhir: Apakah Anda yakin ingin mengaktifkan enkripsi?",
+ "Enable encryption" : "Aktifkan enkripsi",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Tidak ada modul enkripsi yang dimuat, mohon aktifkan modul enkripsi di menu aplikasi.",
+ "Select default encryption module:" : "Pilih modul enkripsi baku:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru. Mohon aktifkan \"Modul Enkripsi Baku ownCloud\" dan jalankan 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Anda perlu untuk mengubah kunci enkripsi dari enkripsi lama (ownCloud <= 8.0) ke yang baru.",
+ "Start migration" : "Mulai migrasi",
"This is used for sending out notifications." : "Ini digunakan untuk mengirim notifikasi keluar.",
"Send mode" : "Modus kirim",
"Encryption" : "Enkripsi",
@@ -134,25 +167,47 @@
"Download logfile" : "Unduh berkas log",
"More" : "Lainnya",
"Less" : "Ciutkan",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Berkas log lebih besar dari 100MB. Pengunduhan ini memerlukan beberapa saat!",
+ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite digunakan sebagai basis data. Untuk instalasi yang lebih besar, kami menyarankan untuk beralih ke backend basis data yang berbeda.",
+ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Untuk migrasi ke basis data lainnya, gunakan alat baris perintah: 'occ db:convert-type', atau lihat <a target=\"_blank\" href=\"%s\">dokumentasi ↗</a>.",
+ "How to do backups" : "Bagaimana cara membuat cadangan",
+ "Advanced monitoring" : "Pemantauan tingkat lanjut",
+ "Performance tuning" : "Pemeliharaan performa",
+ "Improving the config.php" : "Memperbaiki config.php",
+ "Theming" : "Tema",
+ "Hardening and security guidance" : "Panduan Keselamatan dan Keamanan",
"Version" : "Versi",
- "More apps" : "Lebih banyak aplikasi",
+ "Developer documentation" : "Dokumentasi pengembang",
+ "Experimental applications ahead" : "Aplikasi percobaan terdepan",
+ "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplikasi percobaan belum diperiksa untuk masalah keamanan, baru atau dikenal tidak stabil dan dalam proses pengembangan. Menginstalnya dapat menyebabkan kehilangan data atau penerobosan keamanan.",
"by" : "oleh",
"licensed" : "dilisensikan",
"Documentation:" : "Dokumentasi:",
"User Documentation" : "Dokumentasi Pengguna",
"Admin Documentation" : "Dokumentasi Admin",
+ "Show description …" : "Tampilkan deskripsi ...",
+ "Hide description …" : "Sembunyikan deskripsi ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:",
"Update to %s" : "Perbarui ke %s",
"Enable only for specific groups" : "Aktifkan hanya untuk grup tertentu",
"Uninstall App" : "Copot aplikasi",
+ "Enable experimental apps" : "Aktifkan aplikasi percobaan",
+ "No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini.",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hai,<br><br>sekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.<br><br>Nama Pengguna Anda: %s<br>Akses di: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Horee!",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hai,\n\nsekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.\n\nNama Pengguna Anda: %s\nAkses di: %s\n",
+ "User documentation" : "Dokumentasi pengguna.",
+ "Administrator documentation" : "Dokumentasi administrator",
+ "Online documentation" : "Dokumentasi online",
"Forum" : "Forum",
+ "Issue tracker" : "Pelacak masalah",
+ "Commercial support" : "Dukungan komersial",
"Get the apps to sync your files" : "Dapatkan aplikasi untuk sinkronisasi berkas Anda",
"Desktop client" : "Klien desktop",
"Android app" : "Aplikasi Android",
"iOS app" : "Aplikasi iOS",
+ "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Jika Anda ingin mendukung proyek ini\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">bergabunglah dalam pengembangan</a>\n\t\tatau\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">promosikan</a>!",
"Show First Run Wizard again" : "Tampilkan Penuntun Konfigurasi Awal",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Anda telah menggunakan <strong>%s</strong> dari total <strong>%s</strong>",
"Password" : "Sandi",
@@ -160,11 +215,13 @@
"Current password" : "Sandi saat ini",
"New password" : "Sandi baru",
"Change password" : "Ubah sandi",
+ "Full name" : "Nama lengkap",
"No display name set" : "Nama tampilan tidak diatur",
"Email" : "Email",
"Your email address" : "Alamat email Anda",
"Fill in an email address to enable password recovery and receive notifications" : "Isikan alamat email untuk mengaktifkan pemulihan sandi dan menerima notifikasi",
"No email address set" : "Alamat email tidak diatur",
+ "You are member of the following groups:" : "Anda adalah anggota dari grup berikut:",
"Profile picture" : "Foto profil",
"Upload new" : "Unggah baru",
"Select new from Files" : "Pilih baru dari Berkas",
@@ -179,6 +236,8 @@
"Valid until" : "Berlaku sampai",
"Issued By" : "Diterbitkan oleh",
"Valid until %s" : "Berlaku sampai %s",
+ "Import root certificate" : "Impor sertifikat root",
+ "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Dikembangkan oleh {communityopen}komunitas ownCloud{linkclose}, {githubopen}kode sumber{linkclose} dilisensikan dibawah {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}.",
"Show storage location" : "Tampilkan kolasi penyimpanan",
"Show last log in" : "Tampilkan masuk terakhir",
"Show user backend" : "Tampilkan pengguna backend",
@@ -207,6 +266,6 @@
"change full name" : "ubah nama lengkap",
"set new password" : "setel sandi baru",
"change email address" : "ubah alamat email",
- "Default" : "Default"
+ "Default" : "Baku"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/settings/l10n/is.js b/settings/l10n/is.js
index 0d51ee2eb39..73c70d9fd8f 100644
--- a/settings/l10n/is.js
+++ b/settings/l10n/is.js
@@ -47,4 +47,4 @@ OC.L10N.register(
"Other" : "Annað",
"Default" : "Sjálfgefið"
},
-"nplurals=2; plural=(n != 1);");
+"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);");
diff --git a/settings/l10n/is.json b/settings/l10n/is.json
index ece8f077333..341531648a6 100644
--- a/settings/l10n/is.json
+++ b/settings/l10n/is.json
@@ -44,5 +44,5 @@
"Unlimited" : "Ótakmarkað",
"Other" : "Annað",
"Default" : "Sjálfgefið"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
+},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 || n % 100 != 11);"
} \ No newline at end of file
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index 26d8341ad3e..8e9ae024f1a 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Avvisi di sicurezza e di configurazione",
"Sharing" : "Condivisione",
- "External Storage" : "Archiviazione esterna",
"Server-side encryption" : "Cifratura lato server",
+ "External Storage" : "Archiviazione esterna",
"Cron" : "Cron",
"Email server" : "Server di posta",
"Log" : "Log",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se la tua installazione non si trova nella radice del dominio e utilizza il cron di sistema, potrebbero esserci problemi con la generazione degli URL. Per evitare questi problemi, imposta l'opzione \"overwrite.cli.url\" nel file config.php al percorso della radice del sito della tua installazione (Consigliato: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Non è stato possibile eseguire il job di cron tramite CLI. Sono apparsi i seguenti errori tecnici:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Leggi attentamente le <a target=\"_blank\" href=\"%s\">guide d'installazione ↗</a>, e controlla gli errori o gli avvisi nel <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Apri la documentazione",
"Allow apps to use the Share API" : "Consenti alle applicazioni di utilizzare le API di condivisione",
"Allow users to share via link" : "Consenti agli utenti di condivere tramite collegamento",
"Enforce password protection" : "Imponi la protezione con password",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Ultima esecuzione di cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Ultima esecuzione di cron: %s. Potrebbe esserci un problema.",
"Cron was not executed yet!" : "Cron non è stato ancora eseguito!",
- "Open documentation" : "Apri la documentazione",
"Execute one task with each page loaded" : "Esegui un'operazione con ogni pagina caricata",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php è registrato su un servizio webcron per invocare cron.php ogni 15 minuti su http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 15 minuti.",
"Enable server-side encryption" : "Abilita cifratura lato server",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "La cifratura è un processo a senso unico. Una volta che la cifratura è abilitata, tutti i file da quel momento in poi saranno cifrati sul server e non sarà possibile disattivare la cifratura successivamente. Questo è l'ultimo avviso: vuoi davvero abilitare la cifratura?",
+ "Enable encryption" : "Abilita cifratura",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nessun modulo di cifratura caricato, carica un modulo di cifratura nel menu delle applicazioni.",
+ "Select default encryption module:" : "Seleziona il modulo di cifratura predefinito:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova. Abilita il \"Modulo di cifratura predefinito di ownCloud\" ed esegui 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova.",
"Start migration" : "Avvia migrazione",
"This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.",
"Send mode" : "Modalità di invio",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Temi",
"Hardening and security guidance" : "Guida alla messa in sicurezza",
"Version" : "Versione",
- "More apps" : "Altre applicazioni",
"Developer documentation" : "Documentazione dello sviluppatore",
"Experimental applications ahead" : "Prima le applicazioni sperimentali",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Le applicazioni sperimentali non sono sottoposte a controlli di sicurezza, sono nuove o notoriamente instabili e sotto sviluppo intensivo. La loro installazione può causare perdite di dati o problemi di sicurezza.",
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index 2fd23c272a3..00e55c4b378 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Avvisi di sicurezza e di configurazione",
"Sharing" : "Condivisione",
- "External Storage" : "Archiviazione esterna",
"Server-side encryption" : "Cifratura lato server",
+ "External Storage" : "Archiviazione esterna",
"Cron" : "Cron",
"Email server" : "Server di posta",
"Log" : "Log",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se la tua installazione non si trova nella radice del dominio e utilizza il cron di sistema, potrebbero esserci problemi con la generazione degli URL. Per evitare questi problemi, imposta l'opzione \"overwrite.cli.url\" nel file config.php al percorso della radice del sito della tua installazione (Consigliato: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Non è stato possibile eseguire il job di cron tramite CLI. Sono apparsi i seguenti errori tecnici:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Leggi attentamente le <a target=\"_blank\" href=\"%s\">guide d'installazione ↗</a>, e controlla gli errori o gli avvisi nel <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Apri la documentazione",
"Allow apps to use the Share API" : "Consenti alle applicazioni di utilizzare le API di condivisione",
"Allow users to share via link" : "Consenti agli utenti di condivere tramite collegamento",
"Enforce password protection" : "Imponi la protezione con password",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Ultima esecuzione di cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Ultima esecuzione di cron: %s. Potrebbe esserci un problema.",
"Cron was not executed yet!" : "Cron non è stato ancora eseguito!",
- "Open documentation" : "Apri la documentazione",
"Execute one task with each page loaded" : "Esegui un'operazione con ogni pagina caricata",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php è registrato su un servizio webcron per invocare cron.php ogni 15 minuti su http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 15 minuti.",
"Enable server-side encryption" : "Abilita cifratura lato server",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "La cifratura è un processo a senso unico. Una volta che la cifratura è abilitata, tutti i file da quel momento in poi saranno cifrati sul server e non sarà possibile disattivare la cifratura successivamente. Questo è l'ultimo avviso: vuoi davvero abilitare la cifratura?",
+ "Enable encryption" : "Abilita cifratura",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nessun modulo di cifratura caricato, carica un modulo di cifratura nel menu delle applicazioni.",
+ "Select default encryption module:" : "Seleziona il modulo di cifratura predefinito:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova. Abilita il \"Modulo di cifratura predefinito di ownCloud\" ed esegui 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Devi migrare le tue chiavi di cifratura dalla vecchia cifratura (ownCloud <= 8.0) alla nuova.",
"Start migration" : "Avvia migrazione",
"This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.",
"Send mode" : "Modalità di invio",
@@ -172,7 +178,6 @@
"Theming" : "Temi",
"Hardening and security guidance" : "Guida alla messa in sicurezza",
"Version" : "Versione",
- "More apps" : "Altre applicazioni",
"Developer documentation" : "Documentazione dello sviluppatore",
"Experimental applications ahead" : "Prima le applicazioni sperimentali",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Le applicazioni sperimentali non sono sottoposte a controlli di sicurezza, sono nuove o notoriamente instabili e sotto sviluppo intensivo. La loro installazione può causare perdite di dati o problemi di sicurezza.",
diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js
index 98e86129cbc..013621e87dd 100644
--- a/settings/l10n/ja.js
+++ b/settings/l10n/ja.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "セキュリティ&セットアップ警告",
"Sharing" : "共有",
+ "Server-side encryption" : "サーバーサイド暗号化",
"External Storage" : "外部ストレージ",
- "Server-side encryption" : "サーバー側暗号",
"Cron" : "Cron",
"Email server" : "メールサーバー",
"Log" : "ログ",
@@ -100,14 +100,15 @@ OC.L10N.register(
"TLS" : "TLS",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。",
- "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。",
"Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "サーバーがMicrosoft Windowsで動いています。ユーザーに最適なサービスを提供するためには、Linuxを利用することを強くお勧めします。",
"APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "バージョン4.0.6より古いAPCuがインストールされています、安定性とパフォーマンスのために新しいバージョンのAPCuにアップデートすることをお勧めします。",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP のモジュール 'fileinfo' が見つかりません。mimeタイプの検出を精度良く行うために、このモジュールを有効にすることを強くお勧めします。",
"System locale can not be set to a one which supports UTF-8." : "システムロケールを UTF-8 をサポートするロケールに設定できません。",
"This means that there might be problems with certain characters in file names." : "これは、ファイル名の特定の文字に問題があることを意味しています。",
- "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "次のロケールをサポートするために、システムに必要なパッケージをインストールすることを強くおすすめします: %s。",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "次のロケールをサポートするには、システムに必要なパッケージをインストールすることを強くおすすめします: %s。",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "もし、URLがドメインのルート(/)で終わっていない場合で、システムのcronを利用している場合、URLの生成に問題が発生します。その場合は、config.php ファイルの中の \"overwrite.cli.url\" オプションをインストールしたwebrootのパスに設定してください。(推奨: \"%s\")",
+ "Open documentation" : "ドキュメントを開く",
"Allow apps to use the Share API" : "アプリからの共有APIの利用を許可する",
"Allow users to share via link" : "URLリンクで共有を許可する",
"Enforce password protection" : "常にパスワード保護を有効にする",
@@ -125,10 +126,12 @@ OC.L10N.register(
"Last cron job execution: %s." : "最終cronジョブ実行: %s。",
"Last cron job execution: %s. Something seems wrong." : "最終cronジョブ実行: %s。何らかの問題があります。",
"Cron was not executed yet!" : "cronはまだ実行されていません!",
- "Open documentation" : "ドキュメントを開く",
"Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。",
- "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行する。",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行します。",
+ "Enable server-side encryption" : "サーバーサイド暗号化を有効に",
+ "Enable encryption" : "暗号化を有効に",
+ "Select default encryption module:" : "デフォルトの暗号化モジュールを選択:",
"This is used for sending out notifications." : "通知を送信する際に使用します。",
"Send mode" : "送信モード",
"Encryption" : "暗号化",
@@ -145,10 +148,10 @@ OC.L10N.register(
"Test email settings" : "メール設定のテスト",
"Send email" : "メールを送信",
"Log level" : "ログレベル",
- "Download logfile" : "logファイルのダウンロード",
+ "Download logfile" : "ログファイルのダウンロード",
"More" : "もっと見る",
"Less" : "閉じる",
- "The logfile is bigger than 100 MB. Downloading it may take some time!" : "100MBより大きいlogファイルです。ダウンロードに時間がかかります!",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "ログファイルが100MB以上あります。ダウンロードに時間がかかります!",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLiteがデータベースとして使用されています。大規模な運用では別のデータベースに切り替えることをお勧めします。",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特にデスクトップクライアントをファイル同期に使用する場合,SQLiteは非推奨です.",
"How to do backups" : "バックアップ方法",
@@ -156,7 +159,6 @@ OC.L10N.register(
"Performance tuning" : "パフォーマンスチューニング",
"Improving the config.php" : "config.phpの改善",
"Version" : "バージョン",
- "More apps" : "他のアプリ",
"Developer documentation" : "デベロッパードキュメント",
"by" : "by",
"licensed" : "ライセンス",
@@ -165,7 +167,7 @@ OC.L10N.register(
"Admin Documentation" : "管理者ドキュメント",
"Show description …" : "説明を表示 ...",
"Hide description …" : "説明を隠す ...",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係は無いためこのアプリをインストールできません",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:",
"Update to %s" : "%sにアップデート",
"Enable only for specific groups" : "特定のグループのみ有効に",
"Uninstall App" : "アプリをアンインストール",
diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json
index 1ee6d8f1b08..c3868756458 100644
--- a/settings/l10n/ja.json
+++ b/settings/l10n/ja.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "セキュリティ&セットアップ警告",
"Sharing" : "共有",
+ "Server-side encryption" : "サーバーサイド暗号化",
"External Storage" : "外部ストレージ",
- "Server-side encryption" : "サーバー側暗号",
"Cron" : "Cron",
"Email server" : "メールサーバー",
"Log" : "ログ",
@@ -98,14 +98,15 @@
"TLS" : "TLS",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "\"config\"は読み取り専用になってます。そのためにWEBインターフェースで設定できません可能性があります。さらに、更新時に\"config\"ファイルを書き込み権限を与えることが必要",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHPでインラインドキュメントブロックを取り除く設定になっています。これによりコアアプリで利用できないものがいくつかあります。",
- "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレータが原因かもしれません。",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "これは、Zend OPcacheやeAccelerator 等のキャッシュ/アクセラレーターが原因かもしれません。",
"Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "サーバーがMicrosoft Windowsで動いています。ユーザーに最適なサービスを提供するためには、Linuxを利用することを強くお勧めします。",
"APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "バージョン4.0.6より古いAPCuがインストールされています、安定性とパフォーマンスのために新しいバージョンのAPCuにアップデートすることをお勧めします。",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP のモジュール 'fileinfo' が見つかりません。mimeタイプの検出を精度良く行うために、このモジュールを有効にすることを強くお勧めします。",
"System locale can not be set to a one which supports UTF-8." : "システムロケールを UTF-8 をサポートするロケールに設定できません。",
"This means that there might be problems with certain characters in file names." : "これは、ファイル名の特定の文字に問題があることを意味しています。",
- "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "次のロケールをサポートするために、システムに必要なパッケージをインストールすることを強くおすすめします: %s。",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "次のロケールをサポートするには、システムに必要なパッケージをインストールすることを強くおすすめします: %s。",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "もし、URLがドメインのルート(/)で終わっていない場合で、システムのcronを利用している場合、URLの生成に問題が発生します。その場合は、config.php ファイルの中の \"overwrite.cli.url\" オプションをインストールしたwebrootのパスに設定してください。(推奨: \"%s\")",
+ "Open documentation" : "ドキュメントを開く",
"Allow apps to use the Share API" : "アプリからの共有APIの利用を許可する",
"Allow users to share via link" : "URLリンクで共有を許可する",
"Enforce password protection" : "常にパスワード保護を有効にする",
@@ -123,10 +124,12 @@
"Last cron job execution: %s." : "最終cronジョブ実行: %s。",
"Last cron job execution: %s. Something seems wrong." : "最終cronジョブ実行: %s。何らかの問題があります。",
"Cron was not executed yet!" : "cronはまだ実行されていません!",
- "Open documentation" : "ドキュメントを開く",
"Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。",
- "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行する。",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行します。",
+ "Enable server-side encryption" : "サーバーサイド暗号化を有効に",
+ "Enable encryption" : "暗号化を有効に",
+ "Select default encryption module:" : "デフォルトの暗号化モジュールを選択:",
"This is used for sending out notifications." : "通知を送信する際に使用します。",
"Send mode" : "送信モード",
"Encryption" : "暗号化",
@@ -143,10 +146,10 @@
"Test email settings" : "メール設定のテスト",
"Send email" : "メールを送信",
"Log level" : "ログレベル",
- "Download logfile" : "logファイルのダウンロード",
+ "Download logfile" : "ログファイルのダウンロード",
"More" : "もっと見る",
"Less" : "閉じる",
- "The logfile is bigger than 100 MB. Downloading it may take some time!" : "100MBより大きいlogファイルです。ダウンロードに時間がかかります!",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "ログファイルが100MB以上あります。ダウンロードに時間がかかります!",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLiteがデータベースとして使用されています。大規模な運用では別のデータベースに切り替えることをお勧めします。",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特にデスクトップクライアントをファイル同期に使用する場合,SQLiteは非推奨です.",
"How to do backups" : "バックアップ方法",
@@ -154,7 +157,6 @@
"Performance tuning" : "パフォーマンスチューニング",
"Improving the config.php" : "config.phpの改善",
"Version" : "バージョン",
- "More apps" : "他のアプリ",
"Developer documentation" : "デベロッパードキュメント",
"by" : "by",
"licensed" : "ライセンス",
@@ -163,7 +165,7 @@
"Admin Documentation" : "管理者ドキュメント",
"Show description …" : "説明を表示 ...",
"Hide description …" : "説明を隠す ...",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係は無いためこのアプリをインストールできません",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:",
"Update to %s" : "%sにアップデート",
"Enable only for specific groups" : "特定のグループのみ有効に",
"Uninstall App" : "アプリをアンインストール",
diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js
index 853fa76e4b6..7cc3c07d332 100644
--- a/settings/l10n/ko.js
+++ b/settings/l10n/ko.js
@@ -1,10 +1,14 @@
OC.L10N.register(
"settings",
{
+ "Security & setup warnings" : "보안 및 설치 경고",
"Sharing" : "공유",
+ "Server-side encryption" : "서버 측 암호화",
"External Storage" : "외부 저장소",
"Cron" : "Cron",
+ "Email server" : "이메일 서버",
"Log" : "로그",
+ "Tips & tricks" : "팁과 추가 정보",
"Updates" : "업데이트",
"Authentication error" : "인증 오류",
"Your full name has been changed." : "전체 이름이 변경되었습니다.",
@@ -20,18 +24,23 @@ OC.L10N.register(
"No user supplied" : "사용자가 지정되지 않음",
"Please provide an admin recovery password, otherwise all user data will be lost" : "관리자 복구 암호를 입력하지 않으면 모든 사용자 데이터가 삭제됩니다",
"Wrong admin recovery password. Please check the password and try again." : "관리자 복구 암호가 잘못되었습니다. 암호를 다시 확인하십시오.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "백엔드에서 암호 변경을 지원하지 않지만, 암호화 키는 갱신되었습니다.",
"Unable to change password" : "암호를 변경할 수 없음",
"Enabled" : "활성",
"Not enabled" : "비활성",
+ "A problem occurred, please check your log files (Error: %s)" : "문제가 발생하였습니다. 로그 파일을 참조하십시오(오류: %s)",
+ "Migration Completed" : "이전 완료됨",
"Group already exists." : "그룹이 이미 존재합니다.",
"Unable to add group." : "그룹을 추가할 수 없습니다.",
"Unable to delete group." : "그룹을 삭제할 수 없습니다.",
"log-level out of allowed range" : "로그 단계가 허용 범위를 벗어남",
"Saved" : "저장됨",
"test email settings" : "이메일 설정 시험",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생하였습니다. 설정을 확인하십시오.(오류: %s)",
"Email sent" : "이메일 발송됨",
"You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.",
"Invalid mail address" : "잘못된 이메일 주소",
+ "A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.",
"Unable to create user." : "사용자를 만들 수 없습니다.",
"Your %s account was created" : "%s 계정을 등록하였습니다",
"Unable to delete user." : "사용자를 삭제할 수 없습니다.",
@@ -41,8 +50,13 @@ OC.L10N.register(
"Email saved" : "이메일 저장됨",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "신뢰할 수 있는 도메인 목록에 \"{domain}\"을(를) 추가하시겠습니까?",
"Add trusted domain" : "신뢰할 수 있는 도메인 추가",
+ "Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오",
+ "Migration started …" : "이전 시작됨...",
"Sending..." : "보내는 중...",
"All" : "모두",
+ "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "공식 앱은 ownCloud 커뮤니티 내에서 개발됩니다. ownCloud의 주요 기능을 제공하며 상용 환경에서 사용 가능합니다.",
+ "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "승인된 앱은 신뢰할 수 있는 개발자가 개발하며 보안 검사를 통과하였습니다. 열린 코드 저장소에서 관리되며 일반적인 환경에서 사용할 수 있는 수준으로 관리됩니다.",
+ "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "이 앱은 보안 검사를 통과하지 않았으며 새로 출시되었거나 안정적이지 않은 것으로 알려져 있습니다. 본인 책임 하에 설치하십시오.",
"Please wait...." : "기다려 주십시오....",
"Error while disabling app" : "앱을 비활성화하는 중 오류 발생",
"Disable" : "사용 안함",
@@ -62,6 +76,7 @@ OC.L10N.register(
"Strong password" : "강력한 암호",
"Valid until {date}" : "{date}까지 유효함",
"Delete" : "삭제",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "오류가 발생하였습니다. ASCII로 인코딩된 PEM 인증서를 업로드하십시오.",
"Groups" : "그룹",
"Unable to delete {objName}" : "{objName}을(를) 삭제할 수 없음",
"Error creating group" : "그룹을 생성하는 중 오류가 발생하였습니다",
@@ -78,6 +93,8 @@ OC.L10N.register(
"A valid password must be provided" : "올바른 암호를 입력해야 함",
"A valid email must be provided" : "올바른 이메일 주소를 입력해야 함",
"__language_name__" : "한국어",
+ "Sync clients" : "동기화 클라이언트",
+ "Personal info" : "개인 정보",
"SSL root certificates" : "SSL 루트 인증서",
"Everything (fatal issues, errors, warnings, info, debug)" : "모두 (치명적 문제, 오류, 경고, 정보, 디버그)",
"Info, warnings, errors and fatal issues" : "정보, 경고, 오류, 치명적 문제",
@@ -90,15 +107,21 @@ OC.L10N.register(
"NT LAN Manager" : "NT LAN 관리자",
"SSL" : "SSL",
"TLS" : "TLS",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.",
+ "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "설치 문서를 참조하여 php 설정 방법 및 php 설정을 변경하십시오. php-fpm을 사용한다면 더 주의하십시오.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.",
"Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "서버가 Microsoft Windows 환경에서 동작하고 있습니다. 최적의 사용자 경험을 위해서는 리눅스를 사용할 것을 권장합니다.",
+ "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu 버전 4.0.6 이하가 설치되어 있습니다. 안정성 및 성능 문제가 발생할 수 있으므로 더 새로운 APCu 버전을 사용하는 것을 추천합니다.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.",
"System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로캘을 사용할 수 없습니다.",
"This means that there might be problems with certain characters in file names." : "파일 이름의 일부 문자에 문제가 생길 수도 있습니다.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "다음 중 하나 이상의 로캘을 지원하기 위하여 필요한 패키지를 시스템에 설치하는 것을 추천합니다: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생하였습니다:",
+ "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "<a target=\"_blank\" href=\"%s\">설치 가이드 ↗</a>를 다시 확인하시고 <a href=\"#log-section\">로그</a>의 오류 및 경고를 확인하십시오.",
+ "Open documentation" : "문서 열기",
"Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용",
"Allow users to share via link" : "사용자별 링크 공유 허용",
"Enforce password protection" : "암호 보호 강제",
@@ -113,11 +136,20 @@ OC.L10N.register(
"Allow users to send mail notification for shared files to other users" : "다른 사용자에게 공유 파일 이메일 알림 전송 허용",
"Exclude groups from sharing" : "공유에서 그룹 제외",
"These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.",
+ "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.",
"Cron was not executed yet!" : "Cron이 실행되지 않았습니다!",
- "Open documentation" : "문서 열기",
"Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.",
"Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.",
+ "Enable server-side encryption" : "서버 측 암호화 사용",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "암호화 작업은 단방향입니다. 암호화를 한 번 활성화하면 그 시점 이후에 서버에 저장되는 모든 파일이 암호화되며 나중에 암호화를 비활성화할 수 없습니다. 마지막 경고입니다. 암호화를 활성화하시겠습니까?",
+ "Enable encryption" : "암호화 사용",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "암호화 모듈을 불러오지 않았습니다. 앱 메뉴에서 암호화 모듈을 활성화하십시오.",
+ "Select default encryption module:" : "기본 암호화 모듈 선택:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다. \"ownCloud 기본 암호화 모듈\"을 활성화한 후 'occ encryption:migrate' 명령을 실행하십시오",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.",
+ "Start migration" : "이전 시작",
"This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.",
"Send mode" : "보내기 모드",
"Encryption" : "암호화",
@@ -137,27 +169,47 @@ OC.L10N.register(
"Download logfile" : "로그 파일 다운로드",
"More" : "더 중요함",
"Less" : "덜 중요함",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "로그 파일이 100MB보다 큽니다. 다운로드하는 데 시간이 걸릴 수 있습니다!",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정이면, SQLite를 사용하지 않는 것이 좋습니다.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 이전하려면 다음 명령을 사용하십시오: 'occ db:convert-type' 다른 명령을 알아보려면 <a target=\"_blank\" href=\"%s\">문서 ↗</a>를 참고하십시오.",
+ "How to do backups" : "백업 방법",
+ "Advanced monitoring" : "고급 모니터링",
+ "Performance tuning" : "성능 튜닝",
+ "Improving the config.php" : "config.php 개선",
+ "Theming" : "테마 꾸미기",
+ "Hardening and security guidance" : "보안 강화 지침",
"Version" : "버전",
- "More apps" : "더 많은 앱",
+ "Developer documentation" : "개발자 문서",
+ "Experimental applications ahead" : "실험적인 앱 사용 예정",
+ "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "실험적인 앱은 보안 문제 검사를 통과하지 않았으며, 아직 새롭거나, 불안정하거나, 개발 중일 수도 있습니다. 이러한 앱을 설치하면 데이터 손실 및 보안 문제가 발생할 수도 있습니다.",
"by" : "작성:",
"licensed" : "라이선스:",
"Documentation:" : "문서:",
"User Documentation" : "사용자 문서",
"Admin Documentation" : "운영자 문서",
+ "Show description …" : "설명 보기...",
+ "Hide description …" : "설명 숨기기...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:",
"Update to %s" : "%s(으)로 업데이트",
"Enable only for specific groups" : "특정 그룹에만 허용",
"Uninstall App" : "앱 제거",
+ "Enable experimental apps" : "실험적인 앱 사용",
+ "No apps found for your version" : "설치된 버전에 대한 앱 없음",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "안녕하세요.<br><br>%s 계정을 사용할 수 있음을 알려 드립니다.<br><br>사용자 이름: %s<br>접근 링크: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "감사합니다!",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n",
+ "User documentation" : "사용자 문서",
+ "Administrator documentation" : "관리자 문서",
+ "Online documentation" : "온라인 문서",
"Forum" : "포럼",
+ "Issue tracker" : "이슈 트래커",
+ "Commercial support" : "상용 지원",
"Get the apps to sync your files" : "파일 동기화 앱 가져오기",
"Desktop client" : "데스크톱 클라이언트",
"Android app" : "Android 앱",
"iOS app" : "iOS 앱",
+ "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "프로젝트를 지원하려면\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">개발에 참여하거나</a>\n\t\t\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">널리 알려 주십시오</a>!",
"Show First Run Wizard again" : "첫 실행 마법사 다시 보이기",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "현재 공간 중 <strong>%s</strong>/<strong>%s</strong>을(를) 사용 중입니다",
"Password" : "암호",
@@ -165,11 +217,13 @@ OC.L10N.register(
"Current password" : "현재 암호",
"New password" : "새 암호",
"Change password" : "암호 변경",
+ "Full name" : "전체 이름",
"No display name set" : "표시 이름이 설정되지 않음",
"Email" : "이메일",
"Your email address" : "이메일 주소",
"Fill in an email address to enable password recovery and receive notifications" : "이메일 주소를 입력하면 암호 찾기 및 알림 수신이 가능합니다",
"No email address set" : "이메일 주소가 설정되지 않음",
+ "You are member of the following groups:" : "다음 그룹의 구성원입니다:",
"Profile picture" : "프로필 사진",
"Upload new" : "새로 업로드",
"Select new from Files" : "파일에서 선택",
@@ -184,6 +238,8 @@ OC.L10N.register(
"Valid until" : "만료 기간:",
"Issued By" : "발급자:",
"Valid until %s" : "%s까지 유효함",
+ "Import root certificate" : "루트 인증서 가져오기",
+ "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "{communityopen}ownCloud 커뮤니티{linkclose}에서 개발함. {githubopen}원본 코드{linkclose}는 {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose} 라이선스로 배포됩니다.",
"Show storage location" : "저장소 위치 보이기",
"Show last log in" : "마지막 로그인 시간 보이기",
"Show user backend" : "사용자 백엔드 보이기",
diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json
index 536184f0faf..97049267a11 100644
--- a/settings/l10n/ko.json
+++ b/settings/l10n/ko.json
@@ -1,8 +1,12 @@
{ "translations": {
+ "Security & setup warnings" : "보안 및 설치 경고",
"Sharing" : "공유",
+ "Server-side encryption" : "서버 측 암호화",
"External Storage" : "외부 저장소",
"Cron" : "Cron",
+ "Email server" : "이메일 서버",
"Log" : "로그",
+ "Tips & tricks" : "팁과 추가 정보",
"Updates" : "업데이트",
"Authentication error" : "인증 오류",
"Your full name has been changed." : "전체 이름이 변경되었습니다.",
@@ -18,18 +22,23 @@
"No user supplied" : "사용자가 지정되지 않음",
"Please provide an admin recovery password, otherwise all user data will be lost" : "관리자 복구 암호를 입력하지 않으면 모든 사용자 데이터가 삭제됩니다",
"Wrong admin recovery password. Please check the password and try again." : "관리자 복구 암호가 잘못되었습니다. 암호를 다시 확인하십시오.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "백엔드에서 암호 변경을 지원하지 않지만, 암호화 키는 갱신되었습니다.",
"Unable to change password" : "암호를 변경할 수 없음",
"Enabled" : "활성",
"Not enabled" : "비활성",
+ "A problem occurred, please check your log files (Error: %s)" : "문제가 발생하였습니다. 로그 파일을 참조하십시오(오류: %s)",
+ "Migration Completed" : "이전 완료됨",
"Group already exists." : "그룹이 이미 존재합니다.",
"Unable to add group." : "그룹을 추가할 수 없습니다.",
"Unable to delete group." : "그룹을 삭제할 수 없습니다.",
"log-level out of allowed range" : "로그 단계가 허용 범위를 벗어남",
"Saved" : "저장됨",
"test email settings" : "이메일 설정 시험",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생하였습니다. 설정을 확인하십시오.(오류: %s)",
"Email sent" : "이메일 발송됨",
"You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.",
"Invalid mail address" : "잘못된 이메일 주소",
+ "A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.",
"Unable to create user." : "사용자를 만들 수 없습니다.",
"Your %s account was created" : "%s 계정을 등록하였습니다",
"Unable to delete user." : "사용자를 삭제할 수 없습니다.",
@@ -39,8 +48,13 @@
"Email saved" : "이메일 저장됨",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "신뢰할 수 있는 도메인 목록에 \"{domain}\"을(를) 추가하시겠습니까?",
"Add trusted domain" : "신뢰할 수 있는 도메인 추가",
+ "Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오",
+ "Migration started …" : "이전 시작됨...",
"Sending..." : "보내는 중...",
"All" : "모두",
+ "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "공식 앱은 ownCloud 커뮤니티 내에서 개발됩니다. ownCloud의 주요 기능을 제공하며 상용 환경에서 사용 가능합니다.",
+ "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "승인된 앱은 신뢰할 수 있는 개발자가 개발하며 보안 검사를 통과하였습니다. 열린 코드 저장소에서 관리되며 일반적인 환경에서 사용할 수 있는 수준으로 관리됩니다.",
+ "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "이 앱은 보안 검사를 통과하지 않았으며 새로 출시되었거나 안정적이지 않은 것으로 알려져 있습니다. 본인 책임 하에 설치하십시오.",
"Please wait...." : "기다려 주십시오....",
"Error while disabling app" : "앱을 비활성화하는 중 오류 발생",
"Disable" : "사용 안함",
@@ -60,6 +74,7 @@
"Strong password" : "강력한 암호",
"Valid until {date}" : "{date}까지 유효함",
"Delete" : "삭제",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "오류가 발생하였습니다. ASCII로 인코딩된 PEM 인증서를 업로드하십시오.",
"Groups" : "그룹",
"Unable to delete {objName}" : "{objName}을(를) 삭제할 수 없음",
"Error creating group" : "그룹을 생성하는 중 오류가 발생하였습니다",
@@ -76,6 +91,8 @@
"A valid password must be provided" : "올바른 암호를 입력해야 함",
"A valid email must be provided" : "올바른 이메일 주소를 입력해야 함",
"__language_name__" : "한국어",
+ "Sync clients" : "동기화 클라이언트",
+ "Personal info" : "개인 정보",
"SSL root certificates" : "SSL 루트 인증서",
"Everything (fatal issues, errors, warnings, info, debug)" : "모두 (치명적 문제, 오류, 경고, 정보, 디버그)",
"Info, warnings, errors and fatal issues" : "정보, 경고, 오류, 치명적 문제",
@@ -88,15 +105,21 @@
"NT LAN Manager" : "NT LAN 관리자",
"SSL" : "SSL",
"TLS" : "TLS",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.",
+ "Please check the installation documentation for php configuration notes and the php configuration of your server, especially when using php-fpm." : "설치 문서를 참조하여 php 설정 방법 및 php 설정을 변경하십시오. php-fpm을 사용한다면 더 주의하십시오.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.",
"Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "서버가 Microsoft Windows 환경에서 동작하고 있습니다. 최적의 사용자 경험을 위해서는 리눅스를 사용할 것을 권장합니다.",
+ "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu 버전 4.0.6 이하가 설치되어 있습니다. 안정성 및 성능 문제가 발생할 수 있으므로 더 새로운 APCu 버전을 사용하는 것을 추천합니다.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.",
"System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로캘을 사용할 수 없습니다.",
"This means that there might be problems with certain characters in file names." : "파일 이름의 일부 문자에 문제가 생길 수도 있습니다.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "다음 중 하나 이상의 로캘을 지원하기 위하여 필요한 패키지를 시스템에 설치하는 것을 추천합니다: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생하였습니다:",
+ "Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "<a target=\"_blank\" href=\"%s\">설치 가이드 ↗</a>를 다시 확인하시고 <a href=\"#log-section\">로그</a>의 오류 및 경고를 확인하십시오.",
+ "Open documentation" : "문서 열기",
"Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용",
"Allow users to share via link" : "사용자별 링크 공유 허용",
"Enforce password protection" : "암호 보호 강제",
@@ -111,11 +134,20 @@
"Allow users to send mail notification for shared files to other users" : "다른 사용자에게 공유 파일 이메일 알림 전송 허용",
"Exclude groups from sharing" : "공유에서 그룹 제외",
"These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.",
+ "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.",
"Cron was not executed yet!" : "Cron이 실행되지 않았습니다!",
- "Open documentation" : "문서 열기",
"Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.",
"Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.",
+ "Enable server-side encryption" : "서버 측 암호화 사용",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "암호화 작업은 단방향입니다. 암호화를 한 번 활성화하면 그 시점 이후에 서버에 저장되는 모든 파일이 암호화되며 나중에 암호화를 비활성화할 수 없습니다. 마지막 경고입니다. 암호화를 활성화하시겠습니까?",
+ "Enable encryption" : "암호화 사용",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "암호화 모듈을 불러오지 않았습니다. 앱 메뉴에서 암호화 모듈을 활성화하십시오.",
+ "Select default encryption module:" : "기본 암호화 모듈 선택:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다. \"ownCloud 기본 암호화 모듈\"을 활성화한 후 'occ encryption:migrate' 명령을 실행하십시오",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.",
+ "Start migration" : "이전 시작",
"This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.",
"Send mode" : "보내기 모드",
"Encryption" : "암호화",
@@ -135,27 +167,47 @@
"Download logfile" : "로그 파일 다운로드",
"More" : "더 중요함",
"Less" : "덜 중요함",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "로그 파일이 100MB보다 큽니다. 다운로드하는 데 시간이 걸릴 수 있습니다!",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정이면, SQLite를 사용하지 않는 것이 좋습니다.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 이전하려면 다음 명령을 사용하십시오: 'occ db:convert-type' 다른 명령을 알아보려면 <a target=\"_blank\" href=\"%s\">문서 ↗</a>를 참고하십시오.",
+ "How to do backups" : "백업 방법",
+ "Advanced monitoring" : "고급 모니터링",
+ "Performance tuning" : "성능 튜닝",
+ "Improving the config.php" : "config.php 개선",
+ "Theming" : "테마 꾸미기",
+ "Hardening and security guidance" : "보안 강화 지침",
"Version" : "버전",
- "More apps" : "더 많은 앱",
+ "Developer documentation" : "개발자 문서",
+ "Experimental applications ahead" : "실험적인 앱 사용 예정",
+ "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "실험적인 앱은 보안 문제 검사를 통과하지 않았으며, 아직 새롭거나, 불안정하거나, 개발 중일 수도 있습니다. 이러한 앱을 설치하면 데이터 손실 및 보안 문제가 발생할 수도 있습니다.",
"by" : "작성:",
"licensed" : "라이선스:",
"Documentation:" : "문서:",
"User Documentation" : "사용자 문서",
"Admin Documentation" : "운영자 문서",
+ "Show description …" : "설명 보기...",
+ "Hide description …" : "설명 숨기기...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:",
"Update to %s" : "%s(으)로 업데이트",
"Enable only for specific groups" : "특정 그룹에만 허용",
"Uninstall App" : "앱 제거",
+ "Enable experimental apps" : "실험적인 앱 사용",
+ "No apps found for your version" : "설치된 버전에 대한 앱 없음",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "안녕하세요.<br><br>%s 계정을 사용할 수 있음을 알려 드립니다.<br><br>사용자 이름: %s<br>접근 링크: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "감사합니다!",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n",
+ "User documentation" : "사용자 문서",
+ "Administrator documentation" : "관리자 문서",
+ "Online documentation" : "온라인 문서",
"Forum" : "포럼",
+ "Issue tracker" : "이슈 트래커",
+ "Commercial support" : "상용 지원",
"Get the apps to sync your files" : "파일 동기화 앱 가져오기",
"Desktop client" : "데스크톱 클라이언트",
"Android app" : "Android 앱",
"iOS app" : "iOS 앱",
+ "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "프로젝트를 지원하려면\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">개발에 참여하거나</a>\n\t\t\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">널리 알려 주십시오</a>!",
"Show First Run Wizard again" : "첫 실행 마법사 다시 보이기",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "현재 공간 중 <strong>%s</strong>/<strong>%s</strong>을(를) 사용 중입니다",
"Password" : "암호",
@@ -163,11 +215,13 @@
"Current password" : "현재 암호",
"New password" : "새 암호",
"Change password" : "암호 변경",
+ "Full name" : "전체 이름",
"No display name set" : "표시 이름이 설정되지 않음",
"Email" : "이메일",
"Your email address" : "이메일 주소",
"Fill in an email address to enable password recovery and receive notifications" : "이메일 주소를 입력하면 암호 찾기 및 알림 수신이 가능합니다",
"No email address set" : "이메일 주소가 설정되지 않음",
+ "You are member of the following groups:" : "다음 그룹의 구성원입니다:",
"Profile picture" : "프로필 사진",
"Upload new" : "새로 업로드",
"Select new from Files" : "파일에서 선택",
@@ -182,6 +236,8 @@
"Valid until" : "만료 기간:",
"Issued By" : "발급자:",
"Valid until %s" : "%s까지 유효함",
+ "Import root certificate" : "루트 인증서 가져오기",
+ "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "{communityopen}ownCloud 커뮤니티{linkclose}에서 개발함. {githubopen}원본 코드{linkclose}는 {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose} 라이선스로 배포됩니다.",
"Show storage location" : "저장소 위치 보이기",
"Show last log in" : "마지막 로그인 시간 보이기",
"Show user backend" : "사용자 백엔드 보이기",
diff --git a/settings/l10n/lb.js b/settings/l10n/lb.js
index 0c061ae7d6e..7fae2ae2f3c 100644
--- a/settings/l10n/lb.js
+++ b/settings/l10n/lb.js
@@ -9,6 +9,8 @@ OC.L10N.register(
"Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
"Unable to add user to group %s" : "Onmeiglech User an Grupp ze sätzen %s",
"Wrong password" : "Falscht Passwuert",
+ "Enabled" : "Aktivéiert",
+ "Saved" : "Gespäichert",
"Email sent" : "Email geschéckt",
"Email saved" : "E-mail gespäichert",
"All" : "All",
@@ -20,6 +22,7 @@ OC.L10N.register(
"never" : "ni",
"__language_name__" : "__language_name__",
"Login" : "Login",
+ "Open documentation" : "Dokumentatioun opmaachen",
"Allow apps to use the Share API" : "Erlab Apps d'Share API ze benotzen",
"Allow resharing" : "Resharing erlaben",
"Authentication required" : "Authentifizéierung néideg",
@@ -28,6 +31,9 @@ OC.L10N.register(
"Less" : "Manner",
"by" : "vun",
"Cheers!" : "Prost!",
+ "Desktop client" : "Desktop-Programm",
+ "Android app" : "Android-App",
+ "iOS app" : "iOS-App",
"Password" : "Passwuert",
"Unable to change your password" : "Konnt däin Passwuert net änneren",
"Current password" : "Momentan 't Passwuert",
diff --git a/settings/l10n/lb.json b/settings/l10n/lb.json
index 10b63b5668d..99510c77501 100644
--- a/settings/l10n/lb.json
+++ b/settings/l10n/lb.json
@@ -7,6 +7,8 @@
"Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
"Unable to add user to group %s" : "Onmeiglech User an Grupp ze sätzen %s",
"Wrong password" : "Falscht Passwuert",
+ "Enabled" : "Aktivéiert",
+ "Saved" : "Gespäichert",
"Email sent" : "Email geschéckt",
"Email saved" : "E-mail gespäichert",
"All" : "All",
@@ -18,6 +20,7 @@
"never" : "ni",
"__language_name__" : "__language_name__",
"Login" : "Login",
+ "Open documentation" : "Dokumentatioun opmaachen",
"Allow apps to use the Share API" : "Erlab Apps d'Share API ze benotzen",
"Allow resharing" : "Resharing erlaben",
"Authentication required" : "Authentifizéierung néideg",
@@ -26,6 +29,9 @@
"Less" : "Manner",
"by" : "vun",
"Cheers!" : "Prost!",
+ "Desktop client" : "Desktop-Programm",
+ "Android app" : "Android-App",
+ "iOS app" : "iOS-App",
"Password" : "Passwuert",
"Unable to change your password" : "Konnt däin Passwuert net änneren",
"Current password" : "Momentan 't Passwuert",
diff --git a/settings/l10n/lt_LT.js b/settings/l10n/lt_LT.js
index dcc63ecfe67..dc945058bb4 100644
--- a/settings/l10n/lt_LT.js
+++ b/settings/l10n/lt_LT.js
@@ -57,7 +57,6 @@ OC.L10N.register(
"More" : "Daugiau",
"Less" : "Mažiau",
"Version" : "Versija",
- "More apps" : "Daugiau programų",
"by" : " ",
"User Documentation" : "Naudotojo dokumentacija",
"Cheers!" : "Sveikinimai!",
diff --git a/settings/l10n/lt_LT.json b/settings/l10n/lt_LT.json
index 42ed77a5636..722625bc3c7 100644
--- a/settings/l10n/lt_LT.json
+++ b/settings/l10n/lt_LT.json
@@ -55,7 +55,6 @@
"More" : "Daugiau",
"Less" : "Mažiau",
"Version" : "Versija",
- "More apps" : "Daugiau programų",
"by" : " ",
"User Documentation" : "Naudotojo dokumentacija",
"Cheers!" : "Sveikinimai!",
diff --git a/settings/l10n/lv.js b/settings/l10n/lv.js
index dca43da8cda..dd025ff843a 100644
--- a/settings/l10n/lv.js
+++ b/settings/l10n/lv.js
@@ -103,7 +103,6 @@ OC.L10N.register(
"More" : "Vairāk",
"Less" : "Mazāk",
"Version" : "Versija",
- "More apps" : "Vairāk programmu",
"by" : "līdz",
"User Documentation" : "Lietotāja dokumentācija",
"Forum" : "Forums",
diff --git a/settings/l10n/lv.json b/settings/l10n/lv.json
index 1b8afb4d657..ccb6c126ab8 100644
--- a/settings/l10n/lv.json
+++ b/settings/l10n/lv.json
@@ -101,7 +101,6 @@
"More" : "Vairāk",
"Less" : "Mazāk",
"Version" : "Versija",
- "More apps" : "Vairāk programmu",
"by" : "līdz",
"User Documentation" : "Lietotāja dokumentācija",
"Forum" : "Forums",
diff --git a/settings/l10n/mk.js b/settings/l10n/mk.js
index 1ee7c5e7c1d..19b5df2cca7 100644
--- a/settings/l10n/mk.js
+++ b/settings/l10n/mk.js
@@ -1,13 +1,19 @@
OC.L10N.register(
"settings",
{
+ "Security & setup warnings" : "Предупредувања за сигурност и подесувања",
"Sharing" : "Споделување",
+ "Server-side encryption" : "Енкрипција на страна на серверот",
"External Storage" : "Надворешно складиште",
"Cron" : "Крон",
+ "Email server" : "Сервер за е-пошта",
"Log" : "Записник",
+ "Tips & tricks" : "Совети и трикови",
+ "Updates" : "Ажурирања",
"Authentication error" : "Грешка во автентикација",
"Your full name has been changed." : "Вашето целосно име е променето.",
"Unable to change full name" : "Не можам да го променам целото име",
+ "Couldn't remove app." : "Не можам да ја отстранам апликацијата.",
"Language changed" : "Јазикот е сменет",
"Invalid request" : "Неправилно барање",
"Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата",
@@ -16,10 +22,21 @@ OC.L10N.register(
"Couldn't update app." : "Не можам да ја надградам апликацијата.",
"Wrong password" : "Погрешна лозинка",
"No user supplied" : "Нема корисничко име",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Ве молам дадете лозинка за поврат на администраторот, или сите кориснички податоци ќе бидат изгубени",
+ "Wrong admin recovery password. Please check the password and try again." : "Погрешна лозинка за поврат на администраторот. Ве молам проверете ја лозинката и пробајте повторно.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадината не подржува промена на лозинката, но корисничкиот клуч за енкрипција беше успешно ажуриран.",
"Unable to change password" : "Вашата лозинка неможе да се смени",
"Enabled" : "Овозможен",
+ "Not enabled" : "Не е овозможено",
+ "A problem occurred, please check your log files (Error: %s)" : "Се случи грешка, ве молам проверете ги вашите датотеки за логови (Грешка: %s)",
+ "Migration Completed" : "Миграцијата заврши",
+ "Group already exists." : "Групата веќе постои.",
+ "Unable to add group." : "Не можам да додадам група.",
+ "Unable to delete group." : "Не можам да избришам група.",
+ "log-level out of allowed range" : "нивото на логирање е надвор од дозволениот опсег",
"Saved" : "Снимено",
"test email settings" : "провери ги нагодувањата за електронска пошта",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Се случи грешка при праќање на порака. Ве молам проверете ги вашите подесувања. (Error: %s)",
"Email sent" : "Е-порака пратена",
"Email saved" : "Електронската пошта е снимена",
"Sending..." : "Испраќам...",
diff --git a/settings/l10n/mk.json b/settings/l10n/mk.json
index ab2eff42d5a..075bd1c7f8b 100644
--- a/settings/l10n/mk.json
+++ b/settings/l10n/mk.json
@@ -1,11 +1,17 @@
{ "translations": {
+ "Security & setup warnings" : "Предупредувања за сигурност и подесувања",
"Sharing" : "Споделување",
+ "Server-side encryption" : "Енкрипција на страна на серверот",
"External Storage" : "Надворешно складиште",
"Cron" : "Крон",
+ "Email server" : "Сервер за е-пошта",
"Log" : "Записник",
+ "Tips & tricks" : "Совети и трикови",
+ "Updates" : "Ажурирања",
"Authentication error" : "Грешка во автентикација",
"Your full name has been changed." : "Вашето целосно име е променето.",
"Unable to change full name" : "Не можам да го променам целото име",
+ "Couldn't remove app." : "Не можам да ја отстранам апликацијата.",
"Language changed" : "Јазикот е сменет",
"Invalid request" : "Неправилно барање",
"Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата",
@@ -14,10 +20,21 @@
"Couldn't update app." : "Не можам да ја надградам апликацијата.",
"Wrong password" : "Погрешна лозинка",
"No user supplied" : "Нема корисничко име",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "Ве молам дадете лозинка за поврат на администраторот, или сите кориснички податоци ќе бидат изгубени",
+ "Wrong admin recovery password. Please check the password and try again." : "Погрешна лозинка за поврат на администраторот. Ве молам проверете ја лозинката и пробајте повторно.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Позадината не подржува промена на лозинката, но корисничкиот клуч за енкрипција беше успешно ажуриран.",
"Unable to change password" : "Вашата лозинка неможе да се смени",
"Enabled" : "Овозможен",
+ "Not enabled" : "Не е овозможено",
+ "A problem occurred, please check your log files (Error: %s)" : "Се случи грешка, ве молам проверете ги вашите датотеки за логови (Грешка: %s)",
+ "Migration Completed" : "Миграцијата заврши",
+ "Group already exists." : "Групата веќе постои.",
+ "Unable to add group." : "Не можам да додадам група.",
+ "Unable to delete group." : "Не можам да избришам група.",
+ "log-level out of allowed range" : "нивото на логирање е надвор од дозволениот опсег",
"Saved" : "Снимено",
"test email settings" : "провери ги нагодувањата за електронска пошта",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Се случи грешка при праќање на порака. Ве молам проверете ги вашите подесувања. (Error: %s)",
"Email sent" : "Е-порака пратена",
"Email saved" : "Електронската пошта е снимена",
"Sending..." : "Испраќам...",
diff --git a/settings/l10n/nb_NO.js b/settings/l10n/nb_NO.js
index 51e7b24564b..aac2edc5dde 100644
--- a/settings/l10n/nb_NO.js
+++ b/settings/l10n/nb_NO.js
@@ -159,7 +159,6 @@ OC.L10N.register(
"Theming" : "Temaer",
"Hardening and security guidance" : "Herding og sikkerhetsveiledning",
"Version" : "Versjon",
- "More apps" : "Flere apper",
"Developer documentation" : "Utviklerdokumentasjon",
"by" : "av",
"licensed" : "lisensiert",
diff --git a/settings/l10n/nb_NO.json b/settings/l10n/nb_NO.json
index db720d1a9e8..94ec9d09438 100644
--- a/settings/l10n/nb_NO.json
+++ b/settings/l10n/nb_NO.json
@@ -157,7 +157,6 @@
"Theming" : "Temaer",
"Hardening and security guidance" : "Herding og sikkerhetsveiledning",
"Version" : "Versjon",
- "More apps" : "Flere apper",
"Developer documentation" : "Utviklerdokumentasjon",
"by" : "av",
"licensed" : "lisensiert",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index 369601bfbd1..3c42aa7f35b 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen",
"Sharing" : "Delen",
- "External Storage" : "Externe opslag",
"Server-side encryption" : "Server-side versleuteling",
+ "External Storage" : "Externe opslag",
"Cron" : "Cron",
"Email server" : "E-mailserver",
"Log" : "Log",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Als uw installatie niet in de hoofddirectory van het domein staat, maar wel cron gebruikt, dan kunnen er problemen ontstaan bij het genereren van URL's. Om deze problemen te voorkomen zou u de \"overwrite.cli.url\" optie in config.php moeten instellen op het webroot pad van uw ownCloud (aanbevolen: \"%s\") ",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "het was niet mogelijk om de cronjob via CLI uit te voeren. De volgende technische problemen traden op:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Lees de <a href='%s'>installatie handleiding</a> goed door en controleer op fouten en waarschuwingen in de <a href=\"#log-section\">logging</a>.",
+ "Open documentation" : "Open documentatie",
"Allow apps to use the Share API" : "Apps toestaan de Share API te gebruiken",
"Allow users to share via link" : "Sta gebruikers toe om te delen via een link",
"Enforce password protection" : "Dwing wachtwoordbeveiliging af",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Laatst uitgevoerde cronjob: %s.",
"Last cron job execution: %s. Something seems wrong." : "Laatst uitgevoerde cronjob: %s. Er lijkt iets fout gegaan.",
"Cron was not executed yet!" : "Cron is nog niet uitgevoerd!",
- "Open documentation" : "Open documentatie",
"Execute one task with each page loaded" : "Bij laden van elke pagina één taak uitvoeren",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is geregisteerd bij een webcron service om elke 15 minuten cron.php over http aan te roepen.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Gebruik de systeem cron service om cron.php elke 15 minuten aan te roepen.",
"Enable server-side encryption" : "Server-side versleuteling inschakelen",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Versleuteling is een eenrichtingsproces. Als versleuteling is ingeschakeld, worden alle bestanden vanaf dat moment versleuteld op de server en is het niet meer mogelijk versleuteling later uit te schakelen. Dit is de laatste waarschuwing: Wilt u echt versleuteling inschakelen?",
+ "Enable encryption" : "Versleuteling inschakelen",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Er is geen cryptomodule geladen, activeer een cryptomodule in het appmenu",
+ "Select default encryption module:" : "Selecteer de standaard cryptomodule:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe. Activeer de \"ownCloud Standaard Cryptomodule\" en start 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.",
"Start migration" : "Start migratie",
"This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.",
"Send mode" : "Verstuurmodus",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Thema's",
"Hardening and security guidance" : "Hardening en security advies",
"Version" : "Versie",
- "More apps" : "Meer applicaties",
"Developer documentation" : "Ontwikkelaarsdocumentatie",
"Experimental applications ahead" : "Experimentele applicaties vooraan",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentele apps zijn niet gecontroleerd op beveiligingsproblemen, zijn nieuw of staan bekend als instabiel en worden volop ontwikkeld. Installatie kan leiden tot gegevensverlies of beveiligingsincidenten.",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index 5532072a790..d2bb1d66b58 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen",
"Sharing" : "Delen",
- "External Storage" : "Externe opslag",
"Server-side encryption" : "Server-side versleuteling",
+ "External Storage" : "Externe opslag",
"Cron" : "Cron",
"Email server" : "E-mailserver",
"Log" : "Log",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Als uw installatie niet in de hoofddirectory van het domein staat, maar wel cron gebruikt, dan kunnen er problemen ontstaan bij het genereren van URL's. Om deze problemen te voorkomen zou u de \"overwrite.cli.url\" optie in config.php moeten instellen op het webroot pad van uw ownCloud (aanbevolen: \"%s\") ",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "het was niet mogelijk om de cronjob via CLI uit te voeren. De volgende technische problemen traden op:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Lees de <a href='%s'>installatie handleiding</a> goed door en controleer op fouten en waarschuwingen in de <a href=\"#log-section\">logging</a>.",
+ "Open documentation" : "Open documentatie",
"Allow apps to use the Share API" : "Apps toestaan de Share API te gebruiken",
"Allow users to share via link" : "Sta gebruikers toe om te delen via een link",
"Enforce password protection" : "Dwing wachtwoordbeveiliging af",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Laatst uitgevoerde cronjob: %s.",
"Last cron job execution: %s. Something seems wrong." : "Laatst uitgevoerde cronjob: %s. Er lijkt iets fout gegaan.",
"Cron was not executed yet!" : "Cron is nog niet uitgevoerd!",
- "Open documentation" : "Open documentatie",
"Execute one task with each page loaded" : "Bij laden van elke pagina één taak uitvoeren",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is geregisteerd bij een webcron service om elke 15 minuten cron.php over http aan te roepen.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Gebruik de systeem cron service om cron.php elke 15 minuten aan te roepen.",
"Enable server-side encryption" : "Server-side versleuteling inschakelen",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Versleuteling is een eenrichtingsproces. Als versleuteling is ingeschakeld, worden alle bestanden vanaf dat moment versleuteld op de server en is het niet meer mogelijk versleuteling later uit te schakelen. Dit is de laatste waarschuwing: Wilt u echt versleuteling inschakelen?",
+ "Enable encryption" : "Versleuteling inschakelen",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Er is geen cryptomodule geladen, activeer een cryptomodule in het appmenu",
+ "Select default encryption module:" : "Selecteer de standaard cryptomodule:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe. Activeer de \"ownCloud Standaard Cryptomodule\" en start 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "U moet uw cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.",
"Start migration" : "Start migratie",
"This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.",
"Send mode" : "Verstuurmodus",
@@ -172,7 +178,6 @@
"Theming" : "Thema's",
"Hardening and security guidance" : "Hardening en security advies",
"Version" : "Versie",
- "More apps" : "Meer applicaties",
"Developer documentation" : "Ontwikkelaarsdocumentatie",
"Experimental applications ahead" : "Experimentele applicaties vooraan",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentele apps zijn niet gecontroleerd op beveiligingsproblemen, zijn nieuw of staan bekend als instabiel en worden volop ontwikkeld. Installatie kan leiden tot gegevensverlies of beveiligingsincidenten.",
diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js
index 924856fe64f..97421042b76 100644
--- a/settings/l10n/pl.js
+++ b/settings/l10n/pl.js
@@ -98,6 +98,7 @@ OC.L10N.register(
"System locale can not be set to a one which supports UTF-8." : "Ustawienia regionalne systemu nie można ustawić na jeden, który obsługuje UTF-8.",
"This means that there might be problems with certain characters in file names." : "Oznacza to, że mogą być problemy z niektórymi znakami w nazwach plików.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Zalecamy instalację na Twoim systemie komponentów wymaganych do obsługi języków: %s",
+ "Open documentation" : "Otwórz dokumentację",
"Allow apps to use the Share API" : "Zezwalaj aplikacjom na korzystanie z API udostępniania",
"Allow users to share via link" : "Pozwól użytkownikom współdzielić przez link",
"Enforce password protection" : "Wymuś zabezpieczenie hasłem",
@@ -112,7 +113,6 @@ OC.L10N.register(
"Exclude groups from sharing" : "Wyklucz grupy z udostępniania",
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.",
"Cron was not executed yet!" : "Cron nie został jeszcze uruchomiony!",
- "Open documentation" : "Otwórz dokumentację",
"Execute one task with each page loaded" : "Wykonuj jedno zadanie wraz z każdą wczytaną stroną",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php jest zarejestrowany w serwisie webcron do uruchamiania cron.php raz na 15 minut przez http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Użyj systemowej usługi cron do wywoływania cron.php co 15 minut.",
@@ -137,7 +137,6 @@ OC.L10N.register(
"Less" : "Mniej",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Plik log jest większy niż 100MB. Ściąganie może trochę potrwać!",
"Version" : "Wersja",
- "More apps" : "Więcej aplikacji",
"Developer documentation" : "Dokumentacja dewelopera",
"by" : "przez",
"licensed" : "Licencja",
diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json
index 1e4a1054f31..63bc9f4e514 100644
--- a/settings/l10n/pl.json
+++ b/settings/l10n/pl.json
@@ -96,6 +96,7 @@
"System locale can not be set to a one which supports UTF-8." : "Ustawienia regionalne systemu nie można ustawić na jeden, który obsługuje UTF-8.",
"This means that there might be problems with certain characters in file names." : "Oznacza to, że mogą być problemy z niektórymi znakami w nazwach plików.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Zalecamy instalację na Twoim systemie komponentów wymaganych do obsługi języków: %s",
+ "Open documentation" : "Otwórz dokumentację",
"Allow apps to use the Share API" : "Zezwalaj aplikacjom na korzystanie z API udostępniania",
"Allow users to share via link" : "Pozwól użytkownikom współdzielić przez link",
"Enforce password protection" : "Wymuś zabezpieczenie hasłem",
@@ -110,7 +111,6 @@
"Exclude groups from sharing" : "Wyklucz grupy z udostępniania",
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.",
"Cron was not executed yet!" : "Cron nie został jeszcze uruchomiony!",
- "Open documentation" : "Otwórz dokumentację",
"Execute one task with each page loaded" : "Wykonuj jedno zadanie wraz z każdą wczytaną stroną",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php jest zarejestrowany w serwisie webcron do uruchamiania cron.php raz na 15 minut przez http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Użyj systemowej usługi cron do wywoływania cron.php co 15 minut.",
@@ -135,7 +135,6 @@
"Less" : "Mniej",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Plik log jest większy niż 100MB. Ściąganie może trochę potrwać!",
"Version" : "Wersja",
- "More apps" : "Więcej aplikacji",
"Developer documentation" : "Dokumentacja dewelopera",
"by" : "przez",
"licensed" : "Licencja",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index 9e89869e9b6..f516d763038 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Segurança & avisos de configuração",
"Sharing" : "Compartilhamento",
- "External Storage" : "Armazenamento Externo",
"Server-side encryption" : "Criptografia do lado do servidor",
+ "External Storage" : "Armazenamento Externo",
"Cron" : "Cron",
"Email server" : "Servidor de Email",
"Log" : "Registro",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa cron do sistema, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwrite.cli.url\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Não foi possível executar o cron via CLI. Os seguintes erros técnicos têm aparecido:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Por favor, verifique os <a target=\"_blank\" href=\"%s\">guias de instalação ↗</a>, e verificar se há erros ou avisos no <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Abrir documentação",
"Allow apps to use the Share API" : "Permitir que aplicativos usem a API de Compartilhamento",
"Allow users to share via link" : "Permitir que os usuários compartilhem por link",
"Enforce password protection" : "Reforce a proteção por senha",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Última execução do trabalho cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Última execução do trabalho cron: %s. Algo parece errado.",
"Cron was not executed yet!" : "Cron não foi executado ainda!",
- "Open documentation" : "Abrir documentação",
"Execute one task with each page loaded" : "Execute uma tarefa com cada página carregada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado no serviço webcron para chamar cron.php a cada 15 minutos sobre http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para chamar o arquivo cron.php cada 15 minutos.",
"Enable server-side encryption" : "Habilitar a Criptografia do Lado do Servidor",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "A criptografia é um processo de um caminho. Uma vez que a criptografia esteja habilitada, todos os arquivos a partir desse ponto em diante serão criptografados no servidor e não será possível desativar a criptografia em uma data posterior. Este é o aviso final: Você realmente quer ativar a criptografia?",
+ "Enable encryption" : "Ativar criptografia",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de criptografia carregado, por favor, ative um módulo de criptografia no menu de aplicativos.",
+ "Select default encryption module:" : "Selecione o módulo de criptografia padrão:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova. Ative o \"Módulo de criptografia padrão ownCloud\" e execute 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova.",
"Start migration" : "Iniciar migração",
"This is used for sending out notifications." : "Isto é usado para o envio de notificações.",
"Send mode" : "Modo enviar",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Elaborar um tema",
"Hardening and security guidance" : "Orientações de proteção e segurança",
"Version" : "Versão",
- "More apps" : "Mais aplicativos",
"Developer documentation" : "Documentação do desenvolvedor",
"Experimental applications ahead" : "Aplicações experimentais à frente",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplicativos experimentais não são marcados por questões de segurança, por serem novos ou conhecidos como instáveis e sob forte desenvolvimento. Instalá-los pode causar perda de dados ou falhas de segurança.",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index 507f2276104..f982b48d150 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Segurança & avisos de configuração",
"Sharing" : "Compartilhamento",
- "External Storage" : "Armazenamento Externo",
"Server-side encryption" : "Criptografia do lado do servidor",
+ "External Storage" : "Armazenamento Externo",
"Cron" : "Cron",
"Email server" : "Servidor de Email",
"Log" : "Registro",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa cron do sistema, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwrite.cli.url\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Não foi possível executar o cron via CLI. Os seguintes erros técnicos têm aparecido:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Por favor, verifique os <a target=\"_blank\" href=\"%s\">guias de instalação ↗</a>, e verificar se há erros ou avisos no <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Abrir documentação",
"Allow apps to use the Share API" : "Permitir que aplicativos usem a API de Compartilhamento",
"Allow users to share via link" : "Permitir que os usuários compartilhem por link",
"Enforce password protection" : "Reforce a proteção por senha",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Última execução do trabalho cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Última execução do trabalho cron: %s. Algo parece errado.",
"Cron was not executed yet!" : "Cron não foi executado ainda!",
- "Open documentation" : "Abrir documentação",
"Execute one task with each page loaded" : "Execute uma tarefa com cada página carregada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado no serviço webcron para chamar cron.php a cada 15 minutos sobre http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para chamar o arquivo cron.php cada 15 minutos.",
"Enable server-side encryption" : "Habilitar a Criptografia do Lado do Servidor",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "A criptografia é um processo de um caminho. Uma vez que a criptografia esteja habilitada, todos os arquivos a partir desse ponto em diante serão criptografados no servidor e não será possível desativar a criptografia em uma data posterior. Este é o aviso final: Você realmente quer ativar a criptografia?",
+ "Enable encryption" : "Ativar criptografia",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nenhum módulo de criptografia carregado, por favor, ative um módulo de criptografia no menu de aplicativos.",
+ "Select default encryption module:" : "Selecione o módulo de criptografia padrão:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova. Ative o \"Módulo de criptografia padrão ownCloud\" e execute 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Você precisa migrar suas chaves de criptografia a partir da antiga criptografia (ownCloud <= 8,0) para a nova.",
"Start migration" : "Iniciar migração",
"This is used for sending out notifications." : "Isto é usado para o envio de notificações.",
"Send mode" : "Modo enviar",
@@ -172,7 +178,6 @@
"Theming" : "Elaborar um tema",
"Hardening and security guidance" : "Orientações de proteção e segurança",
"Version" : "Versão",
- "More apps" : "Mais aplicativos",
"Developer documentation" : "Documentação do desenvolvedor",
"Experimental applications ahead" : "Aplicações experimentais à frente",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplicativos experimentais não são marcados por questões de segurança, por serem novos ou conhecidos como instáveis e sob forte desenvolvimento. Instalá-los pode causar perda de dados ou falhas de segurança.",
diff --git a/settings/l10n/pt_PT.js b/settings/l10n/pt_PT.js
index 44706a6f4df..1c9e5a1a860 100644
--- a/settings/l10n/pt_PT.js
+++ b/settings/l10n/pt_PT.js
@@ -114,6 +114,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não está instalada na raiz do domínio e usa o sistema cron, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwrite.cli.url\" no ficheiro config.php para o caminho webroot da sua instalação (Sugestão: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Não foi possível executar o cronjob via CLI. Os seguintes erros técnicos apareceram:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Por favor, verifique os <a target=\"_blank\" href=\"%s\">guias de instalação ↗</a>, e verifique se existe algum erro ou aviso no <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Abrir documentação",
"Allow apps to use the Share API" : "Permitir que os utilizadores usem a API de partilha",
"Allow users to share via link" : "Permitir que os utilizadores partilhem através do link",
"Enforce password protection" : "Forçar proteção por palavra-passe",
@@ -131,7 +132,6 @@ OC.L10N.register(
"Last cron job execution: %s." : "Última execução de cron job: %s.",
"Last cron job execution: %s. Something seems wrong." : "Última execução de cron job: %s. Algo está errado.",
"Cron was not executed yet!" : "Cron ainda não foi executado!",
- "Open documentation" : "Abrir documentação",
"Execute one task with each page loaded" : "Executar uma tarefa com cada página carregada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registado num serviço webcron para chamar a página cron.php por http a cada 15 minutos.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço sistema cron para ligar o ficheiro cron.php a cada 15 minutos.",
@@ -166,7 +166,6 @@ OC.L10N.register(
"Theming" : "Temas",
"Hardening and security guidance" : "Orientações de proteção e segurança",
"Version" : "Versão",
- "More apps" : "Mais aplicações",
"Developer documentation" : "Documentação de Programador",
"Experimental applications ahead" : "Aplicações experimentais de futuro",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As apps experimentais não estão selecionadas para problemas de segurança, nova ou conhecida como instável e em forte desenvolvimento. Ao instalá-las pode causar a perda de dados ou quebra de segurança.",
diff --git a/settings/l10n/pt_PT.json b/settings/l10n/pt_PT.json
index 3b116ebfd38..16f515dae3d 100644
--- a/settings/l10n/pt_PT.json
+++ b/settings/l10n/pt_PT.json
@@ -112,6 +112,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não está instalada na raiz do domínio e usa o sistema cron, pode haver problemas com a geração de URL. Para evitar esses problemas, por favor, defina a opção \"overwrite.cli.url\" no ficheiro config.php para o caminho webroot da sua instalação (Sugestão: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Não foi possível executar o cronjob via CLI. Os seguintes erros técnicos apareceram:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Por favor, verifique os <a target=\"_blank\" href=\"%s\">guias de instalação ↗</a>, e verifique se existe algum erro ou aviso no <a href=\"#log-section\">log</a>.",
+ "Open documentation" : "Abrir documentação",
"Allow apps to use the Share API" : "Permitir que os utilizadores usem a API de partilha",
"Allow users to share via link" : "Permitir que os utilizadores partilhem através do link",
"Enforce password protection" : "Forçar proteção por palavra-passe",
@@ -129,7 +130,6 @@
"Last cron job execution: %s." : "Última execução de cron job: %s.",
"Last cron job execution: %s. Something seems wrong." : "Última execução de cron job: %s. Algo está errado.",
"Cron was not executed yet!" : "Cron ainda não foi executado!",
- "Open documentation" : "Abrir documentação",
"Execute one task with each page loaded" : "Executar uma tarefa com cada página carregada",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registado num serviço webcron para chamar a página cron.php por http a cada 15 minutos.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço sistema cron para ligar o ficheiro cron.php a cada 15 minutos.",
@@ -164,7 +164,6 @@
"Theming" : "Temas",
"Hardening and security guidance" : "Orientações de proteção e segurança",
"Version" : "Versão",
- "More apps" : "Mais aplicações",
"Developer documentation" : "Documentação de Programador",
"Experimental applications ahead" : "Aplicações experimentais de futuro",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As apps experimentais não estão selecionadas para problemas de segurança, nova ou conhecida como instável e em forte desenvolvimento. Ao instalá-las pode causar a perda de dados ou quebra de segurança.",
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index 5304780e7eb..8e53b7e725c 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Предупреждения безопасности и установки",
"Sharing" : "Общий доступ",
- "External Storage" : "Внешнее хранилище",
"Server-side encryption" : "Шифрование на стороне сервера",
+ "External Storage" : "Внешнее хранилище",
"Cron" : "Cron (планировщик задач)",
"Email server" : "Почтовый сервер",
"Log" : "Журнал",
@@ -120,6 +120,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Если ваша копия ownCloud установлена не в корне домена и использует системный планировщик cron, возможны проблемы с правильной генерацией URL. Чтобы избежать этого, установите опцию \"overwrite.cli.url\" в файле config.php равной пути папки установки. (Предположительно: \"%s\".)",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Не удается запустить задачу планировщика через CLI. Произошли следующие технические ошибки:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Пожалуйста, перепроверьте <a href=\"%s\">инструкцию по установке</a> и проверьте ошибки или предупреждения в <a href=\"#log-section\">журнале</a>",
+ "Open documentation" : "Открыть документацию",
"Allow apps to use the Share API" : "Позволить приложениям использовать API общего доступа",
"Allow users to share via link" : "Разрешить пользователям публикации через ссылки",
"Enforce password protection" : "Защита паролем обязательна",
@@ -137,7 +138,6 @@ OC.L10N.register(
"Last cron job execution: %s." : "Последнее выполненное Cron задание: %s.",
"Last cron job execution: %s. Something seems wrong." : "Последнее выполненное Cron задание: %s. Что-то кажется неправильным.",
"Cron was not executed yet!" : "Задачи cron ещё не запускались!",
- "Open documentation" : "Открыть документацию",
"Execute one task with each page loaded" : "Выполнять одно задание с каждой загруженной страницей",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зарегистрирован в webcron и будет вызываться каждые 15 минут по http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Использовать системный cron для вызова cron.php каждые 15 минут.",
@@ -173,7 +173,6 @@ OC.L10N.register(
"Theming" : "Темы оформления",
"Hardening and security guidance" : "Руководство по безопасности и защите",
"Version" : "Версия",
- "More apps" : "Ещё приложения",
"Developer documentation" : "Документация для разработчиков",
"Experimental applications ahead" : "Экспериментальные приложения",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Экспериментальные приложения не проверялись на наличие уязвимостей безопасности, так-же могут быть не стабильны, т.к. находятся в активной разработке. Их установка может повлечь потерю информации или нарушение безопасности.",
@@ -264,4 +263,4 @@ OC.L10N.register(
"change email address" : "изменить адрес email",
"Default" : "По умолчанию"
},
-"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
+"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index 874ad602bb2..f41c4df5243 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Предупреждения безопасности и установки",
"Sharing" : "Общий доступ",
- "External Storage" : "Внешнее хранилище",
"Server-side encryption" : "Шифрование на стороне сервера",
+ "External Storage" : "Внешнее хранилище",
"Cron" : "Cron (планировщик задач)",
"Email server" : "Почтовый сервер",
"Log" : "Журнал",
@@ -118,6 +118,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Если ваша копия ownCloud установлена не в корне домена и использует системный планировщик cron, возможны проблемы с правильной генерацией URL. Чтобы избежать этого, установите опцию \"overwrite.cli.url\" в файле config.php равной пути папки установки. (Предположительно: \"%s\".)",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Не удается запустить задачу планировщика через CLI. Произошли следующие технические ошибки:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Пожалуйста, перепроверьте <a href=\"%s\">инструкцию по установке</a> и проверьте ошибки или предупреждения в <a href=\"#log-section\">журнале</a>",
+ "Open documentation" : "Открыть документацию",
"Allow apps to use the Share API" : "Позволить приложениям использовать API общего доступа",
"Allow users to share via link" : "Разрешить пользователям публикации через ссылки",
"Enforce password protection" : "Защита паролем обязательна",
@@ -135,7 +136,6 @@
"Last cron job execution: %s." : "Последнее выполненное Cron задание: %s.",
"Last cron job execution: %s. Something seems wrong." : "Последнее выполненное Cron задание: %s. Что-то кажется неправильным.",
"Cron was not executed yet!" : "Задачи cron ещё не запускались!",
- "Open documentation" : "Открыть документацию",
"Execute one task with each page loaded" : "Выполнять одно задание с каждой загруженной страницей",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зарегистрирован в webcron и будет вызываться каждые 15 минут по http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Использовать системный cron для вызова cron.php каждые 15 минут.",
@@ -171,7 +171,6 @@
"Theming" : "Темы оформления",
"Hardening and security guidance" : "Руководство по безопасности и защите",
"Version" : "Версия",
- "More apps" : "Ещё приложения",
"Developer documentation" : "Документация для разработчиков",
"Experimental applications ahead" : "Экспериментальные приложения",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Экспериментальные приложения не проверялись на наличие уязвимостей безопасности, так-же могут быть не стабильны, т.к. находятся в активной разработке. Их установка может повлечь потерю информации или нарушение безопасности.",
@@ -261,5 +260,5 @@
"set new password" : "установить новый пароль",
"change email address" : "изменить адрес email",
"Default" : "По умолчанию"
-},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/settings/l10n/sk_SK.js b/settings/l10n/sk_SK.js
index e0db3ab18ee..0694712c0e9 100644
--- a/settings/l10n/sk_SK.js
+++ b/settings/l10n/sk_SK.js
@@ -144,7 +144,6 @@ OC.L10N.register(
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "Ako databáza je použitá SQLite. Pre veľké inštalácie odporúčame prejsť na inú databázu.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Najmä pri používaní aplikácie na synchronizáciu s desktopom nie je databáza SQLite doporučená.",
"Version" : "Verzia",
- "More apps" : "Viac aplikácií",
"Developer documentation" : "Dokumentácia vývojára",
"by" : "od",
"licensed" : "licencované",
diff --git a/settings/l10n/sk_SK.json b/settings/l10n/sk_SK.json
index 30e34ac1d6c..002a3c49816 100644
--- a/settings/l10n/sk_SK.json
+++ b/settings/l10n/sk_SK.json
@@ -142,7 +142,6 @@
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "Ako databáza je použitá SQLite. Pre veľké inštalácie odporúčame prejsť na inú databázu.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Najmä pri používaní aplikácie na synchronizáciu s desktopom nie je databáza SQLite doporučená.",
"Version" : "Verzia",
- "More apps" : "Viac aplikácií",
"Developer documentation" : "Dokumentácia vývojára",
"by" : "od",
"licensed" : "licencované",
diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js
index 78af6f4d0aa..257aa8f9536 100644
--- a/settings/l10n/sl.js
+++ b/settings/l10n/sl.js
@@ -1,10 +1,14 @@
OC.L10N.register(
"settings",
{
+ "Security & setup warnings" : "Varnost in namestitvena opozorila",
"Sharing" : "Souporaba",
+ "Server-side encryption" : "Šifriranje na strežniku",
"External Storage" : "Zunanja podatkovna shramba",
"Cron" : "Periodično opravilo",
+ "Email server" : "Poštni strežnik",
"Log" : "Dnevnik",
+ "Tips & tricks" : "Nasveti in triki",
"Updates" : "Posodobitve",
"Authentication error" : "Napaka med overjanjem",
"Your full name has been changed." : "Vaše polno ime je spremenjeno.",
@@ -23,14 +27,19 @@ OC.L10N.register(
"Unable to change password" : "Ni mogoče spremeniti gesla",
"Enabled" : "Omogočeno",
"Not enabled" : "Ni omogočeno",
+ "A problem occurred, please check your log files (Error: %s)" : "Pojavila se je težava. Prosimo, preverite dnevniške zapise (Napaka: %s)",
+ "Migration Completed" : "Selitev zaključena",
"Group already exists." : "Skupina že obstaja.",
"Unable to add group." : "Ni mogoče dodati skupine",
"Unable to delete group." : "Ni mogoče izbrisati skupine.",
+ "log-level out of allowed range" : "stopnja zapisovanja izven območja",
"Saved" : "Shranjeno",
"test email settings" : "preizkusi nastavitve elektronske pošte",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Med pošiljanjem sporočila se je pojavila težava. Preglejte nastavitve. (Napaka: %s)",
"Email sent" : "Elektronska pošta je poslana",
"You need to set your user email before being able to send test emails." : "Pred preizkusnim pošiljanjem sporočil je treba nastaviti elektronski naslov uporabnika.",
"Invalid mail address" : "Neveljaven elektronski naslov",
+ "A user with that name already exists." : "Uporabnik s takim imenom že obstaja.",
"Unable to create user." : "Ni mogoče ustvariti uporabnika.",
"Your %s account was created" : "Račun %s je uspešno ustvarjen.",
"Unable to delete user." : "Ni mogoče izbrisati uporabnika",
@@ -40,6 +49,8 @@ OC.L10N.register(
"Email saved" : "Elektronski naslov je shranjen",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ali ste prepričani, da želite dodati \"{domain}\" kot varno domeno?",
"Add trusted domain" : "Dodaj varno domeno",
+ "Migration in progress. Please wait until the migration is finished" : "Selitev v teku. Prosimo, počakajte, da se selitev zaključi.",
+ "Migration started …" : "Selitev pognana...",
"Sending..." : "Poteka pošiljanje ...",
"All" : "Vsi",
"Please wait...." : "Počakajte ...",
@@ -71,6 +82,7 @@ OC.L10N.register(
"never" : "nikoli",
"deleted {userName}" : "izbrisano {userName}",
"add group" : "dodaj skupino",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Sprememba gesla bo povzročila izgubo podatkov, ker obnova podatkov za tega uporabnika ni na voljo.",
"A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime",
"Error creating user" : "Napaka ustvarjanja uporabnika",
"A valid password must be provided" : "Navedeno mora biti veljavno geslo",
@@ -90,9 +102,11 @@ OC.L10N.register(
"NT LAN Manager" : "Upravljalnik NT LAN",
"SSL" : "SSL",
"TLS" : "TLS",
+ "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Vaš strežnik je nameščen na Microsoft Windows. Toplo priporočamo Linux okolje za optimalno uporabniško izkušnjo.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Manjka modul PHP 'fileinfo'. Priporočljivo je omogočiti ta modul za popolno zaznavanje vrst MIME.",
"System locale can not be set to a one which supports UTF-8." : "Sistemskih jezikovnih nastavitev ni mogoče nastaviti na možnost, ki podpira nabor UTF-8.",
"This means that there might be problems with certain characters in file names." : "To pomeni, da se lahko pojavijo napake pri nekaterih znakih v imenih datotek.",
+ "Open documentation" : "Odprta dokumentacija",
"Allow apps to use the Share API" : "Dovoli programom uporabo vmesnika API souporabe",
"Allow users to share via link" : "Uporabnikom dovoli omogočanje souporabe s povezavami",
"Enforce password protection" : "Vsili zaščito z geslom",
@@ -104,16 +118,20 @@ OC.L10N.register(
"Enforce expiration date" : "Vsili datum preteka",
"Allow resharing" : "Dovoli nadaljnjo souporabo",
"Restrict users to only share with users in their groups" : "Uporabnikom dovoli omogočanje souporabe le znotraj njihove skupine",
+ "Allow users to send mail notification for shared files to other users" : "Omogočite uporabnikom, da pošiljajo poštna obvestila za deljene datoteke drugim uporabnikom.",
"Exclude groups from sharing" : "Izloči skupine iz souporabe",
"These groups will still be able to receive shares, but not to initiate them." : "Te skupine lahko sprejemajo mape v souporabo, ne morejo pa souporabe dovoliti",
"Cron was not executed yet!" : "Periodično opravilo cron še ni zagnano!",
"Execute one task with each page loaded" : "Izvedi eno nalogo z vsako naloženo stranjo.",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Datoteka cron.php je vpisana za periodično opravilo webcron za potrditev sklica vsakih 15 minut pri povezavi preko HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Uporabi storitev periodičnih opravil za klic datoteke cron.php vsakih 15 minut.",
+ "Enable server-side encryption" : "Omogoči šifriranje na strežniku",
+ "Start migration" : "Zaženite selitev",
"This is used for sending out notifications." : "Možnost je uporabljena za omogočanje pošiljanja obvestil.",
"Send mode" : "Način pošiljanja",
"Encryption" : "Šifriranje",
"From address" : "Naslov pošiljatelja",
+ "mail" : "pošta",
"Authentication method" : "Način overitve",
"Authentication required" : "Zahtevana je overitev",
"Server address" : "Naslov strežnika",
@@ -128,22 +146,44 @@ OC.L10N.register(
"Download logfile" : "Prejmi dnevniško datoteko",
"More" : "Več",
"Less" : "Manj",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Datoteeka dnevniškega zapisa je večja od 100MB. Prenos lahko traja dlje!",
+ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "Uporabljena baza je SQLite. Za večje namestitve priporočamo prehod na drugačno bazo.",
+ "How to do backups" : "Kako napraviti varnostne kopije",
+ "Advanced monitoring" : "Napredno sledenje",
+ "Performance tuning" : "Optimizacija izvajanja",
+ "Improving the config.php" : "Izboljšanje config.php",
+ "Theming" : "Teme",
+ "Hardening and security guidance" : "Varovanje in varnostni napotki",
"Version" : "Različica",
- "More apps" : "Več programov",
+ "Developer documentation" : "Razvojniška dokumentacija",
+ "Experimental applications ahead" : "Testne aplikacija",
"by" : "od",
+ "licensed" : "licencirano",
"Documentation:" : "Dokumentacija:",
"User Documentation" : "Uporabniška dokumentacija",
"Admin Documentation" : "Skrbniška dokumentacija",
+ "Show description …" : "Prikaži opis...",
+ "Hide description …" : "Skrij opis...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:",
"Update to %s" : "Posodobi na %s",
"Enable only for specific groups" : "Omogoči le za posamezne skupine",
"Uninstall App" : "Odstrani program",
+ "Enable experimental apps" : "Omogoči testne aplikacije",
+ "No apps found for your version" : "Ni aplikacij za vašo verzijo",
+ "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Pozdravljeni,<br><br>samo sporočamo, da imate %s račun.<br><br>Vaše uporabniško ime: %s<br>Dostop: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Na zdravje!",
+ "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Pozdravljeni,\n\nsamo sporočamo, da imate %s račun.\n\nVaše uporabniško ime: %s\nDostop: %s\n",
+ "User documentation" : "Uporabniška navodila",
+ "Administrator documentation" : "Skrbniška navodila",
+ "Online documentation" : "Dokumentacija na spletu",
"Forum" : "Forum",
+ "Issue tracker" : "Spremljanje težav",
+ "Commercial support" : "Komercialna podpora",
"Get the apps to sync your files" : "Pridobi programe za usklajevanje datotek",
"Desktop client" : "Namizni odjemalec",
"Android app" : "Program za Android",
"iOS app" : "Program za iOS",
+ "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Če bi radi podprli projekt\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">pristopite razvoju</a>\n\t\tali\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">razširite glas</a>!",
"Show First Run Wizard again" : "Zaženi čarovnika prvega zagona",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Uporabljenega je <strong>%s</strong> od razpoložljivih <strong>%s</strong> prostora.",
"Password" : "Geslo",
@@ -151,8 +191,13 @@ OC.L10N.register(
"Current password" : "Trenutno geslo",
"New password" : "Novo geslo",
"Change password" : "Spremeni geslo",
+ "Full name" : "Polno ime",
+ "No display name set" : "Ime za prikaz ni bilo nastavljeno",
"Email" : "Elektronski naslov",
"Your email address" : "Osebni elektronski naslov",
+ "Fill in an email address to enable password recovery and receive notifications" : "Podajte elektronski naslov, da vam omogočimo reševanje izgubljenega gesla in sprejem obvestil",
+ "No email address set" : "Poštni naslov ni bil vpisan",
+ "You are member of the following groups:" : "Vi ste član sledečih skupin:",
"Profile picture" : "Slika profila",
"Upload new" : "Pošlji novo",
"Select new from Files" : "Izberi novo iz menija datotek",
@@ -167,8 +212,10 @@ OC.L10N.register(
"Valid until" : "Veljavno do",
"Issued By" : "Izdajatelj",
"Valid until %s" : "Veljavno do %s",
+ "Import root certificate" : "Uvozite korenski certifikat",
"Show storage location" : "Pokaži mesto shrambe",
"Show last log in" : "Pokaži podatke zadnje prijave",
+ "Send email to new user" : "Pošlji sporočilo novemu uporabniku",
"Show email address" : "Pokaži naslov elektronske pošte",
"Username" : "Uporabniško ime",
"E-Mail" : "Elektronska pošta",
diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json
index 5fc355467bd..e1972909ac5 100644
--- a/settings/l10n/sl.json
+++ b/settings/l10n/sl.json
@@ -1,8 +1,12 @@
{ "translations": {
+ "Security & setup warnings" : "Varnost in namestitvena opozorila",
"Sharing" : "Souporaba",
+ "Server-side encryption" : "Šifriranje na strežniku",
"External Storage" : "Zunanja podatkovna shramba",
"Cron" : "Periodično opravilo",
+ "Email server" : "Poštni strežnik",
"Log" : "Dnevnik",
+ "Tips & tricks" : "Nasveti in triki",
"Updates" : "Posodobitve",
"Authentication error" : "Napaka med overjanjem",
"Your full name has been changed." : "Vaše polno ime je spremenjeno.",
@@ -21,14 +25,19 @@
"Unable to change password" : "Ni mogoče spremeniti gesla",
"Enabled" : "Omogočeno",
"Not enabled" : "Ni omogočeno",
+ "A problem occurred, please check your log files (Error: %s)" : "Pojavila se je težava. Prosimo, preverite dnevniške zapise (Napaka: %s)",
+ "Migration Completed" : "Selitev zaključena",
"Group already exists." : "Skupina že obstaja.",
"Unable to add group." : "Ni mogoče dodati skupine",
"Unable to delete group." : "Ni mogoče izbrisati skupine.",
+ "log-level out of allowed range" : "stopnja zapisovanja izven območja",
"Saved" : "Shranjeno",
"test email settings" : "preizkusi nastavitve elektronske pošte",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Med pošiljanjem sporočila se je pojavila težava. Preglejte nastavitve. (Napaka: %s)",
"Email sent" : "Elektronska pošta je poslana",
"You need to set your user email before being able to send test emails." : "Pred preizkusnim pošiljanjem sporočil je treba nastaviti elektronski naslov uporabnika.",
"Invalid mail address" : "Neveljaven elektronski naslov",
+ "A user with that name already exists." : "Uporabnik s takim imenom že obstaja.",
"Unable to create user." : "Ni mogoče ustvariti uporabnika.",
"Your %s account was created" : "Račun %s je uspešno ustvarjen.",
"Unable to delete user." : "Ni mogoče izbrisati uporabnika",
@@ -38,6 +47,8 @@
"Email saved" : "Elektronski naslov je shranjen",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ali ste prepričani, da želite dodati \"{domain}\" kot varno domeno?",
"Add trusted domain" : "Dodaj varno domeno",
+ "Migration in progress. Please wait until the migration is finished" : "Selitev v teku. Prosimo, počakajte, da se selitev zaključi.",
+ "Migration started …" : "Selitev pognana...",
"Sending..." : "Poteka pošiljanje ...",
"All" : "Vsi",
"Please wait...." : "Počakajte ...",
@@ -69,6 +80,7 @@
"never" : "nikoli",
"deleted {userName}" : "izbrisano {userName}",
"add group" : "dodaj skupino",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "Sprememba gesla bo povzročila izgubo podatkov, ker obnova podatkov za tega uporabnika ni na voljo.",
"A valid username must be provided" : "Navedeno mora biti veljavno uporabniško ime",
"Error creating user" : "Napaka ustvarjanja uporabnika",
"A valid password must be provided" : "Navedeno mora biti veljavno geslo",
@@ -88,9 +100,11 @@
"NT LAN Manager" : "Upravljalnik NT LAN",
"SSL" : "SSL",
"TLS" : "TLS",
+ "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Vaš strežnik je nameščen na Microsoft Windows. Toplo priporočamo Linux okolje za optimalno uporabniško izkušnjo.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Manjka modul PHP 'fileinfo'. Priporočljivo je omogočiti ta modul za popolno zaznavanje vrst MIME.",
"System locale can not be set to a one which supports UTF-8." : "Sistemskih jezikovnih nastavitev ni mogoče nastaviti na možnost, ki podpira nabor UTF-8.",
"This means that there might be problems with certain characters in file names." : "To pomeni, da se lahko pojavijo napake pri nekaterih znakih v imenih datotek.",
+ "Open documentation" : "Odprta dokumentacija",
"Allow apps to use the Share API" : "Dovoli programom uporabo vmesnika API souporabe",
"Allow users to share via link" : "Uporabnikom dovoli omogočanje souporabe s povezavami",
"Enforce password protection" : "Vsili zaščito z geslom",
@@ -102,16 +116,20 @@
"Enforce expiration date" : "Vsili datum preteka",
"Allow resharing" : "Dovoli nadaljnjo souporabo",
"Restrict users to only share with users in their groups" : "Uporabnikom dovoli omogočanje souporabe le znotraj njihove skupine",
+ "Allow users to send mail notification for shared files to other users" : "Omogočite uporabnikom, da pošiljajo poštna obvestila za deljene datoteke drugim uporabnikom.",
"Exclude groups from sharing" : "Izloči skupine iz souporabe",
"These groups will still be able to receive shares, but not to initiate them." : "Te skupine lahko sprejemajo mape v souporabo, ne morejo pa souporabe dovoliti",
"Cron was not executed yet!" : "Periodično opravilo cron še ni zagnano!",
"Execute one task with each page loaded" : "Izvedi eno nalogo z vsako naloženo stranjo.",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Datoteka cron.php je vpisana za periodično opravilo webcron za potrditev sklica vsakih 15 minut pri povezavi preko HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Uporabi storitev periodičnih opravil za klic datoteke cron.php vsakih 15 minut.",
+ "Enable server-side encryption" : "Omogoči šifriranje na strežniku",
+ "Start migration" : "Zaženite selitev",
"This is used for sending out notifications." : "Možnost je uporabljena za omogočanje pošiljanja obvestil.",
"Send mode" : "Način pošiljanja",
"Encryption" : "Šifriranje",
"From address" : "Naslov pošiljatelja",
+ "mail" : "pošta",
"Authentication method" : "Način overitve",
"Authentication required" : "Zahtevana je overitev",
"Server address" : "Naslov strežnika",
@@ -126,22 +144,44 @@
"Download logfile" : "Prejmi dnevniško datoteko",
"More" : "Več",
"Less" : "Manj",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Datoteeka dnevniškega zapisa je večja od 100MB. Prenos lahko traja dlje!",
+ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "Uporabljena baza je SQLite. Za večje namestitve priporočamo prehod na drugačno bazo.",
+ "How to do backups" : "Kako napraviti varnostne kopije",
+ "Advanced monitoring" : "Napredno sledenje",
+ "Performance tuning" : "Optimizacija izvajanja",
+ "Improving the config.php" : "Izboljšanje config.php",
+ "Theming" : "Teme",
+ "Hardening and security guidance" : "Varovanje in varnostni napotki",
"Version" : "Različica",
- "More apps" : "Več programov",
+ "Developer documentation" : "Razvojniška dokumentacija",
+ "Experimental applications ahead" : "Testne aplikacija",
"by" : "od",
+ "licensed" : "licencirano",
"Documentation:" : "Dokumentacija:",
"User Documentation" : "Uporabniška dokumentacija",
"Admin Documentation" : "Skrbniška dokumentacija",
+ "Show description …" : "Prikaži opis...",
+ "Hide description …" : "Skrij opis...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:",
"Update to %s" : "Posodobi na %s",
"Enable only for specific groups" : "Omogoči le za posamezne skupine",
"Uninstall App" : "Odstrani program",
+ "Enable experimental apps" : "Omogoči testne aplikacije",
+ "No apps found for your version" : "Ni aplikacij za vašo verzijo",
+ "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Pozdravljeni,<br><br>samo sporočamo, da imate %s račun.<br><br>Vaše uporabniško ime: %s<br>Dostop: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Na zdravje!",
+ "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Pozdravljeni,\n\nsamo sporočamo, da imate %s račun.\n\nVaše uporabniško ime: %s\nDostop: %s\n",
+ "User documentation" : "Uporabniška navodila",
+ "Administrator documentation" : "Skrbniška navodila",
+ "Online documentation" : "Dokumentacija na spletu",
"Forum" : "Forum",
+ "Issue tracker" : "Spremljanje težav",
+ "Commercial support" : "Komercialna podpora",
"Get the apps to sync your files" : "Pridobi programe za usklajevanje datotek",
"Desktop client" : "Namizni odjemalec",
"Android app" : "Program za Android",
"iOS app" : "Program za iOS",
+ "If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Če bi radi podprli projekt\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">pristopite razvoju</a>\n\t\tali\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">razširite glas</a>!",
"Show First Run Wizard again" : "Zaženi čarovnika prvega zagona",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Uporabljenega je <strong>%s</strong> od razpoložljivih <strong>%s</strong> prostora.",
"Password" : "Geslo",
@@ -149,8 +189,13 @@
"Current password" : "Trenutno geslo",
"New password" : "Novo geslo",
"Change password" : "Spremeni geslo",
+ "Full name" : "Polno ime",
+ "No display name set" : "Ime za prikaz ni bilo nastavljeno",
"Email" : "Elektronski naslov",
"Your email address" : "Osebni elektronski naslov",
+ "Fill in an email address to enable password recovery and receive notifications" : "Podajte elektronski naslov, da vam omogočimo reševanje izgubljenega gesla in sprejem obvestil",
+ "No email address set" : "Poštni naslov ni bil vpisan",
+ "You are member of the following groups:" : "Vi ste član sledečih skupin:",
"Profile picture" : "Slika profila",
"Upload new" : "Pošlji novo",
"Select new from Files" : "Izberi novo iz menija datotek",
@@ -165,8 +210,10 @@
"Valid until" : "Veljavno do",
"Issued By" : "Izdajatelj",
"Valid until %s" : "Veljavno do %s",
+ "Import root certificate" : "Uvozite korenski certifikat",
"Show storage location" : "Pokaži mesto shrambe",
"Show last log in" : "Pokaži podatke zadnje prijave",
+ "Send email to new user" : "Pošlji sporočilo novemu uporabniku",
"Show email address" : "Pokaži naslov elektronske pošte",
"Username" : "Uporabniško ime",
"E-Mail" : "Elektronska pošta",
diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js
index 20ec171070c..7cc1ce408d3 100644
--- a/settings/l10n/sr.js
+++ b/settings/l10n/sr.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Безбедносна и упозорења поставе",
"Sharing" : "Дељење",
- "External Storage" : "Спољашње складиште",
"Server-side encryption" : "Шифровање на страни сервера",
+ "External Storage" : "Спољашње складиште",
"Cron" : "Крон",
"Email server" : "Сервер е-поште",
"Log" : "Бележење",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Молимо вас да добро проверите <a target=\"_blank\" href=\"%s\">упутства за инсталацију ↗</a>, и да проверите ли постоје било какве грешке или упозорења у <a href=\"#log-section\">дневнику записа</a>.",
+ "Open documentation" : "Отвори документацију",
"Allow apps to use the Share API" : "Дозвољава апликацијама да користе АПИ дељења",
"Allow users to share via link" : "Дозволи корисницима да деле путем везе",
"Enforce password protection" : "Захтевај заштиту лозинком",
@@ -138,11 +139,16 @@ OC.L10N.register(
"Last cron job execution: %s." : "Последњи извршени крон задатак: %s.",
"Last cron job execution: %s. Something seems wrong." : "Последњи извршени крон задатак: %s. Нешто изгледа није у реду.",
"Cron was not executed yet!" : "Крон задатак још увек није извршен!",
- "Open documentation" : "Отвори документацију",
"Execute one task with each page loaded" : "Изврши један задатак са сваком учитаном страницом",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.",
"Enable server-side encryption" : "Укључи шифровање на страни сервера",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Шифровање је једносмеран процес. Једном када се укључи, сви фајлови ће од тада бити шифровани на серверу и касније се неће моћи искључити. Ово је последње упозорење: Да ли заиста желите да укључите шифровање?",
+ "Enable encryption" : "Укључи шифровање",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација",
+ "Select default encryption module:" : "Изаберите подразумевани шифрарски модул:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.",
"Start migration" : "Покрени пресељење",
"This is used for sending out notifications." : "Ово се користи за слање обавештења.",
"Send mode" : "Режим слања",
@@ -174,7 +180,6 @@ OC.L10N.register(
"Theming" : "Теме",
"Hardening and security guidance" : "Ојачавање система и безбедносне препоруке",
"Version" : "Верзија",
- "More apps" : "Још апликација",
"Developer documentation" : "Програмерска документација",
"Experimental applications ahead" : "Експериментална апликација",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експерименталне апликације се непроверене што се тиче безбедности и могу бити нестабилне и недовршене. Инсталирање може довести до губитка података или нарушавања безбедности.",
diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json
index 423c8f0a10a..d2d33b143b1 100644
--- a/settings/l10n/sr.json
+++ b/settings/l10n/sr.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Безбедносна и упозорења поставе",
"Sharing" : "Дељење",
- "External Storage" : "Спољашње складиште",
"Server-side encryption" : "Шифровање на страни сервера",
+ "External Storage" : "Спољашње складиште",
"Cron" : "Крон",
"Email server" : "Сервер е-поште",
"Log" : "Бележење",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ако инсталација није инсталирана у основи домена и користи системски крон, може бити проблема са генерисањем веб адреса. Да бисте избегли ове проблеме, молимо вас да подесите \"overwrite.cli.url\" опцију у вашем config.php фајлу у путању веб-основе ваше инсталације (Предложено: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Није било могуће да се изврши крон задатак путем интерфејса командне линије. Појавила су се следеће техничке грешке:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Молимо вас да добро проверите <a target=\"_blank\" href=\"%s\">упутства за инсталацију ↗</a>, и да проверите ли постоје било какве грешке или упозорења у <a href=\"#log-section\">дневнику записа</a>.",
+ "Open documentation" : "Отвори документацију",
"Allow apps to use the Share API" : "Дозвољава апликацијама да користе АПИ дељења",
"Allow users to share via link" : "Дозволи корисницима да деле путем везе",
"Enforce password protection" : "Захтевај заштиту лозинком",
@@ -136,11 +137,16 @@
"Last cron job execution: %s." : "Последњи извршени крон задатак: %s.",
"Last cron job execution: %s. Something seems wrong." : "Последњи извршени крон задатак: %s. Нешто изгледа није у реду.",
"Cron was not executed yet!" : "Крон задатак још увек није извршен!",
- "Open documentation" : "Отвори документацију",
"Execute one task with each page loaded" : "Изврши један задатак са сваком учитаном страницом",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.",
"Enable server-side encryption" : "Укључи шифровање на страни сервера",
+ "Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?" : "Шифровање је једносмеран процес. Једном када се укључи, сви фајлови ће од тада бити шифровани на серверу и касније се неће моћи искључити. Ово је последње упозорење: Да ли заиста желите да укључите шифровање?",
+ "Enable encryption" : "Укључи шифровање",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Шифрарски модул није учитан. Укључите га у менију апликација",
+ "Select default encryption module:" : "Изаберите подразумевани шифрарски модул:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"ownCloud Default Encryption Module\" and run 'occ encryption:migrate'" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) на нове. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Морате да преселите шифрарске кључеве старог шифровања (оунКлауд <= 8.0) на нове.",
"Start migration" : "Покрени пресељење",
"This is used for sending out notifications." : "Ово се користи за слање обавештења.",
"Send mode" : "Режим слања",
@@ -172,7 +178,6 @@
"Theming" : "Теме",
"Hardening and security guidance" : "Ојачавање система и безбедносне препоруке",
"Version" : "Верзија",
- "More apps" : "Још апликација",
"Developer documentation" : "Програмерска документација",
"Experimental applications ahead" : "Експериментална апликација",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експерименталне апликације се непроверене што се тиче безбедности и могу бити нестабилне и недовршене. Инсталирање може довести до губитка података или нарушавања безбедности.",
diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js
index 05b7dcba6c0..a898e8796a2 100644
--- a/settings/l10n/sv.js
+++ b/settings/l10n/sv.js
@@ -136,7 +136,6 @@ OC.L10N.register(
"More" : "Mer",
"Less" : "Mindre",
"Version" : "Version",
- "More apps" : "Fler appar",
"by" : "av",
"licensed" : "licensierad",
"Documentation:" : "Dokumentation:",
diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json
index 42bd8e5b6f4..654f005f3a2 100644
--- a/settings/l10n/sv.json
+++ b/settings/l10n/sv.json
@@ -134,7 +134,6 @@
"More" : "Mer",
"Less" : "Mindre",
"Version" : "Version",
- "More apps" : "Fler appar",
"by" : "av",
"licensed" : "licensierad",
"Documentation:" : "Dokumentation:",
diff --git a/settings/l10n/th_TH.js b/settings/l10n/th_TH.js
index d17362b1b3c..05110cb7046 100644
--- a/settings/l10n/th_TH.js
+++ b/settings/l10n/th_TH.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"Unable to add user to group %s" : "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้",
"Unable to remove user from group %s" : "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้",
"Couldn't update app." : "ไม่สามารถอัพเดทแอปฯ",
+ "Saved" : "บันทึกแล้ว",
"Email sent" : "ส่งอีเมล์แล้ว",
"Email saved" : "อีเมลถูกบันทึกแล้ว",
"All" : "ทั้งหมด",
diff --git a/settings/l10n/th_TH.json b/settings/l10n/th_TH.json
index 7519442d4fe..5b3ba2b98ed 100644
--- a/settings/l10n/th_TH.json
+++ b/settings/l10n/th_TH.json
@@ -10,6 +10,7 @@
"Unable to add user to group %s" : "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้",
"Unable to remove user from group %s" : "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้",
"Couldn't update app." : "ไม่สามารถอัพเดทแอปฯ",
+ "Saved" : "บันทึกแล้ว",
"Email sent" : "ส่งอีเมล์แล้ว",
"Email saved" : "อีเมลถูกบันทึกแล้ว",
"All" : "ทั้งหมด",
diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js
index c51cb37c468..d3d9485c39d 100644
--- a/settings/l10n/tr.js
+++ b/settings/l10n/tr.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Güvenlik ve kurulum uyarıları",
"Sharing" : "Paylaşım",
- "External Storage" : "Harici Depolama",
"Server-side encryption" : "Sunucu taraflı şifreleme",
+ "External Storage" : "Harici Depolama",
"Cron" : "Cron",
"Email server" : "E-Posta sunucusu",
"Log" : "Günlük",
@@ -121,6 +121,7 @@ OC.L10N.register(
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Eğer kurulumunuz alan adının köküne yapılmamışsa ve sistem cron'u kullanıyorsa, URL oluşturma ile ilgili sorunlar oluşabilir. Bu sorunların önüne geçmek için, kurulumunuzun web kök yolundaki config.php dosyasında \"overwrite.cli.url\" seçeneğini ayarlayın (Önerilen: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Bu CLI ile cronjobı çalıştırmak mümkün değildi. Aşağıdaki teknik hatalar ortaya çıkmıştır:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Lütfen <a target=\"_blank\" href=\"%s\">kurulum rehberlerini ↗</a> iki kez denetleyip <a href=\"#log-section\">günlük</a> içerisindeki hata ve uyarılara bakın.",
+ "Open documentation" : "Dokümantasyonu aç",
"Allow apps to use the Share API" : "Uygulamaların paylaşım API'sini kullanmasına izin ver",
"Allow users to share via link" : "Kullanıcıların bağlantı ile paylaşmasına izin ver",
"Enforce password protection" : "Parola korumasını zorla",
@@ -138,11 +139,11 @@ OC.L10N.register(
"Last cron job execution: %s." : "Son cron çalıştırılma: %s.",
"Last cron job execution: %s. Something seems wrong." : "Son cron çalıştırılma: %s. Bir şeyler yanlış gibi görünüyor.",
"Cron was not executed yet!" : "Cron henüz çalıştırılmadı!",
- "Open documentation" : "Dokümantasyonu aç",
"Execute one task with each page loaded" : "Yüklenen her sayfa ile bir görev çalıştır",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php, http üzerinden her 15 dakikada bir çağrılması için webcron hizmetine kaydedilir.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Cron.php dosyasını her 15 dakikada bir çağırmak için sistem cron hizmetini kullan.",
"Enable server-side encryption" : "Sunucu-taraflı şifrelemeyi aç",
+ "Enable encryption" : "Kriptolamayı aç",
"Start migration" : "Taşınmayı başlat",
"This is used for sending out notifications." : "Bu, bildirimler gönderilirken kullanılır.",
"Send mode" : "Gönderme kipi",
@@ -174,7 +175,6 @@ OC.L10N.register(
"Theming" : "Tema",
"Hardening and security guidance" : "Sağlamlaştırma ve güvenlik rehberliği",
"Version" : "Sürüm",
- "More apps" : "Daha fazla uygulama",
"Developer documentation" : "Geliştirici belgelendirmesi",
"Experimental applications ahead" : "Deneyimsel uygulamalar önde",
"by" : "Yazan:",
@@ -188,11 +188,17 @@ OC.L10N.register(
"Update to %s" : "%s sürümüne güncelle",
"Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir",
"Uninstall App" : "Uygulamayı Kaldır",
+ "Enable experimental apps" : "Deneme uygulamalarını aç",
"No apps found for your version" : "Sürümünüz için uygulama bulunamadı",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Merhaba,<br><br>Sadece artık bir %s hesabınızın olduğunu söylemek istedim.<br><br>Kullanıcı adınız: %s<br>Şuradan erişin: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Hoşçakalın!",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n",
+ "User documentation" : "Kullanıcı kılavuzu",
+ "Administrator documentation" : "Yönetici kılavuzu",
+ "Online documentation" : "Online kılavuz",
"Forum" : "Forum",
+ "Issue tracker" : "Sorun Takip",
+ "Commercial support" : "Ticari destek",
"Get the apps to sync your files" : "Dosyalarınızı eşitlemek için uygulamaları indirin",
"Desktop client" : "Masaüstü istemcisi",
"Android app" : "Android uygulaması",
diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json
index cc2bb485c02..b2a2c6bf936 100644
--- a/settings/l10n/tr.json
+++ b/settings/l10n/tr.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Güvenlik ve kurulum uyarıları",
"Sharing" : "Paylaşım",
- "External Storage" : "Harici Depolama",
"Server-side encryption" : "Sunucu taraflı şifreleme",
+ "External Storage" : "Harici Depolama",
"Cron" : "Cron",
"Email server" : "E-Posta sunucusu",
"Log" : "Günlük",
@@ -119,6 +119,7 @@
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Eğer kurulumunuz alan adının köküne yapılmamışsa ve sistem cron'u kullanıyorsa, URL oluşturma ile ilgili sorunlar oluşabilir. Bu sorunların önüne geçmek için, kurulumunuzun web kök yolundaki config.php dosyasında \"overwrite.cli.url\" seçeneğini ayarlayın (Önerilen: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Bu CLI ile cronjobı çalıştırmak mümkün değildi. Aşağıdaki teknik hatalar ortaya çıkmıştır:",
"Please double check the <a target=\"_blank\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"#log-section\">log</a>." : "Lütfen <a target=\"_blank\" href=\"%s\">kurulum rehberlerini ↗</a> iki kez denetleyip <a href=\"#log-section\">günlük</a> içerisindeki hata ve uyarılara bakın.",
+ "Open documentation" : "Dokümantasyonu aç",
"Allow apps to use the Share API" : "Uygulamaların paylaşım API'sini kullanmasına izin ver",
"Allow users to share via link" : "Kullanıcıların bağlantı ile paylaşmasına izin ver",
"Enforce password protection" : "Parola korumasını zorla",
@@ -136,11 +137,11 @@
"Last cron job execution: %s." : "Son cron çalıştırılma: %s.",
"Last cron job execution: %s. Something seems wrong." : "Son cron çalıştırılma: %s. Bir şeyler yanlış gibi görünüyor.",
"Cron was not executed yet!" : "Cron henüz çalıştırılmadı!",
- "Open documentation" : "Dokümantasyonu aç",
"Execute one task with each page loaded" : "Yüklenen her sayfa ile bir görev çalıştır",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php, http üzerinden her 15 dakikada bir çağrılması için webcron hizmetine kaydedilir.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Cron.php dosyasını her 15 dakikada bir çağırmak için sistem cron hizmetini kullan.",
"Enable server-side encryption" : "Sunucu-taraflı şifrelemeyi aç",
+ "Enable encryption" : "Kriptolamayı aç",
"Start migration" : "Taşınmayı başlat",
"This is used for sending out notifications." : "Bu, bildirimler gönderilirken kullanılır.",
"Send mode" : "Gönderme kipi",
@@ -172,7 +173,6 @@
"Theming" : "Tema",
"Hardening and security guidance" : "Sağlamlaştırma ve güvenlik rehberliği",
"Version" : "Sürüm",
- "More apps" : "Daha fazla uygulama",
"Developer documentation" : "Geliştirici belgelendirmesi",
"Experimental applications ahead" : "Deneyimsel uygulamalar önde",
"by" : "Yazan:",
@@ -186,11 +186,17 @@
"Update to %s" : "%s sürümüne güncelle",
"Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir",
"Uninstall App" : "Uygulamayı Kaldır",
+ "Enable experimental apps" : "Deneme uygulamalarını aç",
"No apps found for your version" : "Sürümünüz için uygulama bulunamadı",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Merhaba,<br><br>Sadece artık bir %s hesabınızın olduğunu söylemek istedim.<br><br>Kullanıcı adınız: %s<br>Şuradan erişin: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Hoşçakalın!",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n",
+ "User documentation" : "Kullanıcı kılavuzu",
+ "Administrator documentation" : "Yönetici kılavuzu",
+ "Online documentation" : "Online kılavuz",
"Forum" : "Forum",
+ "Issue tracker" : "Sorun Takip",
+ "Commercial support" : "Ticari destek",
"Get the apps to sync your files" : "Dosyalarınızı eşitlemek için uygulamaları indirin",
"Desktop client" : "Masaüstü istemcisi",
"Android app" : "Android uygulaması",
diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js
index cd0a51fc157..c60e3eeab06 100644
--- a/settings/l10n/uk.js
+++ b/settings/l10n/uk.js
@@ -3,8 +3,8 @@ OC.L10N.register(
{
"Security & setup warnings" : "Попередження безпеки та налаштування",
"Sharing" : "Спільний доступ",
- "External Storage" : "Зовнішні сховища",
"Server-side encryption" : "Серверне шіфрування",
+ "External Storage" : "Зовнішні сховища",
"Cron" : "Планувальник Cron",
"Email server" : "Сервер електронної пошти",
"Log" : "Журнал",
@@ -117,6 +117,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файлу config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Не вдалося запустити завдання планувальника через CLI. Відбулися наступні технічні помилки:",
+ "Open documentation" : "Відкрити документацію",
"Allow apps to use the Share API" : "Дозволити програмам використовувати API спільного доступу",
"Allow users to share via link" : "Дозволити користувачам ділитися через посилання",
"Enforce password protection" : "Захист паролем обов'язковий",
@@ -134,7 +135,6 @@ OC.L10N.register(
"Last cron job execution: %s." : "Останне виконане Cron завдання: %s.",
"Last cron job execution: %s. Something seems wrong." : "Останне виконане Cron завдання: %s. Щось здається неправильним.",
"Cron was not executed yet!" : "Cron-задачі ще не запускалися!",
- "Open documentation" : "Відкрити документацію",
"Execute one task with each page loaded" : "Виконати одне завдання для кожної завантаженої сторінки ",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зареєстрований в службі webcron та буде викликатися кожні 15 хвилин через HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Використовувати системний cron для виклику cron.php кожні 15 хвилин.",
@@ -169,7 +169,6 @@ OC.L10N.register(
"Theming" : "Оформлення",
"Hardening and security guidance" : "Інструктування з безпеки та захисту",
"Version" : "Версія",
- "More apps" : "Більше додатків",
"Developer documentation" : "Документація для розробників",
"Experimental applications ahead" : "Спершу експериментальні застосунки",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експериментальні застосунки не перевірені на наявність проблем безпеки, нові або нестабільні і в процесі активної розробки. Встановлення їх може спричинити втрату даних або дірки в безпеці.",
diff --git a/settings/l10n/uk.json b/settings/l10n/uk.json
index 1dceebe4b75..f88a1c29edc 100644
--- a/settings/l10n/uk.json
+++ b/settings/l10n/uk.json
@@ -1,8 +1,8 @@
{ "translations": {
"Security & setup warnings" : "Попередження безпеки та налаштування",
"Sharing" : "Спільний доступ",
- "External Storage" : "Зовнішні сховища",
"Server-side encryption" : "Серверне шіфрування",
+ "External Storage" : "Зовнішні сховища",
"Cron" : "Планувальник Cron",
"Email server" : "Сервер електронної пошти",
"Log" : "Журнал",
@@ -115,6 +115,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файлу config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Не вдалося запустити завдання планувальника через CLI. Відбулися наступні технічні помилки:",
+ "Open documentation" : "Відкрити документацію",
"Allow apps to use the Share API" : "Дозволити програмам використовувати API спільного доступу",
"Allow users to share via link" : "Дозволити користувачам ділитися через посилання",
"Enforce password protection" : "Захист паролем обов'язковий",
@@ -132,7 +133,6 @@
"Last cron job execution: %s." : "Останне виконане Cron завдання: %s.",
"Last cron job execution: %s. Something seems wrong." : "Останне виконане Cron завдання: %s. Щось здається неправильним.",
"Cron was not executed yet!" : "Cron-задачі ще не запускалися!",
- "Open documentation" : "Відкрити документацію",
"Execute one task with each page loaded" : "Виконати одне завдання для кожної завантаженої сторінки ",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зареєстрований в службі webcron та буде викликатися кожні 15 хвилин через HTTP.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Використовувати системний cron для виклику cron.php кожні 15 хвилин.",
@@ -167,7 +167,6 @@
"Theming" : "Оформлення",
"Hardening and security guidance" : "Інструктування з безпеки та захисту",
"Version" : "Версія",
- "More apps" : "Більше додатків",
"Developer documentation" : "Документація для розробників",
"Experimental applications ahead" : "Спершу експериментальні застосунки",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експериментальні застосунки не перевірені на наявність проблем безпеки, нові або нестабільні і в процесі активної розробки. Встановлення їх може спричинити втрату даних або дірки в безпеці.",
diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js
index 242c78eee7a..313a118900b 100644
--- a/settings/l10n/zh_CN.js
+++ b/settings/l10n/zh_CN.js
@@ -116,7 +116,6 @@ OC.L10N.register(
"Less" : "更少",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端来同步文件时,不鼓励使用 SQLite 。",
"Version" : "版本",
- "More apps" : "更多应用",
"by" : "被",
"Documentation:" : "文档:",
"User Documentation" : "用户文档",
diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json
index f911248ed41..d9ea601b66a 100644
--- a/settings/l10n/zh_CN.json
+++ b/settings/l10n/zh_CN.json
@@ -114,7 +114,6 @@
"Less" : "更少",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端来同步文件时,不鼓励使用 SQLite 。",
"Version" : "版本",
- "More apps" : "更多应用",
"by" : "被",
"Documentation:" : "文档:",
"User Documentation" : "用户文档",
diff --git a/settings/l10n/zh_HK.js b/settings/l10n/zh_HK.js
index 6b613fdf4f7..c2d56692bcf 100644
--- a/settings/l10n/zh_HK.js
+++ b/settings/l10n/zh_HK.js
@@ -35,7 +35,6 @@ OC.L10N.register(
"Log level" : "日誌等級",
"More" : "更多",
"Version" : "版本",
- "More apps" : "更多應用程式",
"Forum" : "討論區",
"Android app" : "Android 應用程式",
"iOS app" : "iOS 應用程式",
diff --git a/settings/l10n/zh_HK.json b/settings/l10n/zh_HK.json
index 1f562400c05..4a5e3ed713a 100644
--- a/settings/l10n/zh_HK.json
+++ b/settings/l10n/zh_HK.json
@@ -33,7 +33,6 @@
"Log level" : "日誌等級",
"More" : "更多",
"Version" : "版本",
- "More apps" : "更多應用程式",
"Forum" : "討論區",
"Android app" : "Android 應用程式",
"iOS app" : "iOS 應用程式",
diff --git a/settings/l10n/zh_TW.js b/settings/l10n/zh_TW.js
index e946e3b5de2..0c562a1f5a6 100644
--- a/settings/l10n/zh_TW.js
+++ b/settings/l10n/zh_TW.js
@@ -94,7 +94,6 @@ OC.L10N.register(
"More" : "更多",
"Less" : "更少",
"Version" : "版本",
- "More apps" : "更多 Apps",
"by" : "由",
"Documentation:" : "文件:",
"User Documentation" : "用戶說明文件",
diff --git a/settings/l10n/zh_TW.json b/settings/l10n/zh_TW.json
index cb4858f9009..898f2f391e8 100644
--- a/settings/l10n/zh_TW.json
+++ b/settings/l10n/zh_TW.json
@@ -92,7 +92,6 @@
"More" : "更多",
"Less" : "更少",
"Version" : "版本",
- "More apps" : "更多 Apps",
"by" : "由",
"Documentation:" : "文件:",
"User Documentation" : "用戶說明文件",
diff --git a/settings/templates/admin.php b/settings/templates/admin.php
index 587a3b6c66b..3c21a547092 100644
--- a/settings/templates/admin.php
+++ b/settings/templates/admin.php
@@ -158,9 +158,7 @@ if ($_['cronErrors']) {
<br>
<ol>
<?php foreach(json_decode($_['cronErrors']) as $error) { if(isset($error->error)) {?>
- <li><?php p($error->error) ?></li>
- <ul><li><?php p($error->hint) ?></li></ul>
-
+ <li><?php p($error->error) ?> <?php p($error->hint) ?></li>
<?php }};?>
</ol>
</li>
@@ -180,6 +178,9 @@ if ($_['cronErrors']) {
<div class="section" id="shareAPI">
<h2><?php p($l->t('Sharing'));?></h2>
+ <a target="_blank" class="icon-info svg"
+ title="<?php p($l->t('Open documentation'));?>"
+ href="<?php p(link_to_docs('admin-sharing')); ?>"></a>
<p id="enable">
<input type="checkbox" name="shareapi_enabled" id="shareAPIEnabled"
value="1" <?php if ($_['shareAPIEnabled'] === 'yes') print_unescaped('checked="checked"'); ?> />
@@ -310,23 +311,33 @@ if ($_['cronErrors']) {
</div>
<div class="section" id='encryptionAPI'>
- <h2><?php p($l->t('Server-side encryption')); ?> </h2>
+ <h2><?php p($l->t('Server-side encryption')); ?></h2>
+ <a target="_blank" class="icon-info svg"
+ title="<?php p($l->t('Open documentation'));?>"
+ href="<?php p(link_to_docs('admin-encryption')); ?>"></a>
<p id="enable">
- <input type="checkbox" name="encryption_enabled"
- id="encryptionEnabled"
- value="1" <?php if ($_['encryptionEnabled']) print_unescaped('checked="checked"'); ?> />
+ <input type="checkbox"
+ id="enableEncryption"
+ value="1" <?php if ($_['encryptionEnabled']) print_unescaped('checked="checked" disabled="disabled"'); ?> />
<label
- for="encryptionEnabled"><?php p($l->t('Enable server-side encryption')); ?> <span id="startmigration_msg" class="msg"></span> </label><br/>
+ for="enableEncryption"><?php p($l->t('Enable server-side encryption')); ?> <span id="startmigration_msg" class="msg"></span> </label><br/>
</p>
+ <div id="EncryptionWarning" class="warning hidden">
+ <?php p($l->t('Encryption is a one way process. Once encryption is enabled, all files from that point forward will be encrypted on the server and it will not be possible to disable encryption at a later date. This is the final warning: Do you really want to enable encryption?')) ?>
+ <input type="button"
+ id="reallyEnableEncryption"
+ value="<?php p($l->t("Enable encryption")); ?>" />
+ </div>
+
<div id="EncryptionSettingsArea" class="<?php if (!$_['encryptionEnabled']) p('hidden'); ?>">
<div id='selectEncryptionModules' class="<?php if (!$_['encryptionReady']) p('hidden'); ?>">
<?php
if (empty($_['encryptionModules'])) {
- p('No encryption module loaded, please load a encryption module in the app menu');
+ p($l->t('No encryption module loaded, please enable an encryption module in the app menu.'));
} else { ?>
- <h3>Select default encryption module:</h3>
+ <h3><?php p($l->t('Select default encryption module:')) ?></h3>
<fieldset id='encryptionModules'>
<?php foreach ($_['encryptionModules'] as $id => $module): ?>
<input type="radio" id="<?php p($id) ?>"
@@ -338,6 +349,8 @@ if ($_['cronErrors']) {
<label
for="<?php p($id) ?>"><?php p($module['displayName']) ?></label>
<br/>
+
+ <?php if ($id === 'OC_DEFAULT_MODULE') print_unescaped($_['ocDefaultEncryptionModulePanel']); ?>
<?php endforeach; ?>
</fieldset>
<?php } ?>
@@ -345,10 +358,9 @@ if ($_['cronErrors']) {
<div id="migrationWarning" class="<?php if ($_['encryptionReady']) p('hidden'); ?>">
<?php
if ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === true) {
- p('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. '
- . 'Please enable the "ownCloud Default Encryption Module" and run \'occ encryption:migrate\'');
+ p($l->t('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the "ownCloud Default Encryption Module" and run \'occ encryption:migrate\''));
} elseif ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === false) {
- p('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one.'); ?>
+ p($l->t('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one.')); ?>
<input type="submit" name="startmigration" id="startmigration"
value="<?php p($l->t('Start migration')); ?>"/>
<?php } ?>
@@ -359,6 +371,9 @@ if ($_['cronErrors']) {
<div class="section" id="mail_general_settings">
<form id="mail_general_settings_form" class="mail_settings">
<h2><?php p($l->t('Email server'));?></h2>
+ <a target="_blank" class="icon-info svg"
+ title="<?php p($l->t('Open documentation'));?>"
+ href="<?php p(link_to_docs('admin-email')); ?>"></a>
<p><?php p($l->t('This is used for sending out notifications.')); ?> <span id="mail_settings_msg" class="msg"></span></p>
diff --git a/settings/templates/apps.php b/settings/templates/apps.php
index 31de7fa2318..6bbde71df97 100644
--- a/settings/templates/apps.php
+++ b/settings/templates/apps.php
@@ -31,9 +31,6 @@ script(
<?php if(OC_Config::getValue('appstoreenabled', true) === true): ?>
<li>
- <a class="app-external" target="_blank" href="https://apps.owncloud.com/?xsortmode=high"><?php p($l->t('More apps'));?> …</a>
- </li>
- <li>
<a class="app-external" target="_blank" href="https://owncloud.org/dev"><?php p($l->t('Developer documentation'));?> …</a>
</li>
<?php endif; ?>
@@ -44,10 +41,7 @@ script(
<div class="section apps-experimental">
<h2><?php p($l->t('Experimental applications ahead')) ?></h2>
<p>
- <?php p($l->t('Experimental apps are not checked for security ' .
- 'issues, new or known to be unstable and under heavy ' .
- 'development. Installing them can cause data loss or security ' .
- 'breaches.')) ?>
+ <?php p($l->t('Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches.')) ?>
</p>
</div>
{{/if}}
@@ -57,7 +51,13 @@ script(
<div class="app-image{{#if previewAsIcon}} app-image-icon{{/if}} hidden">
</div>
{{/if}}
- <h2 class="app-name"><a href="{{detailpage}}" target="_blank">{{name}}</a></h2>
+ <h2 class="app-name">
+ {{#if detailpage}}
+ <a href="{{detailpage}}" target="_blank">{{name}}</a>
+ {{else}}
+ {{name}}
+ {{/if}}
+ </h2>
<div class="app-version"> {{version}}</div>
{{#if profilepage}}<a href="{{profilepage}}" target="_blank" rel="noreferrer">{{/if}}
<div class="app-author"><?php p($l->t('by')); ?> {{author}}
@@ -143,10 +143,7 @@ script(
<label for="enable-experimental-apps"><?php p($l->t('Enable experimental apps')) ?></label>
<p>
<small>
- <?php p($l->t('Experimental apps are not checked for security ' .
- 'issues, new or known to be unstable and under heavy ' .
- 'development. Installing them can cause data loss or security ' .
- 'breaches.')) ?>
+ <?php p($l->t('Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches.')) ?>
</small>
</p>
</div>
diff --git a/tests/apps.php b/tests/apps.php
index 3e27b81df61..f13a996772f 100644
--- a/tests/apps.php
+++ b/tests/apps.php
@@ -7,6 +7,9 @@
*/
function loadDirectory($path) {
+ if (strpos($path, 'integration')) {
+ return;
+ }
if ($dh = opendir($path)) {
while ($name = readdir($dh)) {
if ($name[0] !== '.') {
diff --git a/tests/core/command/encryption/disabletest.php b/tests/core/command/encryption/disabletest.php
index 48a6539b243..26c814a9c4e 100644
--- a/tests/core/command/encryption/disabletest.php
+++ b/tests/core/command/encryption/disabletest.php
@@ -72,7 +72,7 @@ class DisableTest extends TestCase {
$this->consoleOutput->expects($this->once())
->method('writeln')
- ->with($expectedString);
+ ->with($this->stringContains($expectedString));
if ($isUpdating) {
$this->config->expects($this->once())
diff --git a/tests/core/command/encryption/enabletest.php b/tests/core/command/encryption/enabletest.php
index 217329ca291..377d0e2a528 100644
--- a/tests/core/command/encryption/enabletest.php
+++ b/tests/core/command/encryption/enabletest.php
@@ -29,6 +29,8 @@ class EnableTest extends TestCase {
/** @var \PHPUnit_Framework_MockObject_MockObject */
protected $config;
/** @var \PHPUnit_Framework_MockObject_MockObject */
+ protected $manager;
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
protected $consoleInput;
/** @var \PHPUnit_Framework_MockObject_MockObject */
protected $consoleOutput;
@@ -42,18 +44,25 @@ class EnableTest extends TestCase {
$config = $this->config = $this->getMockBuilder('OCP\IConfig')
->disableOriginalConstructor()
->getMock();
+ $manager = $this->manager = $this->getMockBuilder('OCP\Encryption\IManager')
+ ->disableOriginalConstructor()
+ ->getMock();
$this->consoleInput = $this->getMock('Symfony\Component\Console\Input\InputInterface');
$this->consoleOutput = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
/** @var \OCP\IConfig $config */
- $this->command = new Enable($config);
+ /** @var \OCP\Encryption\IManager $manager */
+ $this->command = new Enable($config, $manager);
}
public function dataEnable() {
return [
- ['no', true, 'Encryption enabled'],
- ['yes', false, 'Encryption is already enabled'],
+ ['no', null, [], true, 'Encryption enabled', 'No encryption module is loaded'],
+ ['yes', null, [], false, 'Encryption is already enabled', 'No encryption module is loaded'],
+ ['no', null, ['OC_TEST_MODULE' => []], true, 'Encryption enabled', 'No default module is set'],
+ ['no', 'OC_NO_MODULE', ['OC_TEST_MODULE' => []], true, 'Encryption enabled', 'The current default module does not exist: OC_NO_MODULE'],
+ ['no', 'OC_TEST_MODULE', ['OC_TEST_MODULE' => []], true, 'Encryption enabled', 'Default module: OC_TEST_MODULE'],
];
}
@@ -61,36 +70,49 @@ class EnableTest extends TestCase {
* @dataProvider dataEnable
*
* @param string $oldStatus
+ * @param string $defaultModule
+ * @param array $availableModules
* @param bool $isUpdating
* @param string $expectedString
+ * @param string $expectedDefaultModuleString
*/
- public function testEnable($oldStatus, $isUpdating, $expectedString) {
- $invoceCount = 0;
- $this->config->expects($this->at($invoceCount))
+ public function testEnable($oldStatus, $defaultModule, $availableModules, $isUpdating, $expectedString, $expectedDefaultModuleString) {
+ $invokeCount = 0;
+ $this->config->expects($this->at($invokeCount))
->method('getAppValue')
->with('core', 'encryption_enabled', $this->anything())
->willReturn($oldStatus);
- $invoceCount++;
+ $invokeCount++;
if ($isUpdating) {
$this->config->expects($this->once())
->method('setAppValue')
->with('core', 'encryption_enabled', 'yes');
- $invoceCount++;
+ $invokeCount++;
}
- $this->config->expects($this->at($invoceCount))
- ->method('getAppValue')
- ->with('core', 'default_encryption_module', $this->anything())
- ->willReturnArgument(2);
+ $this->manager->expects($this->atLeastOnce())
+ ->method('getEncryptionModules')
+ ->willReturn($availableModules);
+
+ if (!empty($availableModules)) {
+ $this->config->expects($this->at($invokeCount))
+ ->method('getAppValue')
+ ->with('core', 'default_encryption_module', $this->anything())
+ ->willReturn($defaultModule);
+ }
$this->consoleOutput->expects($this->at(0))
->method('writeln')
- ->with($expectedString);
+ ->with($this->stringContains($expectedString));
$this->consoleOutput->expects($this->at(1))
->method('writeln')
- ->with($this->stringContains('Default module'));
+ ->with('');
+
+ $this->consoleOutput->expects($this->at(2))
+ ->method('writeln')
+ ->with($this->stringContains($expectedDefaultModuleString));
\Test_Helper::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]);
}
diff --git a/tests/data/app/code-checker/test-equal.php b/tests/data/app/code-checker/test-equal.php
new file mode 100644
index 00000000000..90543ba7258
--- /dev/null
+++ b/tests/data/app/code-checker/test-equal.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Class BadClass - uses equal instead of identical operator
+ */
+class BadClass {
+ public function foo() {
+ if (true == false) {
+ }
+ }
+}
diff --git a/tests/data/app/code-checker/test-identical-operator.php b/tests/data/app/code-checker/test-identical-operator.php
new file mode 100644
index 00000000000..4c7641ede89
--- /dev/null
+++ b/tests/data/app/code-checker/test-identical-operator.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * Class GoodClass - uses identical operator
+ */
+class GoodClass {
+ public function foo() {
+ if (true === false) {
+ }
+ if (true !== false) {
+ }
+ }
+}
diff --git a/tests/data/app/code-checker/test-not-equal.php b/tests/data/app/code-checker/test-not-equal.php
new file mode 100644
index 00000000000..d9a8d1c25c6
--- /dev/null
+++ b/tests/data/app/code-checker/test-not-equal.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * Class BadClass - uses equal instead of identical operator
+ */
+class BadClass {
+ public function foo() {
+ if (true != false) {
+ }
+ }
+}
diff --git a/tests/lib/app/codechecker.php b/tests/lib/app/codechecker.php
index 64403fd0f23..f45ee02d185 100644
--- a/tests/lib/app/codechecker.php
+++ b/tests/lib/app/codechecker.php
@@ -9,12 +9,14 @@
namespace Test\App;
use OC;
+use Test\TestCase;
-class CodeChecker extends \Test\TestCase {
+class CodeChecker extends TestCase {
/**
* @dataProvider providesFilesToCheck
- * @param $expectedErrors
+ * @param $expectedErrorToken
+ * @param $expectedErrorCode
* @param $fileToVerify
*/
public function testFindInvalidUsage($expectedErrorToken, $expectedErrorCode, $fileToVerify) {
@@ -33,6 +35,25 @@ class CodeChecker extends \Test\TestCase {
['OC_App', 1002, 'test-static-call.php'],
['OC_API', 1003, 'test-const.php'],
['OC_AppConfig', 1004, 'test-new.php'],
+ ['==', 1005, 'test-equal.php'],
+ ['!=', 1005, 'test-not-equal.php'],
+ ];
+ }
+
+ /**
+ * @dataProvider validFilesData
+ * @param $fileToVerify
+ */
+ public function testPassValidUsage($fileToVerify) {
+ $checker = new OC\App\CodeChecker();
+ $errors = $checker->analyseFile(OC::$SERVERROOT . "/tests/data/app/code-checker/$fileToVerify");
+
+ $this->assertEquals(0, count($errors));
+ }
+
+ public function validFilesData() {
+ return [
+ ['test-identical-operator.php'],
];
}
}
diff --git a/tests/lib/appconfig.php b/tests/lib/appconfig.php
index ead5b859277..adff45706cc 100644
--- a/tests/lib/appconfig.php
+++ b/tests/lib/appconfig.php
@@ -8,16 +8,25 @@
*/
class Test_Appconfig extends \Test\TestCase {
- public static function setUpBeforeClass() {
- parent::setUpBeforeClass();
+ /** @var \OCP\IAppConfig */
+ protected $appConfig;
- $query = \OC_DB::prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?');
+ /** @var \OCP\IDBConnection */
+ protected $connection;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->connection = \OC::$server->getDatabaseConnection();
+ $this->registerAppConfig(new \OC\AppConfig(\OC::$server->getDatabaseConnection()));
+
+ $query = $this->connection->prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?');
$query->execute(array('testapp'));
$query->execute(array('someapp'));
$query->execute(array('123456'));
$query->execute(array('anotherapp'));
- $query = \OC_DB::prepare('INSERT INTO `*PREFIX*appconfig` VALUES (?, ?, ?)');
+ $query = $this->connection->prepare('INSERT INTO `*PREFIX*appconfig` VALUES (?, ?, ?)');
$query->execute(array('testapp', 'enabled', 'true'));
$query->execute(array('testapp', 'installed_version', '1.2.3'));
@@ -35,17 +44,41 @@ class Test_Appconfig extends \Test\TestCase {
$query->execute(array('anotherapp', 'enabled', 'false'));
}
- public static function tearDownAfterClass() {
- $query = \OC_DB::prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?');
+ public function tearDown() {
+ $query = $this->connection->prepare('DELETE FROM `*PREFIX*appconfig` WHERE `appid` = ?');
$query->execute(array('testapp'));
$query->execute(array('someapp'));
$query->execute(array('123456'));
$query->execute(array('anotherapp'));
- parent::tearDownAfterClass();
+ $this->registerAppConfig(new \OC\AppConfig(\OC::$server->getDatabaseConnection()));
+ parent::tearDown();
+ }
+
+ /**
+ * Register an app config object for testing purposes.
+ *
+ * @param \OCP\IAppConfig $appConfig
+ */
+ protected function registerAppConfig($appConfig) {
+ \OC::$server->registerService('AppConfig', function ($c) use ($appConfig) {
+ return $appConfig;
+ });
}
- public function testGetApps() {
+ public function getAppConfigs() {
+ return [
+ ['\OC_Appconfig'],
+ [new \OC\AppConfig(\OC::$server->getDatabaseConnection())],
+ ];
+ }
+
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testGetApps($callable) {
$query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig` ORDER BY `appid`');
$result = $query->execute();
$expected = array();
@@ -53,11 +86,16 @@ class Test_Appconfig extends \Test\TestCase {
$expected[] = $row['appid'];
}
sort($expected);
- $apps = \OC_Appconfig::getApps();
+ $apps = call_user_func([$callable, 'getApps']);
$this->assertEquals($expected, $apps);
}
- public function testGetKeys() {
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testGetKeys($callable) {
$query = \OC_DB::prepare('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?');
$result = $query->execute(array('testapp'));
$expected = array();
@@ -65,44 +103,103 @@ class Test_Appconfig extends \Test\TestCase {
$expected[] = $row["configkey"];
}
sort($expected);
- $keys = \OC_Appconfig::getKeys('testapp');
+ $keys = call_user_func([$callable, 'getKeys'], 'testapp');
$this->assertEquals($expected, $keys);
}
- public function testGetValue() {
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('testapp', 'installed_version'));
- $expected = $result->fetchRow();
- $value = \OC_Appconfig::getValue('testapp', 'installed_version');
- $this->assertEquals($expected['configvalue'], $value);
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testGetValue($callable) {
+ $value = call_user_func([$callable, 'getValue'], 'testapp', 'installed_version');
+ $this->assertConfigKey('testapp', 'installed_version', $value);
- $value = \OC_Appconfig::getValue('testapp', 'nonexistant');
+ $value = call_user_func([$callable, 'getValue'], 'testapp', 'nonexistant');
$this->assertNull($value);
- $value = \OC_Appconfig::getValue('testapp', 'nonexistant', 'default');
+ $value = call_user_func([$callable, 'getValue'], 'testapp', 'nonexistant', 'default');
$this->assertEquals('default', $value);
}
- public function testHasKey() {
- $value = \OC_Appconfig::hasKey('testapp', 'installed_version');
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testHasKey($callable) {
+ $value = call_user_func([$callable, 'hasKey'], 'testapp', 'installed_version');
$this->assertTrue($value);
- $value = \OC_Appconfig::hasKey('nonexistant', 'nonexistant');
+ $value = call_user_func([$callable, 'hasKey'], 'nonexistant', 'nonexistant');
$this->assertFalse($value);
}
- public function testSetValue() {
- \OC_Appconfig::setValue('testapp', 'installed_version', '1.33.7');
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('testapp', 'installed_version'));
- $value = $result->fetchRow();
- $this->assertEquals('1.33.7', $value['configvalue']);
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testSetValue($callable) {
+ call_user_func([$callable, 'setValue'], 'testapp', 'installed_version', '1.33.7');
+ $this->assertConfigKey('testapp', 'installed_version', '1.33.7');
- \OC_Appconfig::setValue('someapp', 'somekey', 'somevalue');
+ call_user_func([$callable, 'setValue'], 'someapp', 'somekey', 'somevalue');
+ $this->assertConfigKey('someapp', 'somekey', 'somevalue');
+ }
+
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testDeleteKey($callable) {
+ call_user_func([$callable, 'deleteKey'], 'testapp', 'deletethis');
$query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?');
- $result = $query->execute(array('someapp', 'somekey'));
- $value = $result->fetchRow();
- $this->assertEquals('somevalue', $value['configvalue']);
+ $query->execute(array('testapp', 'deletethis'));
+ $result = (bool)$query->fetchRow();
+ $this->assertFalse($result);
+ }
+
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testDeleteApp($callable) {
+ call_user_func([$callable, 'deleteApp'], 'someapp');
+ $query = \OC_DB::prepare('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?');
+ $query->execute(array('someapp'));
+ $result = (bool)$query->fetchRow();
+ $this->assertFalse($result);
+ }
+
+ /**
+ * @dataProvider getAppConfigs
+ *
+ * @param mixed $callable
+ */
+ public function testGetValues($callable) {
+ $this->assertFalse(call_user_func([$callable, 'getValues'], 'testapp', 'enabled'));
+
+ $query = \OC_DB::prepare('SELECT `configkey`, `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ?');
+ $query->execute(array('testapp'));
+ $expected = array();
+ while ($row = $query->fetchRow()) {
+ $expected[$row['configkey']] = $row['configvalue'];
+ }
+ $values = call_user_func([$callable, 'getValues'], 'testapp', false);
+ $this->assertEquals($expected, $values);
+
+ $query = \OC_DB::prepare('SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig` WHERE `configkey` = ?');
+ $query->execute(array('enabled'));
+ $expected = array();
+ while ($row = $query->fetchRow()) {
+ $expected[$row['appid']] = $row['configvalue'];
+ }
+ $values = call_user_func([$callable, 'getValues'], false, 'enabled');
+ $this->assertEquals($expected, $values);
}
public function testSetValueUnchanged() {
@@ -118,7 +215,7 @@ class Test_Appconfig extends \Test\TestCase {
.' WHERE `appid` = ?'), $this->equalTo(array('bar')))
->will($this->returnValue($statementMock));
$connectionMock->expects($this->once())
- ->method('insert')
+ ->method('insertIfNotExist')
->with($this->equalTo('*PREFIX*appconfig'),
$this->equalTo(
array(
@@ -126,7 +223,8 @@ class Test_Appconfig extends \Test\TestCase {
'configkey' => 'foo',
'configvalue' => 'v1',
)
- ));
+ ), $this->equalTo(['appid', 'configkey']))
+ ->willReturn(1);
$connectionMock->expects($this->never())
->method('update');
@@ -149,7 +247,7 @@ class Test_Appconfig extends \Test\TestCase {
.' WHERE `appid` = ?'), $this->equalTo(array('bar')))
->will($this->returnValue($statementMock));
$connectionMock->expects($this->once())
- ->method('insert')
+ ->method('insertIfNotExist')
->with($this->equalTo('*PREFIX*appconfig'),
$this->equalTo(
array(
@@ -157,7 +255,8 @@ class Test_Appconfig extends \Test\TestCase {
'configkey' => 'foo',
'configvalue' => 'v1',
)
- ));
+ ), $this->equalTo(['appid', 'configkey']))
+ ->willReturn(1);
$connectionMock->expects($this->once())
->method('update')
->with($this->equalTo('*PREFIX*appconfig'),
@@ -171,41 +270,29 @@ class Test_Appconfig extends \Test\TestCase {
$appconfig->setValue('bar', 'foo', 'v2');
}
- public function testDeleteKey() {
- \OC_Appconfig::deleteKey('testapp', 'deletethis');
- $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?');
- $query->execute(array('testapp', 'deletethis'));
- $result = (bool)$query->fetchRow();
- $this->assertFalse($result);
- }
-
- public function testDeleteApp() {
- \OC_Appconfig::deleteApp('someapp');
- $query = \OC_DB::prepare('SELECT `configkey` FROM `*PREFIX*appconfig` WHERE `appid` = ?');
- $query->execute(array('someapp'));
- $result = (bool)$query->fetchRow();
- $this->assertFalse($result);
- }
+ public function testSettingConfigParallel() {
+ $appConfig1 = new OC\AppConfig(\OC::$server->getDatabaseConnection());
+ $appConfig2 = new OC\AppConfig(\OC::$server->getDatabaseConnection());
+ $appConfig1->getValue('testapp', 'foo', 'v1');
+ $appConfig2->getValue('testapp', 'foo', 'v1');
- public function testGetValues() {
- $this->assertFalse(\OC_Appconfig::getValues('testapp', 'enabled'));
+ $appConfig1->setValue('testapp', 'foo', 'v1');
+ $this->assertConfigKey('testapp', 'foo', 'v1');
- $query = \OC_DB::prepare('SELECT `configkey`, `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ?');
- $query->execute(array('testapp'));
- $expected = array();
- while ($row = $query->fetchRow()) {
- $expected[$row['configkey']] = $row['configvalue'];
- }
- $values = \OC_Appconfig::getValues('testapp', false);
- $this->assertEquals($expected, $values);
+ $appConfig2->setValue('testapp', 'foo', 'v2');
+ $this->assertConfigKey('testapp', 'foo', 'v2');
+ }
- $query = \OC_DB::prepare('SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig` WHERE `configkey` = ?');
- $query->execute(array('enabled'));
- $expected = array();
- while ($row = $query->fetchRow()) {
- $expected[$row['appid']] = $row['configvalue'];
- }
- $values = \OC_Appconfig::getValues(false, 'enabled');
- $this->assertEquals($expected, $values);
+ /**
+ * @param string $app
+ * @param string $key
+ * @param string $expected
+ * @throws \OC\DatabaseException
+ */
+ protected function assertConfigKey($app, $key, $expected) {
+ $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*appconfig` WHERE `appid` = ? AND `configkey` = ?');
+ $result = $query->execute([$app, $key]);
+ $actual = $result->fetchRow();
+ $this->assertEquals($expected, $actual['configvalue']);
}
}
diff --git a/tests/lib/connector/sabre/DummyGetResponsePluginTest.php b/tests/lib/connector/sabre/DummyGetResponsePluginTest.php
new file mode 100644
index 00000000000..fa8f0694625
--- /dev/null
+++ b/tests/lib/connector/sabre/DummyGetResponsePluginTest.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * @author Lukas Reschke <lukas@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\Connector\Sabre;
+
+use OC\Connector\Sabre\DummyGetResponsePlugin;
+use Test\TestCase;
+
+/**
+ * Class DummyGetResponsePluginTest
+ *
+ * @package Test\Connector\Sabre
+ */
+class DummyGetResponsePluginTest extends TestCase {
+ /** @var DummyGetResponsePlugin */
+ private $dummyGetResponsePlugin;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->dummyGetResponsePlugin = new DummyGetResponsePlugin();
+ }
+
+ public function testInitialize() {
+ /** @var \Sabre\DAV\Server $server */
+ $server = $this->getMock('\Sabre\DAV\Server');
+ $server
+ ->expects($this->once())
+ ->method('on')
+ ->with('method:GET', [$this->dummyGetResponsePlugin, 'httpGet'], 200);
+
+ $this->dummyGetResponsePlugin->initialize($server);
+ }
+
+
+ public function testHttpGet() {
+ /** @var \Sabre\HTTP\RequestInterface $request */
+ $request = $this->getMock('\Sabre\HTTP\RequestInterface');
+ /** @var \Sabre\HTTP\ResponseInterface $response */
+ $response = $server = $this->getMock('\Sabre\HTTP\ResponseInterface');
+ $response
+ ->expects($this->once())
+ ->method('setBody');
+
+ $this->assertSame(false, $this->dummyGetResponsePlugin->httpGet($request, $response));
+ }
+}
diff --git a/tests/lib/connector/sabre/copyetagheaderplugintest.php b/tests/lib/connector/sabre/copyetagheaderplugintest.php
index 176f9c8d0ca..6b1b5e96fda 100644
--- a/tests/lib/connector/sabre/copyetagheaderplugintest.php
+++ b/tests/lib/connector/sabre/copyetagheaderplugintest.php
@@ -18,7 +18,7 @@ class CopyEtagPluginTest extends \Test\TestCase {
public function setUp() {
parent::setUp();
$this->server = new \Sabre\DAV\Server();
- $this->plugin = new \OC\Connector\Sabre\CopyEtagHeaderPlugin($this->tree);
+ $this->plugin = new \OC\Connector\Sabre\CopyEtagHeaderPlugin();
$this->plugin->initialize($this->server);
}
diff --git a/tests/lib/connector/sabre/file.php b/tests/lib/connector/sabre/file.php
index ee9c20fd9cb..6602a2df24f 100644
--- a/tests/lib/connector/sabre/file.php
+++ b/tests/lib/connector/sabre/file.php
@@ -8,8 +8,35 @@
namespace Test\Connector\Sabre;
+use Test\HookHelper;
+use OC\Files\Filesystem;
+
class File extends \Test\TestCase {
+ /**
+ * @var string
+ */
+ private $user;
+
+ public function setUp() {
+ parent::setUp();
+
+ \OC_Hook::clear();
+
+ $this->user = $this->getUniqueID('user_');
+ $userManager = \OC::$server->getUserManager();
+ $userManager->createUser($this->user, 'pass');
+
+ $this->loginAsUser($this->user);
+ }
+
+ public function tearDown() {
+ $userManager = \OC::$server->getUserManager();
+ $userManager->get($this->user)->delete();
+
+ parent::tearDown();
+ }
+
private function getStream($string) {
$stream = fopen('php://temp', 'r+');
fwrite($stream, $string);
@@ -23,7 +50,7 @@ class File extends \Test\TestCase {
public function testSimplePutFails() {
// setup
$storage = $this->getMock('\OC\Files\Storage\Local', ['fopen'], [['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]]);
- $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'getRelativePath', 'resolvePath'), array());
+ $view = $this->getMock('\OC\Files\View', array('getRelativePath', 'resolvePath'), array());
$view->expects($this->any())
->method('resolvePath')
->will($this->returnValue(array($storage, '')));
@@ -45,28 +72,21 @@ class File extends \Test\TestCase {
$file->put('test data');
}
- public function testPutSingleFileShare() {
- // setup
- $stream = fopen('php://temp', 'w+');
- $storage = $this->getMock('\OC\Files\Storage\Local', ['fopen'], [['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]]);
- $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'getRelativePath', 'resolvePath'), array());
- $view->expects($this->any())
- ->method('resolvePath')
- ->will($this->returnValue(array($storage, '')));
- $view->expects($this->any())
- ->method('getRelativePath')
- ->will($this->returnValue(''));
- $view->expects($this->any())
- ->method('file_put_contents')
- ->with('')
- ->will($this->returnValue(true));
- $storage->expects($this->once())
- ->method('fopen')
- ->will($this->returnValue($stream));
-
- $info = new \OC\Files\FileInfo('/foo.txt', null, null, array(
- 'permissions' => \OCP\Constants::PERMISSION_ALL
- ), null);
+ private function doPut($path, $viewRoot = null) {
+ $view = \OC\Files\Filesystem::getView();
+ if (!is_null($viewRoot)) {
+ $view = new \OC\Files\View($viewRoot);
+ } else {
+ $viewRoot = '/' . $this->user . '/files';
+ }
+
+ $info = new \OC\Files\FileInfo(
+ $viewRoot . '/' . ltrim($path, '/'),
+ null,
+ null,
+ ['permissions' => \OCP\Constants::PERMISSION_ALL],
+ null
+ );
$file = new \OC\Connector\Sabre\File($view, $info);
@@ -74,16 +94,144 @@ class File extends \Test\TestCase {
}
/**
+ * Test putting a single file
+ */
+ public function testPutSingleFile() {
+ $this->doPut('/foo.txt');
+ }
+
+ /**
+ * Test that putting a file triggers create hooks
+ */
+ public function testPutSingleFileTriggersHooks() {
+ HookHelper::setUpHooks();
+
+ $this->doPut('/foo.txt');
+
+ $this->assertCount(4, HookHelper::$hookCalls);
+ $this->assertHookCall(
+ HookHelper::$hookCalls[0],
+ Filesystem::signal_create,
+ '/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[1],
+ Filesystem::signal_write,
+ '/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[2],
+ Filesystem::signal_post_create,
+ '/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[3],
+ Filesystem::signal_post_write,
+ '/foo.txt'
+ );
+ }
+
+ /**
+ * Test that putting a file triggers update hooks
+ */
+ public function testPutOverwriteFileTriggersHooks() {
+ $view = \OC\Files\Filesystem::getView();
+ $view->file_put_contents('/foo.txt', 'some content that will be replaced');
+
+ HookHelper::setUpHooks();
+
+ $this->doPut('/foo.txt');
+
+ $this->assertCount(4, HookHelper::$hookCalls);
+ $this->assertHookCall(
+ HookHelper::$hookCalls[0],
+ Filesystem::signal_update,
+ '/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[1],
+ Filesystem::signal_write,
+ '/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[2],
+ Filesystem::signal_post_update,
+ '/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[3],
+ Filesystem::signal_post_write,
+ '/foo.txt'
+ );
+ }
+
+ /**
+ * Test that putting a file triggers hooks with the correct path
+ * if the passed view was chrooted (can happen with public webdav
+ * where the root is the share root)
+ */
+ public function testPutSingleFileTriggersHooksDifferentRoot() {
+ $view = \OC\Files\Filesystem::getView();
+ $view->mkdir('noderoot');
+
+ HookHelper::setUpHooks();
+
+ // happens with public webdav where the view root is the share root
+ $this->doPut('/foo.txt', '/' . $this->user . '/files/noderoot');
+
+ $this->assertCount(4, HookHelper::$hookCalls);
+ $this->assertHookCall(
+ HookHelper::$hookCalls[0],
+ Filesystem::signal_create,
+ '/noderoot/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[1],
+ Filesystem::signal_write,
+ '/noderoot/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[2],
+ Filesystem::signal_post_create,
+ '/noderoot/foo.txt'
+ );
+ $this->assertHookCall(
+ HookHelper::$hookCalls[3],
+ Filesystem::signal_post_write,
+ '/noderoot/foo.txt'
+ );
+ }
+
+ public static function cancellingHook($params) {
+ self::$hookCalls[] = array(
+ 'signal' => Filesystem::signal_post_create,
+ 'params' => $params
+ );
+ }
+
+ /**
+ * Test put file with cancelled hook
+ *
+ * @expectedException \Sabre\DAV\Exception
+ */
+ public function testPutSingleFileCancelPreHook() {
+ \OCP\Util::connectHook(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_create,
+ '\Test\HookHelper',
+ 'cancellingCallback'
+ );
+
+ $this->doPut('/foo.txt');
+ }
+
+ /**
* @expectedException \Sabre\DAV\Exception
*/
public function testSimplePutFailsOnRename() {
// setup
$view = $this->getMock('\OC\Files\View',
- array('file_put_contents', 'rename', 'getRelativePath', 'filesize'));
- $view->expects($this->any())
- ->method('file_put_contents')
- ->withAnyParameters()
- ->will($this->returnValue(true));
+ array('rename', 'getRelativePath', 'filesize'));
$view->expects($this->any())
->method('rename')
->withAnyParameters()
@@ -113,11 +261,7 @@ class File extends \Test\TestCase {
*/
public function testSimplePutInvalidChars() {
// setup
- $view = $this->getMock('\OC\Files\View', array('file_put_contents', 'getRelativePath'));
- $view->expects($this->any())
- ->method('file_put_contents')
- ->will($this->returnValue(false));
-
+ $view = $this->getMock('\OC\Files\View', array('getRelativePath'));
$view->expects($this->any())
->method('getRelativePath')
->will($this->returnValue('/*'));
@@ -157,11 +301,7 @@ class File extends \Test\TestCase {
public function testUploadAbort() {
// setup
$view = $this->getMock('\OC\Files\View',
- array('file_put_contents', 'rename', 'getRelativePath', 'filesize'));
- $view->expects($this->any())
- ->method('file_put_contents')
- ->withAnyParameters()
- ->will($this->returnValue(true));
+ array('rename', 'getRelativePath', 'filesize'));
$view->expects($this->any())
->method('rename')
->withAnyParameters()
@@ -248,4 +388,20 @@ class File extends \Test\TestCase {
// action
$file->delete();
}
+
+ /**
+ * Asserts hook call
+ *
+ * @param array $callData hook call data to check
+ * @param string $signal signal name
+ * @param string $hookPath hook path
+ */
+ protected function assertHookCall($callData, $signal, $hookPath) {
+ $this->assertEquals($signal, $callData['signal']);
+ $params = $callData['params'];
+ $this->assertEquals(
+ $hookPath,
+ $params[Filesystem::signal_param_path]
+ );
+ }
}
diff --git a/tests/lib/connector/sabre/quotaplugin.php b/tests/lib/connector/sabre/quotaplugin.php
index 48f8f319ae4..3d9cd9b5da0 100644
--- a/tests/lib/connector/sabre/quotaplugin.php
+++ b/tests/lib/connector/sabre/quotaplugin.php
@@ -92,7 +92,10 @@ class Test_OC_Connector_Sabre_QuotaPlugin extends \Test\TestCase {
private function buildFileViewMock($quota) {
// mock filesysten
$view = $this->getMock('\OC\Files\View', array('free_space'), array(), '', false);
- $view->expects($this->any())->method('free_space')->withAnyParameters()->will($this->returnValue($quota));
+ $view->expects($this->any())
+ ->method('free_space')
+ ->with($this->identicalTo(''))
+ ->will($this->returnValue($quota));
return $view;
}
diff --git a/tests/lib/encryption/updatetest.php b/tests/lib/encryption/updatetest.php
index 790d071aa68..b222bc42d7a 100644
--- a/tests/lib/encryption/updatetest.php
+++ b/tests/lib/encryption/updatetest.php
@@ -68,10 +68,6 @@ class UpdateTest extends TestCase {
$this->encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule')
->disableOriginalConstructor()->getMock();
- $this->encryptionManager->expects($this->once())
- ->method('getEncryptionModule')
- ->willReturn($this->encryptionModule);
-
$this->uid = 'testUser1';
$this->update = new Update(
@@ -93,6 +89,10 @@ class UpdateTest extends TestCase {
*/
public function testUpdate($path, $isDir, $allFiles, $numberOfFiles) {
+ $this->encryptionManager->expects($this->once())
+ ->method('getEncryptionModule')
+ ->willReturn($this->encryptionModule);
+
$this->view->expects($this->once())
->method('is_dir')
->willReturn($isDir);
@@ -126,4 +126,111 @@ class UpdateTest extends TestCase {
);
}
+ /**
+ * @dataProvider dataTestPostRename
+ *
+ * @param string $source
+ * @param string $target
+ * @param boolean $encryptionEnabled
+ */
+ public function testPostRename($source, $target, $encryptionEnabled) {
+
+ $updateMock = $this->getUpdateMock(['update', 'getOwnerPath']);
+
+ $this->encryptionManager->expects($this->once())
+ ->method('isEnabled')
+ ->willReturn($encryptionEnabled);
+
+ if (dirname($source) === dirname($target) || $encryptionEnabled === false) {
+ $updateMock->expects($this->never())->method('getOwnerPath');
+ $updateMock->expects($this->never())->method('update');
+ } else {
+ $updateMock->expects($this->once())
+ ->method('getOwnerPath')
+ ->willReturnCallback(function($path) use ($target) {
+ $this->assertSame(
+ $target,
+ $path,
+ 'update needs to be executed for the target destination');
+ return ['owner', $path];
+
+ });
+ $updateMock->expects($this->once())->method('update');
+ }
+
+ $updateMock->postRename(['oldpath' => $source, 'newpath' => $target]);
+ }
+
+ /**
+ * test data for testPostRename()
+ *
+ * @return array
+ */
+ public function dataTestPostRename() {
+ return array(
+ array('/test.txt', '/testNew.txt', true),
+ array('/test.txt', '/testNew.txt', false),
+ array('/folder/test.txt', '/testNew.txt', true),
+ array('/folder/test.txt', '/testNew.txt', false),
+ array('/folder/test.txt', '/testNew.txt', true),
+ array('/test.txt', '/folder/testNew.txt', false),
+ );
+ }
+
+
+ /**
+ * @dataProvider dataTestPostRestore
+ *
+ * @param boolean $encryptionEnabled
+ */
+ public function testPostRestore($encryptionEnabled) {
+
+ $updateMock = $this->getUpdateMock(['update']);
+
+ $this->encryptionManager->expects($this->once())
+ ->method('isEnabled')
+ ->willReturn($encryptionEnabled);
+
+ if ($encryptionEnabled) {
+ $updateMock->expects($this->once())->method('update');
+
+ } else {
+ $updateMock->expects($this->never())->method('update');
+ }
+
+ $updateMock->postRestore(['filePath' => '/folder/test.txt']);
+ }
+
+ /**
+ * test data for testPostRestore()
+ *
+ * @return array
+ */
+ public function dataTestPostRestore() {
+ return array(
+ array(true),
+ array(false),
+ );
+ }
+
+ /**
+ * create mock of the update method
+ *
+ * @param array$methods methods which should be set
+ * @return \OC\Encryption\Update | \PHPUnit_Framework_MockObject_MockObject
+ */
+ protected function getUpdateMock($methods) {
+ return $this->getMockBuilder('\OC\Encryption\Update')
+ ->setConstructorArgs(
+ [
+ $this->view,
+ $this->util,
+ $this->mountManager,
+ $this->encryptionManager,
+ $this->fileHelper,
+ $this->uid
+ ]
+ )->setMethods($methods)->getMock();
+ }
+
}
diff --git a/tests/lib/encryption/utiltest.php b/tests/lib/encryption/utiltest.php
index 7de57043920..0154fa30f7d 100644
--- a/tests/lib/encryption/utiltest.php
+++ b/tests/lib/encryption/utiltest.php
@@ -135,6 +135,7 @@ class UtilTest extends TestCase {
public function providePathsForTestIsExcluded() {
return array(
+ array('/files_encryption', true),
array('files_encryption/foo.txt', true),
array('test/foo.txt', false),
array('/user1/files_encryption/foo.txt', true),
diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php
index 6fc9b17fad0..361592f6ca1 100644
--- a/tests/lib/files/storage/wrapper/encryption.php
+++ b/tests/lib/files/storage/wrapper/encryption.php
@@ -13,7 +13,7 @@ class Encryption extends \Test\Files\Storage\Storage {
private $sourceStorage;
/**
- * @var \OC\Files\Storage\Wrapper\Encryption
+ * @var \OC\Files\Storage\Wrapper\Encryption | \PHPUnit_Framework_MockObject_MockObject
*/
protected $instance;
@@ -27,7 +27,6 @@ class Encryption extends \Test\Files\Storage\Storage {
*/
private $util;
-
/**
* @var \OC\Encryption\Manager | \PHPUnit_Framework_MockObject_MockObject
*/
@@ -38,12 +37,19 @@ class Encryption extends \Test\Files\Storage\Storage {
*/
private $encryptionModule;
-
/**
* @var \OC\Encryption\Update | \PHPUnit_Framework_MockObject_MockObject
*/
private $update;
+ /**
+ * @var \OC\Files\Cache\Cache | \PHPUnit_Framework_MockObject_MockObject
+ */
+ private $cache;
+
+ /** @var integer dummy unencrypted size */
+ private $dummySize = -1;
+
protected function setUp() {
parent::setUp();
@@ -56,9 +62,6 @@ class Encryption extends \Test\Files\Storage\Storage {
$this->encryptionManager->expects($this->any())
->method('getEncryptionModule')
->willReturn($mockModule);
- $this->encryptionManager->expects($this->any())
- ->method('isEnabled')
- ->willReturn(true);
$config = $this->getMockBuilder('\OCP\IConfig')
->disableOriginalConstructor()
@@ -83,23 +86,51 @@ class Encryption extends \Test\Files\Storage\Storage {
$logger = $this->getMock('\OC\Log');
$this->sourceStorage = new Temporary(array());
+
$this->keyStore = $this->getMockBuilder('\OC\Encryption\Keys\Storage')
->disableOriginalConstructor()->getMock();
+
$this->update = $this->getMockBuilder('\OC\Encryption\Update')
->disableOriginalConstructor()->getMock();
+
$mount = $this->getMockBuilder('\OC\Files\Mount\MountPoint')
->disableOriginalConstructor()
->setMethods(['getOption'])
->getMock();
$mount->expects($this->any())->method('getOption')->willReturn(true);
- $this->instance = new \OC\Files\Storage\Wrapper\Encryption([
- 'storage' => $this->sourceStorage,
- 'root' => 'foo',
- 'mountPoint' => '/',
- 'mount' => $mount
- ],
- $this->encryptionManager, $this->util, $logger, $file, null, $this->keyStore, $this->update
- );
+
+ $this->cache = $this->getMockBuilder('\OC\Files\Cache\Cache')
+ ->disableOriginalConstructor()->getMock();
+ $this->cache->expects($this->any())
+ ->method('get')
+ ->willReturn(['encrypted' => false]);
+
+ $this->instance = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Encryption')
+ ->setConstructorArgs(
+ [
+ [
+ 'storage' => $this->sourceStorage,
+ 'root' => 'foo',
+ 'mountPoint' => '/',
+ 'mount' => $mount
+ ],
+ $this->encryptionManager, $this->util, $logger, $file, null, $this->keyStore, $this->update
+ ]
+ )
+ ->setMethods(['getMetaData', 'getCache', 'getEncryptionModule'])
+ ->getMock();
+
+ $this->instance->expects($this->any())
+ ->method('getMetaData')
+ ->willReturn(['encrypted' => true, 'size' => $this->dummySize]);
+
+ $this->instance->expects($this->any())
+ ->method('getCache')
+ ->willReturn($this->cache);
+
+ $this->instance->expects($this->any())
+ ->method('getEncryptionModule')
+ ->willReturn($mockModule);
}
/**
@@ -108,7 +139,7 @@ class Encryption extends \Test\Files\Storage\Storage {
protected function buildMockModule() {
$this->encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule')
->disableOriginalConstructor()
- ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize'])
+ ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable'])
->getMock();
$this->encryptionModule->expects($this->any())->method('getId')->willReturn('UNIT_TEST_MODULE');
@@ -120,6 +151,7 @@ class Encryption extends \Test\Files\Storage\Storage {
$this->encryptionModule->expects($this->any())->method('update')->willReturn(true);
$this->encryptionModule->expects($this->any())->method('shouldEncrypt')->willReturn(true);
$this->encryptionModule->expects($this->any())->method('getUnencryptedBlockSize')->willReturn(8192);
+ $this->encryptionModule->expects($this->any())->method('isReadable')->willReturn(true);
return $this->encryptionModule;
}
@@ -128,23 +160,26 @@ class Encryption extends \Test\Files\Storage\Storage {
*
* @param string $source
* @param string $target
+ * @param $encryptionEnabled
* @param boolean $renameKeysReturn
- * @param boolean $shouldUpdate
*/
- public function testRename($source, $target, $renameKeysReturn, $shouldUpdate) {
- $this->keyStore
- ->expects($this->once())
- ->method('renameKeys')
- ->willReturn($renameKeysReturn);
- $this->util->expects($this->any())
- ->method('isFile')->willReturn(true);
- if ($shouldUpdate) {
- $this->update->expects($this->once())
- ->method('update');
+ public function testRename($source,
+ $target,
+ $encryptionEnabled,
+ $renameKeysReturn) {
+ if ($encryptionEnabled) {
+ $this->keyStore
+ ->expects($this->once())
+ ->method('renameKeys')
+ ->willReturn($renameKeysReturn);
} else {
- $this->update->expects($this->never())
- ->method('update');
+ $this->keyStore
+ ->expects($this->never())->method('renameKeys');
}
+ $this->util->expects($this->any())
+ ->method('isFile')->willReturn(true);
+ $this->encryptionManager->expects($this->once())
+ ->method('isEnabled')->willReturn($encryptionEnabled);
$this->instance->mkdir($source);
$this->instance->mkdir(dirname($target));
@@ -156,16 +191,33 @@ class Encryption extends \Test\Files\Storage\Storage {
*
* @param string $source
* @param string $target
+ * @param $encryptionEnabled
* @param boolean $copyKeysReturn
* @param boolean $shouldUpdate
*/
- public function testCopyTesting($source, $target, $copyKeysReturn, $shouldUpdate) {
- $this->keyStore
- ->expects($this->once())
- ->method('copyKeys')
- ->willReturn($copyKeysReturn);
+ public function testCopyEncryption($source,
+ $target,
+ $encryptionEnabled,
+ $copyKeysReturn,
+ $shouldUpdate) {
+
+ if ($encryptionEnabled) {
+ $this->keyStore
+ ->expects($this->once())
+ ->method('copyKeys')
+ ->willReturn($copyKeysReturn);
+ $this->cache->expects($this->once())
+ ->method('put')
+ ->with($this->anything(), ['encrypted' => true])
+ ->willReturn(true);
+ } else {
+ $this->cache->expects($this->never())->method('put');
+ $this->keyStore->expects($this->never())->method('copyKeys');
+ }
$this->util->expects($this->any())
->method('isFile')->willReturn(true);
+ $this->encryptionManager->expects($this->once())
+ ->method('isEnabled')->willReturn($encryptionEnabled);
if ($shouldUpdate) {
$this->update->expects($this->once())
->method('update');
@@ -177,13 +229,12 @@ class Encryption extends \Test\Files\Storage\Storage {
$this->instance->mkdir($source);
$this->instance->mkdir(dirname($target));
$this->instance->copy($source, $target);
- }
- /**
- * @dataProvider copyAndMoveProvider
- */
- public function testCopy($source, $target) {
- $this->assertTrue(true, 'Replaced by testCopyTesting()');
+ if ($encryptionEnabled) {
+ $this->assertSame($this->dummySize,
+ $this->instance->filesize($target)
+ );
+ }
}
/**
@@ -193,14 +244,17 @@ class Encryption extends \Test\Files\Storage\Storage {
*/
public function dataTestCopyAndRename() {
return array(
- array('source', 'target', false, false),
- array('source', 'target', true, false),
- array('source', '/subFolder/target', false, false),
- array('source', '/subFolder/target', true, true),
+ array('source', 'target', true, false, false),
+ array('source', 'target', true, true, false),
+ array('source', '/subFolder/target', true, false, false),
+ array('source', '/subFolder/target', true, true, true),
+ array('source', '/subFolder/target', false, true, false),
);
}
public function testIsLocal() {
+ $this->encryptionManager->expects($this->once())
+ ->method('isEnabled')->willReturn(true);
$this->assertFalse($this->instance->isLocal());
}
}
diff --git a/tests/lib/files/stream/encryption.php b/tests/lib/files/stream/encryption.php
index e1cf60c2720..30c6d247236 100644
--- a/tests/lib/files/stream/encryption.php
+++ b/tests/lib/files/stream/encryption.php
@@ -254,13 +254,14 @@ class Encryption extends \Test\TestCase {
protected function buildMockModule() {
$encryptionModule = $this->getMockBuilder('\OCP\Encryption\IEncryptionModule')
->disableOriginalConstructor()
- ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize'])
+ ->setMethods(['getId', 'getDisplayName', 'begin', 'end', 'encrypt', 'decrypt', 'update', 'shouldEncrypt', 'getUnencryptedBlockSize', 'isReadable'])
->getMock();
$encryptionModule->expects($this->any())->method('getId')->willReturn('UNIT_TEST_MODULE');
$encryptionModule->expects($this->any())->method('getDisplayName')->willReturn('Unit test module');
$encryptionModule->expects($this->any())->method('begin')->willReturn([]);
$encryptionModule->expects($this->any())->method('end')->willReturn('');
+ $encryptionModule->expects($this->any())->method('isReadable')->willReturn(true);
$encryptionModule->expects($this->any())->method('encrypt')->willReturnCallback(function($data) {
// simulate different block size by adding some padding to the data
if (isset($data[6125])) {
diff --git a/tests/lib/helper.php b/tests/lib/helper.php
index 53a3e1a0ec8..b7aa185f4e3 100644
--- a/tests/lib/helper.php
+++ b/tests/lib/helper.php
@@ -53,21 +53,22 @@ class Test_Helper extends \Test\TestCase {
}
/**
- * @dataProvider computerFileSizeProvider
+ * @dataProvider providesComputerFileSize
*/
function testComputerFileSize($expected, $input) {
$result = OC_Helper::computerFileSize($input);
$this->assertEquals($expected, $result);
}
- function computerFileSizeProvider(){
- return array(
- array(0.0, "0 B"),
- array(1024.0, "1 kB"),
- array(1395864371.0, '1.3 GB'),
- array(9961472.0, "9.5 MB"),
- array(500041567437.0, "465.7 GB"),
- );
+ function providesComputerFileSize(){
+ return [
+ [0.0, "0 B"],
+ [1024.0, "1 kB"],
+ [1395864371.0, '1.3 GB'],
+ [9961472.0, "9.5 MB"],
+ [500041567437.0, "465.7 GB"],
+ [false, "12 GB etfrhzui"]
+ ];
}
function testGetMimeType() {
@@ -523,6 +524,10 @@ class Test_Helper extends \Test\TestCase {
$property->setAccessible(true);
+ if (!empty($parameters)) {
+ $property->setValue($object, array_pop($parameters));
+ }
+
return $property->getValue($object);
}
diff --git a/tests/lib/hookhelper.php b/tests/lib/hookhelper.php
new file mode 100644
index 00000000000..93411bd068b
--- /dev/null
+++ b/tests/lib/hookhelper.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test;
+
+use OC\Files\Filesystem;
+
+/**
+ * Helper class to register hooks on
+ */
+class HookHelper {
+ public static $hookCalls;
+
+ public static function setUpHooks() {
+ self::clear();
+ \OCP\Util::connectHook(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_create,
+ '\Test\HookHelper',
+ 'createCallback'
+ );
+ \OCP\Util::connectHook(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_update,
+ '\Test\HookHelper',
+ 'updateCallback'
+ );
+ \OCP\Util::connectHook(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_write,
+ '\Test\HookHelper',
+ 'writeCallback'
+ );
+
+ \OCP\Util::connectHook(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_post_create,
+ '\Test\HookHelper',
+ 'postCreateCallback'
+ );
+ \OCP\Util::connectHook(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_post_update,
+ '\Test\HookHelper',
+ 'postUpdateCallback'
+ );
+ \OCP\Util::connectHook(
+ Filesystem::CLASSNAME,
+ Filesystem::signal_post_write,
+ '\Test\HookHelper',
+ 'postWriteCallback'
+ );
+ }
+
+ public static function clear() {
+ self::$hookCalls = [];
+ }
+
+ public static function createCallback($params) {
+ self::$hookCalls[] = array(
+ 'signal' => Filesystem::signal_create,
+ 'params' => $params
+ );
+ }
+
+ public static function updateCallback($params) {
+ self::$hookCalls[] = array(
+ 'signal' => Filesystem::signal_update,
+ 'params' => $params
+ );
+ }
+
+ public static function writeCallback($params) {
+ self::$hookCalls[] = array(
+ 'signal' => Filesystem::signal_write,
+ 'params' => $params
+ );
+ }
+
+ public static function postCreateCallback($params) {
+ self::$hookCalls[] = array(
+ 'signal' => Filesystem::signal_post_create,
+ 'params' => $params
+ );
+ }
+
+ public static function postUpdateCallback($params) {
+ self::$hookCalls[] = array(
+ 'signal' => Filesystem::signal_post_update,
+ 'params' => $params
+ );
+ }
+
+ public static function postWriteCallback($params) {
+ self::$hookCalls[] = array(
+ 'signal' => Filesystem::signal_post_write,
+ 'params' => $params
+ );
+ }
+
+ /**
+ * Callback that sets the run paramter to false
+ */
+ public static function cancellingCallback($params) {
+ $params[Filesystem::signal_param_run] = false;
+ }
+}
diff --git a/tests/lib/lock/lockingprovider.php b/tests/lib/lock/lockingprovider.php
new file mode 100644
index 00000000000..08d879da8bb
--- /dev/null
+++ b/tests/lib/lock/lockingprovider.php
@@ -0,0 +1,137 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\Lock;
+
+use OCP\Lock\ILockingProvider;
+use OCP\Lock\LockedException;
+use Test\TestCase;
+
+abstract class LockingProvider extends TestCase {
+ /**
+ * @var \OCP\Lock\ILockingProvider
+ */
+ protected $instance;
+
+ /**
+ * @return \OCP\Lock\ILockingProvider
+ */
+ abstract protected function getInstance();
+
+ protected function setUp() {
+ parent::setUp();
+ $this->instance = $this->getInstance();
+ }
+
+ public function testExclusiveLock() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->assertFalse($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ }
+
+ public function testSharedLock() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertFalse($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ }
+
+ public function testDoubleSharedLock() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertFalse($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ }
+
+ public function testReleaseSharedLock() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertFalse($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ $this->instance->releaseLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ $this->instance->releaseLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertFalse($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ }
+
+ /**
+ * @expectedException \OCP\Lock\LockedException
+ */
+ public function testDoubleExclusiveLock() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ }
+
+ public function testReleaseExclusiveLock() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->instance->releaseLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ $this->assertFalse($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ }
+
+ /**
+ * @expectedException \OCP\Lock\LockedException
+ */
+ public function testExclusiveLockAfterShared() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ }
+
+ public function testExclusiveLockAfterSharedReleased() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_SHARED));
+ $this->instance->releaseLock('foo', ILockingProvider::LOCK_SHARED);
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ }
+
+
+ /**
+ * @expectedException \OCP\Lock\LockedException
+ */
+ public function testSharedLockAfterExclusive() {
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_EXCLUSIVE);
+ $this->assertTrue($this->instance->isLocked('foo', ILockingProvider::LOCK_EXCLUSIVE));
+ $this->instance->acquireLock('foo', ILockingProvider::LOCK_SHARED);
+ }
+
+ public function testLockedExceptionHasPathForShared() {
+ try {
+ $this->testSharedLockAfterExclusive();
+ $this->fail('Expected locked exception');
+ } catch (LockedException $e) {
+ $this->assertEquals('foo', $e->getPath());
+ }
+ }
+
+ public function testLockedExceptionHasPathForExclusive() {
+ try {
+ $this->testExclusiveLockAfterShared();
+ $this->fail('Expected locked exception');
+ } catch (LockedException $e) {
+ $this->assertEquals('foo', $e->getPath());
+ }
+ }
+}
diff --git a/tests/lib/lock/memcachelockingprovider.php b/tests/lib/lock/memcachelockingprovider.php
new file mode 100644
index 00000000000..40478b22939
--- /dev/null
+++ b/tests/lib/lock/memcachelockingprovider.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\Lock;
+
+use OC\Memcache\ArrayCache;
+
+class MemcacheLockingProvider extends LockingProvider {
+
+ /**
+ * @var \OCP\IMemcache
+ */
+ private $memcache;
+
+ /**
+ * @return \OCP\Lock\ILockingProvider
+ */
+ protected function getInstance() {
+ $this->memcache = new ArrayCache();
+ return new \OC\Lock\MemcacheLockingProvider($this->memcache);
+ }
+
+ public function tearDown() {
+ $this->memcache->clear();
+ parent::tearDown();
+ }
+}
diff --git a/tests/lib/memcache/cache.php b/tests/lib/memcache/cache.php
index e5ceae52fb0..9d977cf0247 100644
--- a/tests/lib/memcache/cache.php
+++ b/tests/lib/memcache/cache.php
@@ -10,6 +10,11 @@
namespace Test\Memcache;
abstract class Cache extends \Test_Cache {
+ /**
+ * @var \OCP\IMemcache cache;
+ */
+ protected $instance;
+
public function testExistsAfterSet() {
$this->assertFalse($this->instance->hasKey('foo'));
$this->instance->set('foo', 'bar');
@@ -56,6 +61,49 @@ abstract class Cache extends \Test_Cache {
$this->assertFalse($this->instance->hasKey('foo'));
}
+ public function testAdd() {
+ $this->assertTrue($this->instance->add('foo', 'bar'));
+ $this->assertEquals('bar', $this->instance->get('foo'));
+ $this->assertFalse($this->instance->add('foo', 'asd'));
+ $this->assertEquals('bar', $this->instance->get('foo'));
+ }
+
+ public function testInc() {
+ $this->assertEquals(1, $this->instance->inc('foo'));
+ $this->assertEquals(1, $this->instance->get('foo'));
+ $this->assertEquals(2, $this->instance->inc('foo'));
+ $this->assertEquals(12, $this->instance->inc('foo', 10));
+
+ $this->instance->set('foo', 'bar');
+ $this->assertFalse($this->instance->inc('foo'));
+ $this->assertEquals('bar', $this->instance->get('foo'));
+ }
+
+ public function testDec() {
+ $this->assertEquals(false, $this->instance->dec('foo'));
+ $this->instance->set('foo', 20);
+ $this->assertEquals(19, $this->instance->dec('foo'));
+ $this->assertEquals(19, $this->instance->get('foo'));
+ $this->assertEquals(9, $this->instance->dec('foo', 10));
+
+ $this->instance->set('foo', 'bar');
+ $this->assertFalse($this->instance->dec('foo'));
+ $this->assertEquals('bar', $this->instance->get('foo'));
+ }
+
+ public function testCasNotChanged() {
+ $this->instance->set('foo', 'bar');
+ $this->assertTrue($this->instance->cas('foo', 'bar', 'asd'));
+ $this->assertEquals('asd', $this->instance->get('foo'));
+ }
+
+ public function testCasChanged() {
+ $this->instance->set('foo', 'bar1');
+ $this->assertFalse($this->instance->cas('foo', 'bar', 'asd'));
+ $this->assertEquals('bar1', $this->instance->get('foo'));
+ }
+
+
protected function tearDown() {
if ($this->instance) {
$this->instance->clear();
diff --git a/tests/lib/memcache/castrait.php b/tests/lib/memcache/castrait.php
new file mode 100644
index 00000000000..17f412bb638
--- /dev/null
+++ b/tests/lib/memcache/castrait.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * @author Robin Appelman <icewind@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\Memcache;
+
+use Test\TestCase;
+
+class CasTrait extends TestCase {
+ /**
+ * @return \OC\Memcache\CasTrait
+ */
+ private function getCache() {
+ $sourceCache = new \OC\Memcache\ArrayCache();
+ $mock = $this->getMockForTrait('\OC\Memcache\CasTrait');
+
+ $mock->expects($this->any())
+ ->method('set')
+ ->will($this->returnCallback(function ($key, $value, $ttl) use ($sourceCache) {
+ return $sourceCache->set($key, $value, $ttl);
+ }));
+
+ $mock->expects($this->any())
+ ->method('get')
+ ->will($this->returnCallback(function ($key) use ($sourceCache) {
+ return $sourceCache->get($key);
+ }));
+
+ $mock->expects($this->any())
+ ->method('add')
+ ->will($this->returnCallback(function ($key, $value, $ttl) use ($sourceCache) {
+ return $sourceCache->add($key, $value, $ttl);
+ }));
+
+ $mock->expects($this->any())
+ ->method('remove')
+ ->will($this->returnCallback(function ($key) use ($sourceCache) {
+ return $sourceCache->remove($key);
+ }));
+ return $mock;
+ }
+
+ public function testCasNotChanged() {
+ $cache = $this->getCache();
+ $cache->set('foo', 'bar');
+ $this->assertTrue($cache->cas('foo', 'bar', 'asd'));
+ $this->assertEquals('asd', $cache->get('foo'));
+ }
+
+ public function testCasChanged() {
+ $cache = $this->getCache();
+ $cache->set('foo', 'bar1');
+ $this->assertFalse($cache->cas('foo', 'bar', 'asd'));
+ $this->assertEquals('bar1', $cache->get('foo'));
+ }
+}
diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php
index abdddfb5584..5909102f797 100644
--- a/tests/lib/share/share.php
+++ b/tests/lib/share/share.php
@@ -501,6 +501,38 @@ class Test_Share extends \Test\TestCase {
}
+ public function testSharingAFolderThatIsSharedWithAGroupOfTheOwner() {
+ OC_User::setUserId($this->user1);
+ $view = new \OC\Files\View('/' . $this->user1 . '/');
+ $view->mkdir('files/test');
+ $view->mkdir('files/test/sub1');
+ $view->mkdir('files/test/sub1/sub2');
+
+ $fileInfo = $view->getFileInfo('files/test/sub1');
+ $fileId = $fileInfo->getId();
+
+ $this->assertTrue(
+ OCP\Share::shareItem('folder', $fileId, OCP\Share::SHARE_TYPE_GROUP, $this->group1, \OCP\Constants::PERMISSION_READ + \OCP\Constants::PERMISSION_CREATE),
+ 'Failed asserting that user 1 successfully shared "test/sub1" with group 1.'
+ );
+
+ $result = OCP\Share::getItemShared('folder', $fileId, Test_Share_Backend::FORMAT_SOURCE);
+ $this->assertNotEmpty($result);
+ $this->assertEquals(\OCP\Constants::PERMISSION_READ + \OCP\Constants::PERMISSION_CREATE, $result['permissions']);
+
+ $fileInfo = $view->getFileInfo('files/test/sub1/sub2');
+ $fileId = $fileInfo->getId();
+
+ $this->assertTrue(
+ OCP\Share::shareItem('folder', $fileId, OCP\Share::SHARE_TYPE_USER, $this->user4, \OCP\Constants::PERMISSION_READ),
+ 'Failed asserting that user 1 successfully shared "test/sub1/sub2" with user 4.'
+ );
+
+ $result = OCP\Share::getItemShared('folder', $fileId, Test_Share_Backend::FORMAT_SOURCE);
+ $this->assertNotEmpty($result);
+ $this->assertEquals(\OCP\Constants::PERMISSION_READ, $result['permissions']);
+ }
+
protected function shareUserOneTestFileWithGroupOne() {
OC_User::setUserId($this->user1);
$this->assertTrue(
@@ -766,6 +798,7 @@ class Test_Share extends \Test\TestCase {
/**
* @param boolean|string $token
+ * @return array
*/
protected function getShareByValidToken($token) {
$row = OCP\Share::getShareByToken($token);
diff --git a/tests/lib/testcase.php b/tests/lib/testcase.php
index e66dfb13353..76d5662da9d 100644
--- a/tests/lib/testcase.php
+++ b/tests/lib/testcase.php
@@ -182,6 +182,8 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
static protected function logout() {
\OC_Util::tearDownFS();
\OC_User::setUserId('');
+ // needed for fully logout
+ \OC::$server->getUserSession()->setUser(null);
}
/**
diff --git a/tests/settings/controller/userscontrollertest.php b/tests/settings/controller/userscontrollertest.php
index 25c935bef58..e70b235f603 100644
--- a/tests/settings/controller/userscontrollertest.php
+++ b/tests/settings/controller/userscontrollertest.php
@@ -1303,14 +1303,14 @@ class UsersControllerTest extends \Test\TestCase {
->expects($this->once())
->method('isEnabledForUser')
->with(
- $this->equalTo('files_encryption')
+ $this->equalTo('encryption')
)
->will($this->returnValue(true));
$this->container['Config']
->expects($this->once())
->method('getAppValue')
->with(
- $this->equalTo('files_encryption'),
+ $this->equalTo('encryption'),
$this->equalTo('recoveryAdminEnabled'),
$this->anything()
)
@@ -1321,8 +1321,8 @@ class UsersControllerTest extends \Test\TestCase {
->method('getUserValue')
->with(
$this->anything(),
- $this->equalTo('files_encryption'),
- $this->equalTo('recovery_enabled'),
+ $this->equalTo('encryption'),
+ $this->equalTo('recoveryEnabled'),
$this->anything()
)
->will($this->returnValue('1'));
@@ -1339,7 +1339,7 @@ class UsersControllerTest extends \Test\TestCase {
$this->container['OCP\\App\\IAppManager']
->method('isEnabledForUser')
->with(
- $this->equalTo('files_encryption')
+ $this->equalTo('encryption')
)
->will($this->returnValue(true));
@@ -1358,14 +1358,14 @@ class UsersControllerTest extends \Test\TestCase {
->expects($this->once())
->method('isEnabledForUser')
->with(
- $this->equalTo('files_encryption')
+ $this->equalTo('encryption')
)
->will($this->returnValue(true));
$this->container['Config']
->expects($this->once())
->method('getAppValue')
->with(
- $this->equalTo('files_encryption'),
+ $this->equalTo('encryption'),
$this->equalTo('recoveryAdminEnabled'),
$this->anything()
)
@@ -1376,8 +1376,8 @@ class UsersControllerTest extends \Test\TestCase {
->method('getUserValue')
->with(
$this->anything(),
- $this->equalTo('files_encryption'),
- $this->equalTo('recovery_enabled'),
+ $this->equalTo('encryption'),
+ $this->equalTo('recoveryEnabled'),
$this->anything()
)
->will($this->returnValue('0'));
@@ -1388,4 +1388,74 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertEquals($expectedResult, $result);
}
+ public function setEmailAddressData() {
+ return [
+ ['', true, false, true],
+ ['foobar@localhost', true, true, false],
+ ['foo@bar@localhost', false, false, false],
+ ];
+ }
+
+ /**
+ * @dataProvider setEmailAddressData
+ *
+ * @param string $mailAddress
+ * @param bool $isValid
+ * @param bool $expectsUpdate
+ * @param bool $expectsDelete
+ */
+ public function testSetEmailAddress($mailAddress, $isValid, $expectsUpdate, $expectsDelete) {
+ $this->container['IsAdmin'] = true;
+
+ $user = $this->getMockBuilder('\OC\User\User')
+ ->disableOriginalConstructor()->getMock();
+ $user
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('foo'));
+ $this->container['UserSession']
+ ->expects($this->atLeastOnce())
+ ->method('getUser')
+ ->will($this->returnValue($user));
+ $this->container['Mailer']
+ ->expects($this->any())
+ ->method('validateMailAddress')
+ ->with($mailAddress)
+ ->willReturn($isValid);
+
+ if ($isValid) {
+ $user->expects($this->atLeastOnce())
+ ->method('canChangeDisplayName')
+ ->willReturn(true);
+
+ $this->container['UserManager']
+ ->expects($this->atLeastOnce())
+ ->method('get')
+ ->with('foo')
+ ->will($this->returnValue($user));
+ }
+
+ $this->container['Config']
+ ->expects(($expectsUpdate) ? $this->once() : $this->never())
+ ->method('setUserValue')
+ ->with(
+ $this->equalTo($user->getUID()),
+ $this->equalTo('settings'),
+ $this->equalTo('email'),
+ $this->equalTo($mailAddress)
+
+ );
+ $this->container['Config']
+ ->expects(($expectsDelete) ? $this->once() : $this->never())
+ ->method('deleteUserValue')
+ ->with(
+ $this->equalTo($user->getUID()),
+ $this->equalTo('settings'),
+ $this->equalTo('email')
+
+ );
+
+ $this->container['UsersController']->setMailAddress($user->getUID(), $mailAddress);
+ }
+
}
diff --git a/version.php b/version.php
index 9b61256f751..26744e47b85 100644
--- a/version.php
+++ b/version.php
@@ -23,10 +23,10 @@
// We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
// when updating major/minor version number.
-$OC_Version=array(8, 1, 0, 3);
+$OC_Version=array(8, 1, 0, 6);
// The human readable string
-$OC_VersionString='8.1 alpha 2';
+$OC_VersionString='8.1 beta 2';
// The ownCloud channel
$OC_Channel='git';