Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/dashboard/css/dashboard.css48
-rw-r--r--apps/dashboard/css/dashboard.css.map1
-rw-r--r--apps/dashboard/src/DashboardApp.vue6
-rw-r--r--apps/dashboard/src/components/BackgroundSettings.vue2
-rw-r--r--apps/dav/l10n/ja.js8
-rw-r--r--apps/dav/l10n/ja.json8
-rw-r--r--apps/dav/lib/CardDAV/CardDavBackend.php61
-rw-r--r--apps/dav/lib/CardDAV/SyncService.php4
-rw-r--r--apps/dav/lib/HookManager.php12
-rw-r--r--apps/encryption/css/settings-personal.css16
-rw-r--r--apps/encryption/css/settings-personal.css.map1
-rw-r--r--apps/encryption/css/settings-personal.scss12
-rw-r--r--apps/encryption/lib/Crypto/Crypt.php47
-rw-r--r--apps/encryption/lib/Crypto/Encryption.php50
-rw-r--r--apps/encryption/tests/Crypto/CryptTest.php23
-rw-r--r--apps/federatedfilesharing/css/settings-admin.css5
-rw-r--r--apps/federatedfilesharing/css/settings-admin.css.map1
-rw-r--r--apps/federatedfilesharing/css/settings-personal.css107
-rw-r--r--apps/federatedfilesharing/css/settings-personal.css.map1
-rw-r--r--apps/federatedfilesharing/css/settings-personal.scss9
-rw-r--r--apps/files/css/detailsView.css133
-rw-r--r--apps/files/css/detailsView.css.map1
-rw-r--r--apps/files/css/files.css1307
-rw-r--r--apps/files/css/files.css.map1
-rw-r--r--apps/files/css/files.scss45
-rw-r--r--apps/files/css/merged.css1841
-rw-r--r--apps/files/css/merged.css.map1
-rw-r--r--apps/files/css/mobile.css112
-rw-r--r--apps/files/css/mobile.css.map1
-rw-r--r--apps/files/css/mobile.scss4
-rw-r--r--apps/files/css/upload.css264
-rw-r--r--apps/files/css/upload.css.map1
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/l10n/af.js4
-rw-r--r--apps/files/l10n/af.json4
-rw-r--r--apps/files/l10n/ar.js4
-rw-r--r--apps/files/l10n/ar.json4
-rw-r--r--apps/files/l10n/ast.js4
-rw-r--r--apps/files/l10n/ast.json4
-rw-r--r--apps/files/l10n/bg.js4
-rw-r--r--apps/files/l10n/bg.json4
-rw-r--r--apps/files/l10n/br.js4
-rw-r--r--apps/files/l10n/br.json4
-rw-r--r--apps/files/l10n/ca.js4
-rw-r--r--apps/files/l10n/ca.json4
-rw-r--r--apps/files/l10n/cs.js4
-rw-r--r--apps/files/l10n/cs.json4
-rw-r--r--apps/files/l10n/da.js4
-rw-r--r--apps/files/l10n/da.json4
-rw-r--r--apps/files/l10n/de.js4
-rw-r--r--apps/files/l10n/de.json4
-rw-r--r--apps/files/l10n/de_DE.js4
-rw-r--r--apps/files/l10n/de_DE.json4
-rw-r--r--apps/files/l10n/el.js4
-rw-r--r--apps/files/l10n/el.json4
-rw-r--r--apps/files/l10n/en_GB.js4
-rw-r--r--apps/files/l10n/en_GB.json4
-rw-r--r--apps/files/l10n/eo.js4
-rw-r--r--apps/files/l10n/eo.json4
-rw-r--r--apps/files/l10n/es.js4
-rw-r--r--apps/files/l10n/es.json4
-rw-r--r--apps/files/l10n/es_419.js4
-rw-r--r--apps/files/l10n/es_419.json4
-rw-r--r--apps/files/l10n/es_AR.js4
-rw-r--r--apps/files/l10n/es_AR.json4
-rw-r--r--apps/files/l10n/es_CL.js4
-rw-r--r--apps/files/l10n/es_CL.json4
-rw-r--r--apps/files/l10n/es_CO.js4
-rw-r--r--apps/files/l10n/es_CO.json4
-rw-r--r--apps/files/l10n/es_CR.js4
-rw-r--r--apps/files/l10n/es_CR.json4
-rw-r--r--apps/files/l10n/es_DO.js4
-rw-r--r--apps/files/l10n/es_DO.json4
-rw-r--r--apps/files/l10n/es_EC.js4
-rw-r--r--apps/files/l10n/es_EC.json4
-rw-r--r--apps/files/l10n/es_GT.js4
-rw-r--r--apps/files/l10n/es_GT.json4
-rw-r--r--apps/files/l10n/es_HN.js4
-rw-r--r--apps/files/l10n/es_HN.json4
-rw-r--r--apps/files/l10n/es_MX.js4
-rw-r--r--apps/files/l10n/es_MX.json4
-rw-r--r--apps/files/l10n/es_NI.js4
-rw-r--r--apps/files/l10n/es_NI.json4
-rw-r--r--apps/files/l10n/es_PA.js4
-rw-r--r--apps/files/l10n/es_PA.json4
-rw-r--r--apps/files/l10n/es_PE.js4
-rw-r--r--apps/files/l10n/es_PE.json4
-rw-r--r--apps/files/l10n/es_PR.js4
-rw-r--r--apps/files/l10n/es_PR.json4
-rw-r--r--apps/files/l10n/es_PY.js4
-rw-r--r--apps/files/l10n/es_PY.json4
-rw-r--r--apps/files/l10n/es_SV.js4
-rw-r--r--apps/files/l10n/es_SV.json4
-rw-r--r--apps/files/l10n/es_UY.js4
-rw-r--r--apps/files/l10n/es_UY.json4
-rw-r--r--apps/files/l10n/et_EE.js4
-rw-r--r--apps/files/l10n/et_EE.json4
-rw-r--r--apps/files/l10n/eu.js4
-rw-r--r--apps/files/l10n/eu.json4
-rw-r--r--apps/files/l10n/fa.js4
-rw-r--r--apps/files/l10n/fa.json4
-rw-r--r--apps/files/l10n/fi.js11
-rw-r--r--apps/files/l10n/fi.json11
-rw-r--r--apps/files/l10n/fr.js4
-rw-r--r--apps/files/l10n/fr.json4
-rw-r--r--apps/files/l10n/gl.js4
-rw-r--r--apps/files/l10n/gl.json4
-rw-r--r--apps/files/l10n/he.js4
-rw-r--r--apps/files/l10n/he.json4
-rw-r--r--apps/files/l10n/hr.js4
-rw-r--r--apps/files/l10n/hr.json4
-rw-r--r--apps/files/l10n/hu.js4
-rw-r--r--apps/files/l10n/hu.json4
-rw-r--r--apps/files/l10n/ia.js4
-rw-r--r--apps/files/l10n/ia.json4
-rw-r--r--apps/files/l10n/id.js4
-rw-r--r--apps/files/l10n/id.json4
-rw-r--r--apps/files/l10n/is.js4
-rw-r--r--apps/files/l10n/is.json4
-rw-r--r--apps/files/l10n/it.js4
-rw-r--r--apps/files/l10n/it.json4
-rw-r--r--apps/files/l10n/ja.js4
-rw-r--r--apps/files/l10n/ja.json4
-rw-r--r--apps/files/l10n/ka_GE.js4
-rw-r--r--apps/files/l10n/ka_GE.json4
-rw-r--r--apps/files/l10n/ko.js4
-rw-r--r--apps/files/l10n/ko.json4
-rw-r--r--apps/files/l10n/lb.js4
-rw-r--r--apps/files/l10n/lb.json4
-rw-r--r--apps/files/l10n/lt_LT.js4
-rw-r--r--apps/files/l10n/lt_LT.json4
-rw-r--r--apps/files/l10n/lv.js4
-rw-r--r--apps/files/l10n/lv.json4
-rw-r--r--apps/files/l10n/mk.js4
-rw-r--r--apps/files/l10n/mk.json4
-rw-r--r--apps/files/l10n/mn.js4
-rw-r--r--apps/files/l10n/mn.json4
-rw-r--r--apps/files/l10n/nb.js4
-rw-r--r--apps/files/l10n/nb.json4
-rw-r--r--apps/files/l10n/nl.js32
-rw-r--r--apps/files/l10n/nl.json32
-rw-r--r--apps/files/l10n/pl.js4
-rw-r--r--apps/files/l10n/pl.json4
-rw-r--r--apps/files/l10n/ps.js4
-rw-r--r--apps/files/l10n/ps.json4
-rw-r--r--apps/files/l10n/pt_BR.js4
-rw-r--r--apps/files/l10n/pt_BR.json4
-rw-r--r--apps/files/l10n/pt_PT.js4
-rw-r--r--apps/files/l10n/pt_PT.json4
-rw-r--r--apps/files/l10n/ro.js4
-rw-r--r--apps/files/l10n/ro.json4
-rw-r--r--apps/files/l10n/ru.js4
-rw-r--r--apps/files/l10n/ru.json4
-rw-r--r--apps/files/l10n/sc.js4
-rw-r--r--apps/files/l10n/sc.json4
-rw-r--r--apps/files/l10n/sk.js4
-rw-r--r--apps/files/l10n/sk.json4
-rw-r--r--apps/files/l10n/sl.js4
-rw-r--r--apps/files/l10n/sl.json4
-rw-r--r--apps/files/l10n/sq.js4
-rw-r--r--apps/files/l10n/sq.json4
-rw-r--r--apps/files/l10n/sr.js4
-rw-r--r--apps/files/l10n/sr.json4
-rw-r--r--apps/files/l10n/sv.js4
-rw-r--r--apps/files/l10n/sv.json4
-rw-r--r--apps/files/l10n/th.js4
-rw-r--r--apps/files/l10n/th.json4
-rw-r--r--apps/files/l10n/tr.js4
-rw-r--r--apps/files/l10n/tr.json4
-rw-r--r--apps/files/l10n/uk.js5
-rw-r--r--apps/files/l10n/uk.json5
-rw-r--r--apps/files/l10n/vi.js4
-rw-r--r--apps/files/l10n/vi.json4
-rw-r--r--apps/files/l10n/zh_CN.js4
-rw-r--r--apps/files/l10n/zh_CN.json4
-rw-r--r--apps/files/l10n/zh_HK.js4
-rw-r--r--apps/files/l10n/zh_HK.json4
-rw-r--r--apps/files/l10n/zh_TW.js4
-rw-r--r--apps/files/l10n/zh_TW.json4
-rw-r--r--apps/files/lib/App.php38
-rw-r--r--apps/files/lib/Collaboration/Resources/Listener.php5
-rw-r--r--apps/files/lib/Controller/TransferOwnershipController.php3
-rw-r--r--apps/files/list.php9
-rw-r--r--apps/files/templates/index.php2
-rw-r--r--apps/files/templates/list.php9
-rw-r--r--apps/files/templates/recentlist.php8
-rw-r--r--apps/files/templates/simplelist.php8
-rw-r--r--apps/files/tests/js/filelistSpec.js8
-rw-r--r--apps/files_external/css/settings.css177
-rw-r--r--apps/files_external/css/settings.css.map1
-rw-r--r--apps/files_external/css/settings.scss2
-rw-r--r--apps/files_external/lib/Lib/Storage/AmazonS3.php33
-rw-r--r--apps/files_external/lib/Lib/Storage/SMB.php8
-rw-r--r--apps/files_external/lib/Listener/StorePasswordListener.php28
-rw-r--r--apps/files_sharing/css/icons.css94
-rw-r--r--apps/files_sharing/css/icons.css.map1
-rw-r--r--apps/files_sharing/css/icons.scss8
-rw-r--r--apps/files_sharing/css/mobile.css86
-rw-r--r--apps/files_sharing/css/mobile.css.map1
-rw-r--r--apps/files_sharing/css/mobile.scss4
-rw-r--r--apps/files_sharing/css/public.css237
-rw-r--r--apps/files_sharing/css/public.css.map1
-rw-r--r--apps/files_sharing/css/public.scss6
-rw-r--r--apps/files_sharing/css/publicView.css320
-rw-r--r--apps/files_sharing/css/publicView.css.map1
-rw-r--r--apps/files_sharing/l10n/fi.js1
-rw-r--r--apps/files_sharing/l10n/fi.json1
-rw-r--r--apps/files_sharing/l10n/sk.js2
-rw-r--r--apps/files_sharing/l10n/sk.json2
-rw-r--r--apps/files_sharing/lib/MountProvider.php1
-rw-r--r--apps/files_sharing/lib/SharedMount.php1
-rw-r--r--apps/files_sharing/src/components/SharingInput.vue2
-rw-r--r--apps/files_trashbin/l10n/ja.js6
-rw-r--r--apps/files_trashbin/l10n/ja.json6
-rw-r--r--apps/files_trashbin/lib/Trashbin.php2
-rw-r--r--apps/oauth2/lib/Db/Client.php4
-rw-r--r--apps/settings/css/settings.css1607
-rw-r--r--apps/settings/css/settings.css.map1
-rw-r--r--apps/settings/css/settings.scss25
-rw-r--r--apps/settings/l10n/bg.js2
-rw-r--r--apps/settings/l10n/bg.json2
-rw-r--r--apps/settings/l10n/cs.js3
-rw-r--r--apps/settings/l10n/cs.json3
-rw-r--r--apps/settings/l10n/de.js3
-rw-r--r--apps/settings/l10n/de.json3
-rw-r--r--apps/settings/l10n/de_DE.js3
-rw-r--r--apps/settings/l10n/de_DE.json3
-rw-r--r--apps/settings/l10n/hu.js3
-rw-r--r--apps/settings/l10n/hu.json3
-rw-r--r--apps/settings/l10n/id.js23
-rw-r--r--apps/settings/l10n/id.json23
-rw-r--r--apps/settings/l10n/pl.js3
-rw-r--r--apps/settings/l10n/pl.json3
-rw-r--r--apps/settings/l10n/pt_BR.js9
-rw-r--r--apps/settings/l10n/pt_BR.json9
-rw-r--r--apps/settings/l10n/sk.js2
-rw-r--r--apps/settings/l10n/sk.json2
-rw-r--r--apps/settings/l10n/tr.js3
-rw-r--r--apps/settings/l10n/tr.json3
-rw-r--r--apps/settings/l10n/zh_HK.js3
-rw-r--r--apps/settings/l10n/zh_HK.json3
-rw-r--r--apps/settings/l10n/zh_TW.js3
-rw-r--r--apps/settings/l10n/zh_TW.json3
-rw-r--r--apps/settings/lib/Controller/ChangePasswordController.php5
-rw-r--r--apps/settings/lib/Settings/Admin/Sharing.php1
-rw-r--r--apps/settings/lib/SetupChecks/SupportedDatabase.php6
-rw-r--r--apps/settings/src/admin.js1
-rw-r--r--apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue2
-rw-r--r--apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue2
-rw-r--r--apps/settings/templates/settings/admin/sharing.php18
-rw-r--r--apps/settings/tests/Settings/Admin/SharingTest.php4
-rw-r--r--apps/sharebymail/l10n/es.js2
-rw-r--r--apps/sharebymail/l10n/es.json2
-rw-r--r--apps/testing/lib/Locking/FakeDBLockingProvider.php17
-rw-r--r--apps/theming/css/default.css3
-rw-r--r--apps/theming/css/settings-admin.css132
-rw-r--r--apps/theming/css/settings-admin.css.map1
-rw-r--r--apps/theming/css/theming.css17
-rw-r--r--apps/theming/css/theming.scss285
-rw-r--r--apps/theming/l10n/hu.js1
-rw-r--r--apps/theming/l10n/hu.json1
-rw-r--r--apps/theming/l10n/pl.js1
-rw-r--r--apps/theming/l10n/pl.json1
-rw-r--r--apps/theming/l10n/pt_BR.js12
-rw-r--r--apps/theming/l10n/pt_BR.json12
-rw-r--r--apps/theming/l10n/ru.js3
-rw-r--r--apps/theming/l10n/ru.json3
-rw-r--r--apps/theming/l10n/sk.js5
-rw-r--r--apps/theming/l10n/sk.json5
-rw-r--r--apps/theming/l10n/tr.js1
-rw-r--r--apps/theming/l10n/tr.json1
-rw-r--r--apps/theming/lib/Themes/DefaultTheme.php7
-rw-r--r--apps/theming/src/UserThemes.vue15
-rw-r--r--apps/updatenotification/src/components/UpdateNotification.vue2
-rw-r--r--apps/user_ldap/l10n/bg.js4
-rw-r--r--apps/user_ldap/l10n/bg.json4
-rw-r--r--apps/user_ldap/l10n/cs.js4
-rw-r--r--apps/user_ldap/l10n/cs.json4
-rw-r--r--apps/user_ldap/l10n/de.js4
-rw-r--r--apps/user_ldap/l10n/de.json4
-rw-r--r--apps/user_ldap/l10n/de_DE.js4
-rw-r--r--apps/user_ldap/l10n/de_DE.json4
-rw-r--r--apps/user_ldap/l10n/el.js4
-rw-r--r--apps/user_ldap/l10n/el.json4
-rw-r--r--apps/user_ldap/l10n/es.js4
-rw-r--r--apps/user_ldap/l10n/es.json4
-rw-r--r--apps/user_ldap/l10n/eu.js4
-rw-r--r--apps/user_ldap/l10n/eu.json4
-rw-r--r--apps/user_ldap/l10n/fr.js4
-rw-r--r--apps/user_ldap/l10n/fr.json4
-rw-r--r--apps/user_ldap/l10n/hr.js4
-rw-r--r--apps/user_ldap/l10n/hr.json4
-rw-r--r--apps/user_ldap/l10n/hu.js4
-rw-r--r--apps/user_ldap/l10n/hu.json4
-rw-r--r--apps/user_ldap/l10n/it.js4
-rw-r--r--apps/user_ldap/l10n/it.json4
-rw-r--r--apps/user_ldap/l10n/ja.js4
-rw-r--r--apps/user_ldap/l10n/ja.json4
-rw-r--r--apps/user_ldap/l10n/nl.js4
-rw-r--r--apps/user_ldap/l10n/nl.json4
-rw-r--r--apps/user_ldap/l10n/pl.js4
-rw-r--r--apps/user_ldap/l10n/pl.json4
-rw-r--r--apps/user_ldap/l10n/pt_BR.js4
-rw-r--r--apps/user_ldap/l10n/pt_BR.json4
-rw-r--r--apps/user_ldap/l10n/ru.js4
-rw-r--r--apps/user_ldap/l10n/ru.json4
-rw-r--r--apps/user_ldap/l10n/sc.js4
-rw-r--r--apps/user_ldap/l10n/sc.json4
-rw-r--r--apps/user_ldap/l10n/sk.js4
-rw-r--r--apps/user_ldap/l10n/sk.json4
-rw-r--r--apps/user_ldap/l10n/sl.js4
-rw-r--r--apps/user_ldap/l10n/sl.json4
-rw-r--r--apps/user_ldap/l10n/tr.js4
-rw-r--r--apps/user_ldap/l10n/tr.json4
-rw-r--r--apps/user_ldap/l10n/zh_CN.js4
-rw-r--r--apps/user_ldap/l10n/zh_CN.json4
-rw-r--r--apps/user_ldap/l10n/zh_HK.js4
-rw-r--r--apps/user_ldap/l10n/zh_HK.json4
-rw-r--r--apps/user_ldap/l10n/zh_TW.js4
-rw-r--r--apps/user_ldap/l10n/zh_TW.json4
-rw-r--r--apps/user_ldap/lib/Connection.php11
-rw-r--r--apps/user_ldap/lib/Group_LDAP.php12
-rw-r--r--apps/user_ldap/lib/Helper.php13
-rw-r--r--apps/user_ldap/lib/User/Manager.php51
-rw-r--r--apps/user_ldap/templates/settings.php2
-rw-r--r--apps/user_status/css/user-status-menu.css101
-rw-r--r--apps/user_status/css/user-status-menu.css.map1
-rw-r--r--apps/user_status/css/user-status-menu.scss6
-rw-r--r--apps/user_status/src/UserStatus.vue7
-rw-r--r--apps/weather_status/l10n/eu.js16
-rw-r--r--apps/weather_status/l10n/eu.json16
-rw-r--r--apps/weather_status/l10n/ro.js37
-rw-r--r--apps/weather_status/l10n/ro.json35
-rw-r--r--apps/workflowengine/l10n/de_DE.js2
-rw-r--r--apps/workflowengine/l10n/de_DE.json2
-rw-r--r--apps/workflowengine/lib/Manager.php9
-rw-r--r--apps/workflowengine/src/components/Event.vue2
-rw-r--r--apps/workflowengine/src/components/Operation.vue13
-rw-r--r--apps/workflowengine/src/components/Rule.vue69
-rw-r--r--apps/workflowengine/src/styles/operation.scss1
340 files changed, 7724 insertions, 1106 deletions
diff --git a/apps/dashboard/css/dashboard.css b/apps/dashboard/css/dashboard.css
new file mode 100644
index 00000000000..ea01e0f771b
--- /dev/null
+++ b/apps/dashboard/css/dashboard.css
@@ -0,0 +1,48 @@
+.skip-navigation:not(.skip-content) {
+ display: none;
+}
+
+.skip-navigation.skip-content {
+ left: 3px;
+}
+
+#header {
+ background: transparent !important;
+ --color-header: rgba(24, 24, 24, 1);
+}
+#body-user.dashboard--dark #header {
+ --color-header: rgba(255, 255, 255, 1);
+}
+#header:before {
+ content: " ";
+ display: block;
+ position: absolute;
+ background-image: linear-gradient(180deg, var(--color-header) 0%, transparent 100%);
+ width: 100%;
+ height: 70px;
+ top: 0;
+ margin-top: -70px;
+ transition: margin-top var(--animation-slow);
+}
+#body-user.dashboard--scrolled #header:before {
+ margin-top: 0;
+}
+#body-user.theme--highcontrast #header {
+ background-color: var(--color-header) !important;
+}
+#body-user.theme--highcontrast #header:before {
+ display: none;
+}
+
+#content {
+ padding-top: 0 !important;
+}
+
+#appmenu li a.active::before,
+#appmenu li:hover a::before,
+#appmenu li:hover a.active::before,
+#appmenu li a:focus::before {
+ display: none !important;
+}
+
+/*# sourceMappingURL=dashboard.css.map */
diff --git a/apps/dashboard/css/dashboard.css.map b/apps/dashboard/css/dashboard.css.map
new file mode 100644
index 00000000000..15b99dd3883
--- /dev/null
+++ b/apps/dashboard/css/dashboard.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["dashboard.scss"],"names":[],"mappings":"AACA;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAKF;EACC;;AAEA;EACC;;;AAMH;EACC;;;AAID;AAAA;AAAA;AAAA;EAIC","file":"dashboard.css"} \ No newline at end of file
diff --git a/apps/dashboard/src/DashboardApp.vue b/apps/dashboard/src/DashboardApp.vue
index 46de7b58827..d08c18c6ffd 100644
--- a/apps/dashboard/src/DashboardApp.vue
+++ b/apps/dashboard/src/DashboardApp.vue
@@ -517,9 +517,9 @@ export default {
& > .panel--content {
margin: 0 16px 16px 16px;
- height: 420px;
+ height: 424px;
// We specifically do not want scrollbars inside widgets
- overflow: hidden;
+ overflow: visible;
}
// No need to extend height of widgets if only one column is shown
@@ -566,7 +566,7 @@ export default {
background-color: var(--color-background-hover)!important;
}
&:focus-visible {
- border: 2px solid var(--color-main-text)!important;
+ box-shadow: 0 0 0 2px var(--color-main-text) !important;
}
}
diff --git a/apps/dashboard/src/components/BackgroundSettings.vue b/apps/dashboard/src/components/BackgroundSettings.vue
index bd2154e89a7..3fd82768267 100644
--- a/apps/dashboard/src/components/BackgroundSettings.vue
+++ b/apps/dashboard/src/components/BackgroundSettings.vue
@@ -174,7 +174,7 @@ export default {
}
&.active:not(.icon-loading):after {
- background-image: var(--icon-checkmark-fff);
+ background-image: var(--icon-checkmark-white);
background-repeat: no-repeat;
background-position: center;
background-size: 44px;
diff --git a/apps/dav/l10n/ja.js b/apps/dav/l10n/ja.js
index e95c0a012a2..1415a38c9c9 100644
--- a/apps/dav/l10n/ja.js
+++ b/apps/dav/l10n/ja.js
@@ -108,6 +108,11 @@ OC.L10N.register(
"{actor} updated contact {card} in address book {addressbook}" : "{actor}がアドレス帳 {addressbook}の連絡先 {card}を更新しました",
"You updated contact {card} in address book {addressbook}" : "アドレス帳 {addressbook}の連絡先 {card}を更新しました",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "連絡先やアドレス帳が変更されたとき",
+ "File is not updatable: %1$s" : "ファイルが更新できません:%1$s",
+ "Could not write to final file, canceled by hook" : "最終ファイルへの書き込みができなかったため、フックによりキャンセルされた",
+ "Could not write file contents" : "ファイルの内容を書き込むことができませんでした",
+ "_%n byte_::_%n bytes_" : ["%n bytes"],
+ "Could not open file" : "ファイルを開くことができませんでした",
"System is in maintenance mode." : "システムはメンテナンスモードです。",
"Upgrade needed" : "アップグレードが必要です",
"Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "iOS / macOSでCalDAVおよびCardDAVを使用するには、%sにHTTPSを設定する必要があります。",
@@ -122,9 +127,12 @@ OC.L10N.register(
"Contacts and groups" : "連絡先とグループ",
"WebDAV" : "WebDAV",
"WebDAV endpoint" : "WebDAVエンドポイント",
+ "Availability" : "応対可能日時",
+ "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "勤務時間を設定すると、他のユーザが会議を予約する際に、あなたがいつ不在であるかがわかります。",
"Time zone:" : "時間帯:",
"to" : "宛先",
"Delete slot" : "スロットを削除",
+ "No working hours set" : "勤務時間未設定",
"Monday" : "月曜日",
"Tuesday" : "火曜日",
"Wednesday" : "水曜日",
diff --git a/apps/dav/l10n/ja.json b/apps/dav/l10n/ja.json
index b3816a8b966..46b1babf468 100644
--- a/apps/dav/l10n/ja.json
+++ b/apps/dav/l10n/ja.json
@@ -106,6 +106,11 @@
"{actor} updated contact {card} in address book {addressbook}" : "{actor}がアドレス帳 {addressbook}の連絡先 {card}を更新しました",
"You updated contact {card} in address book {addressbook}" : "アドレス帳 {addressbook}の連絡先 {card}を更新しました",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "連絡先やアドレス帳が変更されたとき",
+ "File is not updatable: %1$s" : "ファイルが更新できません:%1$s",
+ "Could not write to final file, canceled by hook" : "最終ファイルへの書き込みができなかったため、フックによりキャンセルされた",
+ "Could not write file contents" : "ファイルの内容を書き込むことができませんでした",
+ "_%n byte_::_%n bytes_" : ["%n bytes"],
+ "Could not open file" : "ファイルを開くことができませんでした",
"System is in maintenance mode." : "システムはメンテナンスモードです。",
"Upgrade needed" : "アップグレードが必要です",
"Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "iOS / macOSでCalDAVおよびCardDAVを使用するには、%sにHTTPSを設定する必要があります。",
@@ -120,9 +125,12 @@
"Contacts and groups" : "連絡先とグループ",
"WebDAV" : "WebDAV",
"WebDAV endpoint" : "WebDAVエンドポイント",
+ "Availability" : "応対可能日時",
+ "If you configure your working hours, other users will see when you are out of office when they book a meeting." : "勤務時間を設定すると、他のユーザが会議を予約する際に、あなたがいつ不在であるかがわかります。",
"Time zone:" : "時間帯:",
"to" : "宛先",
"Delete slot" : "スロットを削除",
+ "No working hours set" : "勤務時間未設定",
"Monday" : "月曜日",
"Tuesday" : "火曜日",
"Wednesday" : "水曜日",
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index 35df5c0b8ca..864f3da9367 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -647,23 +647,26 @@ class CardDavBackend implements BackendInterface, SyncSupport {
* @param mixed $addressBookId
* @param string $cardUri
* @param string $cardData
+ * @param bool $checkAlreadyExists
* @return string
*/
- public function createCard($addressBookId, $cardUri, $cardData) {
+ public function createCard($addressBookId, $cardUri, $cardData, bool $checkAlreadyExists = true) {
$etag = md5($cardData);
$uid = $this->getUID($cardData);
- $q = $this->db->getQueryBuilder();
- $q->select('uid')
- ->from($this->dbCardsTable)
- ->where($q->expr()->eq('addressbookid', $q->createNamedParameter($addressBookId)))
- ->andWhere($q->expr()->eq('uid', $q->createNamedParameter($uid)))
- ->setMaxResults(1);
- $result = $q->execute();
- $count = (bool)$result->fetchOne();
- $result->closeCursor();
- if ($count) {
- throw new \Sabre\DAV\Exception\BadRequest('VCard object with uid already exists in this addressbook collection.');
+ if ($checkAlreadyExists) {
+ $q = $this->db->getQueryBuilder();
+ $q->select('uid')
+ ->from($this->dbCardsTable)
+ ->where($q->expr()->eq('addressbookid', $q->createNamedParameter($addressBookId)))
+ ->andWhere($q->expr()->eq('uid', $q->createNamedParameter($uid)))
+ ->setMaxResults(1);
+ $result = $q->executeQuery();
+ $count = (bool)$result->fetchOne();
+ $result->closeCursor();
+ if ($count) {
+ throw new \Sabre\DAV\Exception\BadRequest('VCard object with uid already exists in this addressbook collection.');
+ }
}
$query = $this->db->getQueryBuilder();
@@ -1267,21 +1270,29 @@ class CardDavBackend implements BackendInterface, SyncSupport {
]
);
- foreach ($vCard->children() as $property) {
- if (!in_array($property->name, self::$indexProperties)) {
- continue;
- }
- $preferred = 0;
- foreach ($property->parameters as $parameter) {
- if ($parameter->name === 'TYPE' && strtoupper($parameter->getValue()) === 'PREF') {
- $preferred = 1;
- break;
+
+ $this->db->beginTransaction();
+
+ try {
+ foreach ($vCard->children() as $property) {
+ if (!in_array($property->name, self::$indexProperties)) {
+ continue;
+ }
+ $preferred = 0;
+ foreach ($property->parameters as $parameter) {
+ if ($parameter->name === 'TYPE' && strtoupper($parameter->getValue()) === 'PREF') {
+ $preferred = 1;
+ break;
+ }
}
+ $query->setParameter('name', $property->name);
+ $query->setParameter('value', mb_strcut($property->getValue(), 0, 254));
+ $query->setParameter('preferred', $preferred);
+ $query->execute();
}
- $query->setParameter('name', $property->name);
- $query->setParameter('value', mb_strcut($property->getValue(), 0, 254));
- $query->setParameter('preferred', $preferred);
- $query->execute();
+ $this->db->commit();
+ } catch (\Exception $e) {
+ $this->db->rollBack();
}
}
diff --git a/apps/dav/lib/CardDAV/SyncService.php b/apps/dav/lib/CardDAV/SyncService.php
index 95fdf1d21da..169dbc79e0f 100644
--- a/apps/dav/lib/CardDAV/SyncService.php
+++ b/apps/dav/lib/CardDAV/SyncService.php
@@ -265,12 +265,12 @@ class SyncService {
$userId = $user->getUID();
$cardId = "$name:$userId.vcf";
- $card = $this->backend->getCard($addressBookId, $cardId);
if ($user->isEnabled()) {
+ $card = $this->backend->getCard($addressBookId, $cardId);
if ($card === false) {
$vCard = $this->converter->createCardFromUser($user);
if ($vCard !== null) {
- $this->backend->createCard($addressBookId, $cardId, $vCard->serialize());
+ $this->backend->createCard($addressBookId, $cardId, $vCard->serialize(), false);
}
} else {
$vCard = $this->converter->createCardFromUser($user);
diff --git a/apps/dav/lib/HookManager.php b/apps/dav/lib/HookManager.php
index f0fdd5cfd4f..b69d9b0cd79 100644
--- a/apps/dav/lib/HookManager.php
+++ b/apps/dav/lib/HookManager.php
@@ -105,10 +105,7 @@ class HookManager {
$this->postDeleteUser(['uid' => $uid]);
});
\OC::$server->getUserManager()->listen('\OC\User', 'postUnassignedUserId', [$this, 'postUnassignedUserId']);
- Util::connectHook('OC_User',
- 'changeUser',
- $this,
- 'changeUser');
+ Util::connectHook('OC_User', 'changeUser', $this, 'changeUser');
}
public function postCreateUser($params) {
@@ -164,7 +161,12 @@ class HookManager {
public function changeUser($params) {
$user = $params['user'];
- $this->syncService->updateUser($user);
+ $feature = $params['feature'];
+ // This case is already covered by the account manager firing up a signal
+ // later on
+ if ($feature !== 'eMailAddress' && $feature !== 'displayName') {
+ $this->syncService->updateUser($user);
+ }
}
public function firstLogin(IUser $user = null) {
diff --git a/apps/encryption/css/settings-personal.css b/apps/encryption/css/settings-personal.css
new file mode 100644
index 00000000000..9b795f05382
--- /dev/null
+++ b/apps/encryption/css/settings-personal.css
@@ -0,0 +1,16 @@
+/* Copyright (c) 2013, Sam Tuke, <samtuke@owncloud.com>
+ This file is licensed under the Affero General Public License version 3 or later.
+ See the COPYING-README file. */
+#encryptAllError,
+#encryptAllSuccess,
+#recoveryEnabledError,
+#recoveryEnabledSuccess {
+ display: none;
+}
+
+/* icons for sidebar */
+.nav-icon-basic-encryption-module {
+ background-image: var(--icon-encryption-dark);
+}
+
+/*# sourceMappingURL=settings-personal.css.map */
diff --git a/apps/encryption/css/settings-personal.css.map b/apps/encryption/css/settings-personal.css.map
new file mode 100644
index 00000000000..979a14d9aec
--- /dev/null
+++ b/apps/encryption/css/settings-personal.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["settings-personal.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAIA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;EACC","file":"settings-personal.css"} \ No newline at end of file
diff --git a/apps/encryption/css/settings-personal.scss b/apps/encryption/css/settings-personal.scss
index d9846cc77f6..59981356573 100644
--- a/apps/encryption/css/settings-personal.scss
+++ b/apps/encryption/css/settings-personal.scss
@@ -2,14 +2,14 @@
This file is licensed under the Affero General Public License version 3 or later.
See the COPYING-README file. */
-#encryptAllError
-, #encryptAllSuccess
-, #recoveryEnabledError
-, #recoveryEnabledSuccess {
+#encryptAllError,
+#encryptAllSuccess,
+#recoveryEnabledError,
+#recoveryEnabledSuccess {
display: none;
}
/* icons for sidebar */
.nav-icon-basic-encryption-module {
- @include icon-color('app', 'encryption', $color-black);
-} \ No newline at end of file
+ background-image: var(--icon-encryption-dark);
+}
diff --git a/apps/encryption/lib/Crypto/Crypt.php b/apps/encryption/lib/Crypto/Crypt.php
index 93120068c6a..f8ba3d69b80 100644
--- a/apps/encryption/lib/Crypto/Crypt.php
+++ b/apps/encryption/lib/Crypto/Crypt.php
@@ -77,6 +77,9 @@ class Crypt {
public const HEADER_START = 'HBEGIN';
public const HEADER_END = 'HEND';
+ // default encoding format, old Nextcloud versions used base64
+ public const BINARY_ENCODING_FORMAT = 'binary';
+
/** @var ILogger */
private $logger;
@@ -96,6 +99,11 @@ class Crypt {
private $supportLegacy;
/**
+ * Use the legacy base64 encoding instead of the more space-efficient binary encoding.
+ */
+ private bool $useLegacyBase64Encoding;
+
+ /**
* @param ILogger $logger
* @param IUserSession $userSession
* @param IConfig $config
@@ -107,6 +115,7 @@ class Crypt {
$this->config = $config;
$this->l = $l;
$this->supportLegacy = $this->config->getSystemValueBool('encryption.legacy_format_support', false);
+ $this->useLegacyBase64Encoding = $this->config->getSystemValueBool('encryption.use_legacy_base64_encoding', false);
}
/**
@@ -215,12 +224,15 @@ class Crypt {
throw new \InvalidArgumentException('key format "' . $keyFormat . '" is not supported');
}
- $cipher = $this->getCipher();
-
$header = self::HEADER_START
- . ':cipher:' . $cipher
- . ':keyFormat:' . $keyFormat
- . ':' . self::HEADER_END;
+ . ':cipher:' . $this->getCipher()
+ . ':keyFormat:' . $keyFormat;
+
+ if ($this->useLegacyBase64Encoding !== true) {
+ $header .= ':encoding:' . self::BINARY_ENCODING_FORMAT;
+ }
+
+ $header .= ':' . self::HEADER_END;
return $header;
}
@@ -234,10 +246,11 @@ class Crypt {
* @throws EncryptionFailedException
*/
private function encrypt($plainContent, $iv, $passPhrase = '', $cipher = self::DEFAULT_CIPHER) {
+ $options = $this->useLegacyBase64Encoding ? 0 : OPENSSL_RAW_DATA;
$encryptedContent = openssl_encrypt($plainContent,
$cipher,
$passPhrase,
- 0,
+ $options,
$iv);
if (!$encryptedContent) {
@@ -424,6 +437,8 @@ class Crypt {
$password = $this->generatePasswordHash($password, $cipher, $uid);
}
+ $binaryEncoding = isset($header['encoding']) && $header['encoding'] === self::BINARY_ENCODING_FORMAT;
+
// If we found a header we need to remove it from the key we want to decrypt
if (!empty($header)) {
$privateKey = substr($privateKey,
@@ -435,7 +450,9 @@ class Crypt {
$privateKey,
$password,
$cipher,
- 0
+ 0,
+ 0,
+ $binaryEncoding
);
if ($this->isValidPrivateKey($plainKey) === false) {
@@ -470,10 +487,11 @@ class Crypt {
* @param string $cipher
* @param int $version
* @param int|string $position
+ * @param boolean $binaryEncoding
* @return string
* @throws DecryptionFailedException
*/
- public function symmetricDecryptFileContent($keyFileContents, $passPhrase, $cipher = self::DEFAULT_CIPHER, $version = 0, $position = 0) {
+ public function symmetricDecryptFileContent($keyFileContents, $passPhrase, $cipher = self::DEFAULT_CIPHER, $version = 0, $position = 0, bool $binaryEncoding = false) {
if ($keyFileContents == '') {
return '';
}
@@ -493,7 +511,8 @@ class Crypt {
return $this->decrypt($catFile['encrypted'],
$catFile['iv'],
$passPhrase,
- $cipher);
+ $cipher,
+ $binaryEncoding);
}
/**
@@ -610,14 +629,16 @@ class Crypt {
* @param string $iv
* @param string $passPhrase
* @param string $cipher
+ * @param boolean $binaryEncoding
* @return string
* @throws DecryptionFailedException
*/
- private function decrypt($encryptedContent, $iv, $passPhrase = '', $cipher = self::DEFAULT_CIPHER) {
+ private function decrypt(string $encryptedContent, string $iv, string $passPhrase = '', string $cipher = self::DEFAULT_CIPHER, bool $binaryEncoding = false): string {
+ $options = $binaryEncoding === true ? OPENSSL_RAW_DATA : 0;
$plainContent = openssl_decrypt($encryptedContent,
$cipher,
$passPhrase,
- 0,
+ $options,
$iv);
if ($plainContent) {
@@ -728,4 +749,8 @@ class Crypt {
throw new MultiKeyEncryptException('multikeyencryption failed ' . openssl_error_string());
}
}
+
+ public function useLegacyBase64Encoding(): bool {
+ return $this->useLegacyBase64Encoding;
+ }
}
diff --git a/apps/encryption/lib/Crypto/Encryption.php b/apps/encryption/lib/Crypto/Encryption.php
index 58cefcbe087..b44472fd04a 100644
--- a/apps/encryption/lib/Crypto/Encryption.php
+++ b/apps/encryption/lib/Crypto/Encryption.php
@@ -103,11 +103,7 @@ class Encryption implements IEncryptionModule {
/** @var DecryptAll */
private $decryptAll;
- /** @var int unencrypted block size if block contains signature */
- private $unencryptedBlockSizeSigned = 6072;
-
- /** @var int unencrypted block size */
- private $unencryptedBlockSize = 6126;
+ private bool $useLegacyBase64Encoding = false;
/** @var int Current version of the file */
private $version = 0;
@@ -184,6 +180,11 @@ class Encryption implements IEncryptionModule {
$this->user = $user;
$this->isWriteOperation = false;
$this->writeCache = '';
+ $this->useLegacyBase64Encoding = true;
+
+ if (isset($header['encoding'])) {
+ $this->useLegacyBase64Encoding = $header['encoding'] !== Crypt::BINARY_ENCODING_FORMAT;
+ }
if ($this->session->isReady() === false) {
// if the master key is enabled we can initialize encryption
@@ -229,6 +230,7 @@ class Encryption implements IEncryptionModule {
if ($this->isWriteOperation) {
$this->cipher = $this->crypt->getCipher();
+ $this->useLegacyBase64Encoding = $this->crypt->useLegacyBase64Encoding();
} elseif (isset($header['cipher'])) {
$this->cipher = $header['cipher'];
} else {
@@ -237,7 +239,13 @@ class Encryption implements IEncryptionModule {
$this->cipher = $this->crypt->getLegacyCipher();
}
- return ['cipher' => $this->cipher, 'signed' => 'true'];
+ $result = ['cipher' => $this->cipher, 'signed' => 'true'];
+
+ if ($this->useLegacyBase64Encoding !== true) {
+ $result['encoding'] = Crypt::BINARY_ENCODING_FORMAT;
+ }
+
+ return $result;
}
/**
@@ -325,8 +333,8 @@ class Encryption implements IEncryptionModule {
$remainingLength = strlen($data);
// If data remaining to be written is less than the
- // size of 1 6126 byte block
- if ($remainingLength < $this->unencryptedBlockSizeSigned) {
+ // size of 1 unencrypted block
+ if ($remainingLength < $this->getUnencryptedBlockSize(true)) {
// Set writeCache to contents of $data
// The writeCache will be carried over to the
@@ -343,14 +351,14 @@ class Encryption implements IEncryptionModule {
} else {
// Read the chunk from the start of $data
- $chunk = substr($data, 0, $this->unencryptedBlockSizeSigned);
+ $chunk = substr($data, 0, $this->getUnencryptedBlockSize(true));
$encrypted .= $this->crypt->symmetricEncryptFileContent($chunk, $this->fileKey, $this->version + 1, $position);
// Remove the chunk we just processed from
// $data, leaving only unprocessed data in $data
// var, for handling on the next round
- $data = substr($data, $this->unencryptedBlockSizeSigned);
+ $data = substr($data, $this->getUnencryptedBlockSize(true));
}
}
@@ -374,7 +382,7 @@ class Encryption implements IEncryptionModule {
throw new DecryptionFailedException($msg, $hint);
}
- return $this->crypt->symmetricDecryptFileContent($data, $this->fileKey, $this->cipher, $this->version, $position);
+ return $this->crypt->symmetricDecryptFileContent($data, $this->fileKey, $this->cipher, $this->version, $position, !$this->useLegacyBase64Encoding);
}
/**
@@ -462,15 +470,27 @@ class Encryption implements IEncryptionModule {
* get size of the unencrypted payload per block.
* Nextcloud read/write files with a block size of 8192 byte
*
+ * Encrypted blocks have a 22-byte IV and 2 bytes of padding, encrypted and
+ * signed blocks have also a 71-byte signature and 1 more byte of padding,
+ * resulting respectively in:
+ *
+ * 8192 - 22 - 2 = 8168 bytes in each unsigned unencrypted block
+ * 8192 - 22 - 2 - 71 - 1 = 8096 bytes in each signed unencrypted block
+ *
+ * Legacy base64 encoding then reduces the available size by a 3/4 factor:
+ *
+ * 8168 * (3/4) = 6126 bytes in each base64-encoded unsigned unencrypted block
+ * 8096 * (3/4) = 6072 bytes in each base64-encoded signed unencrypted block
+ *
* @param bool $signed
* @return int
*/
public function getUnencryptedBlockSize($signed = false) {
- if ($signed === false) {
- return $this->unencryptedBlockSize;
+ if ($this->useLegacyBase64Encoding) {
+ return $signed ? 6072 : 6126;
+ } else {
+ return $signed ? 8096 : 8168;
}
-
- return $this->unencryptedBlockSizeSigned;
}
/**
diff --git a/apps/encryption/tests/Crypto/CryptTest.php b/apps/encryption/tests/Crypto/CryptTest.php
index 60548a0f1dc..ef4e46085a4 100644
--- a/apps/encryption/tests/Crypto/CryptTest.php
+++ b/apps/encryption/tests/Crypto/CryptTest.php
@@ -139,9 +139,9 @@ class CryptTest extends TestCase {
*/
public function dataTestGenerateHeader() {
return [
- [null, 'HBEGIN:cipher:AES-128-CFB:keyFormat:hash:HEND'],
- ['password', 'HBEGIN:cipher:AES-128-CFB:keyFormat:password:HEND'],
- ['hash', 'HBEGIN:cipher:AES-128-CFB:keyFormat:hash:HEND']
+ [null, 'HBEGIN:cipher:AES-128-CFB:keyFormat:hash:encoding:binary:HEND'],
+ ['password', 'HBEGIN:cipher:AES-128-CFB:keyFormat:password:encoding:binary:HEND'],
+ ['hash', 'HBEGIN:cipher:AES-128-CFB:keyFormat:hash:encoding:binary:HEND']
];
}
@@ -305,15 +305,17 @@ class CryptTest extends TestCase {
* test parseHeader()
*/
public function testParseHeader() {
- $header = 'HBEGIN:foo:bar:cipher:AES-256-CFB:HEND';
+ $header = 'HBEGIN:foo:bar:cipher:AES-256-CFB:encoding:binary:HEND';
$result = self::invokePrivate($this->crypt, 'parseHeader', [$header]);
$this->assertTrue(is_array($result));
- $this->assertSame(2, count($result));
+ $this->assertSame(3, count($result));
$this->assertArrayHasKey('foo', $result);
$this->assertArrayHasKey('cipher', $result);
+ $this->assertArrayHasKey('encoding', $result);
$this->assertSame('bar', $result['foo']);
$this->assertSame('AES-256-CFB', $result['cipher']);
+ $this->assertSame('binary', $result['encoding']);
}
/**
@@ -324,18 +326,20 @@ class CryptTest extends TestCase {
public function testEncrypt() {
$decrypted = 'content';
$password = 'password';
+ $cipher = 'AES-256-CTR';
$iv = self::invokePrivate($this->crypt, 'generateIv');
$this->assertTrue(is_string($iv));
$this->assertSame(16, strlen($iv));
- $result = self::invokePrivate($this->crypt, 'encrypt', [$decrypted, $iv, $password]);
+ $result = self::invokePrivate($this->crypt, 'encrypt', [$decrypted, $iv, $password, $cipher]);
$this->assertTrue(is_string($result));
return [
'password' => $password,
'iv' => $iv,
+ 'cipher' => $cipher,
'encrypted' => $result,
'decrypted' => $decrypted];
}
@@ -349,7 +353,7 @@ class CryptTest extends TestCase {
$result = self::invokePrivate(
$this->crypt,
'decrypt',
- [$data['encrypted'], $data['iv'], $data['password']]);
+ [$data['encrypted'], $data['iv'], $data['password'], $data['cipher'], true]);
$this->assertSame($data['decrypted'], $result);
}
@@ -391,8 +395,9 @@ class CryptTest extends TestCase {
*/
public function testDecryptPrivateKey($header, $privateKey, $expectedCipher, $isValidKey, $expected) {
$this->config->method('getSystemValueBool')
- ->with('encryption.legacy_format_support', false)
- ->willReturn(true);
+ ->withConsecutive(['encryption.legacy_format_support', false],
+ ['encryption.use_legacy_base64_encoding', false])
+ ->willReturnOnConsecutiveCalls(true, false);
/** @var \OCA\Encryption\Crypto\Crypt | \PHPUnit\Framework\MockObject\MockObject $crypt */
$crypt = $this->getMockBuilder(Crypt::class)
diff --git a/apps/federatedfilesharing/css/settings-admin.css b/apps/federatedfilesharing/css/settings-admin.css
new file mode 100644
index 00000000000..d043ebae43b
--- /dev/null
+++ b/apps/federatedfilesharing/css/settings-admin.css
@@ -0,0 +1,5 @@
+#fileSharingSettings h2 {
+ display: inline-block;
+}
+
+/*# sourceMappingURL=settings-admin.css.map */
diff --git a/apps/federatedfilesharing/css/settings-admin.css.map b/apps/federatedfilesharing/css/settings-admin.css.map
new file mode 100644
index 00000000000..9b1d105e143
--- /dev/null
+++ b/apps/federatedfilesharing/css/settings-admin.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["settings-admin.scss"],"names":[],"mappings":"AAAA;EACC","file":"settings-admin.css"} \ No newline at end of file
diff --git a/apps/federatedfilesharing/css/settings-personal.css b/apps/federatedfilesharing/css/settings-personal.css
new file mode 100644
index 00000000000..16e482beecc
--- /dev/null
+++ b/apps/federatedfilesharing/css/settings-personal.css
@@ -0,0 +1,107 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @see core/src/icons.js
+ */
+/**
+ * SVG COLOR API
+ *
+ * @param string $icon the icon filename
+ * @param string $dir the icon folder within /core/img if $core or app name
+ * @param string $color the desired color in hexadecimal
+ * @param int $version the version of the file
+ * @param bool [$core] search icon in core
+ *
+ * @returns A background image with the url to the set to the requested icon.
+ */
+#fileSharingSettings h2 {
+ display: inline-block;
+}
+
+#fileSharingSettings img {
+ cursor: pointer;
+}
+
+#fileSharingSettings xmp {
+ margin-top: 0;
+ white-space: pre-wrap;
+}
+
+#fileSharingSettings .icon {
+ background-size: 16px 16px;
+ display: inline-block;
+ position: relative;
+ top: 3px;
+ margin-left: 5px;
+}
+
+[class^=social-], [class*=" social-"] {
+ background-repeat: no-repeat;
+ background-position: 8px;
+ min-width: 16px;
+ min-height: 16px;
+ padding-left: 28px;
+ background-size: 16px;
+}
+
+.social-diaspora {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-social-diaspora-dark);
+}
+
+.social-twitter {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-social-twitter-dark);
+}
+
+.social-facebook {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-social-facebook-dark);
+}
+
+.social_sharing_buttons {
+ padding-left: 30px !important;
+}
+
+/*# sourceMappingURL=settings-personal.css.map */
diff --git a/apps/federatedfilesharing/css/settings-personal.css.map b/apps/federatedfilesharing/css/settings-personal.css.map
new file mode 100644
index 00000000000..490e82ccb28
--- /dev/null
+++ b/apps/federatedfilesharing/css/settings-personal.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","../../../core/css/functions.scss","settings-personal.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AC/CA;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AD8BC;EAEA;;;AC7BD;AD2BC;EAEA;;;AC1BD;ADwBC;EAEA;;;ACtBD;EACC","file":"settings-personal.css"} \ No newline at end of file
diff --git a/apps/federatedfilesharing/css/settings-personal.scss b/apps/federatedfilesharing/css/settings-personal.scss
index d94e06f943d..501b81df436 100644
--- a/apps/federatedfilesharing/css/settings-personal.scss
+++ b/apps/federatedfilesharing/css/settings-personal.scss
@@ -1,3 +1,6 @@
+@use 'variables';
+@import 'functions';
+
#fileSharingSettings h2 {
display: inline-block;
}
@@ -29,13 +32,13 @@
}
.social-diaspora {
- @include icon-color('social-diaspora', 'federatedfilesharing', $color-black);
+ @include icon-color('social-diaspora', 'federatedfilesharing', variables.$color-black);
}
.social-twitter {
- @include icon-color('social-twitter', 'federatedfilesharing', $color-black);
+ @include icon-color('social-twitter', 'federatedfilesharing', variables.$color-black);
}
.social-facebook {
- @include icon-color('social-facebook', 'federatedfilesharing', $color-black);
+ @include icon-color('social-facebook', 'federatedfilesharing', variables.$color-black);
}
.social_sharing_buttons {
diff --git a/apps/files/css/detailsView.css b/apps/files/css/detailsView.css
new file mode 100644
index 00000000000..46c2eeabe36
--- /dev/null
+++ b/apps/files/css/detailsView.css
@@ -0,0 +1,133 @@
+.app-sidebar .detailFileInfoContainer {
+ min-height: 50px;
+ padding: 15px;
+}
+
+.app-sidebar .detailFileInfoContainer > div {
+ clear: both;
+}
+
+.app-sidebar .mainFileInfoView .icon {
+ display: inline-block;
+ background-size: 16px 16px;
+}
+
+.app-sidebar .mainFileInfoView .permalink {
+ padding: 6px 10px;
+ vertical-align: top;
+ opacity: 0.6;
+}
+.app-sidebar .mainFileInfoView .permalink:hover, .app-sidebar .mainFileInfoView .permalink:focus {
+ opacity: 1;
+}
+
+.app-sidebar .mainFileInfoView .permalink-field > input {
+ clear: both;
+ width: 90%;
+}
+
+.app-sidebar .thumbnailContainer.large {
+ margin-left: -15px;
+ margin-right: -35px;
+ /* 15 + 20 for the close button */
+ margin-top: -15px;
+}
+
+.app-sidebar .thumbnailContainer.large.portrait {
+ margin: 0;
+ /* if we don't fit the image anyway we give it back the margin */
+}
+
+.app-sidebar .large .thumbnail {
+ width: 100%;
+ display: block;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+ float: none;
+ margin: 0;
+ height: auto;
+}
+
+.app-sidebar .large .thumbnail .stretcher {
+ content: "";
+ display: block;
+ padding-bottom: 56.25%;
+ /* sets height of .thumbnail to 9/16 of the width */
+}
+
+.app-sidebar .large.portrait .thumbnail {
+ background-position: 50% top;
+}
+
+.app-sidebar .large.portrait .thumbnail {
+ background-size: contain;
+}
+
+.app-sidebar .large.text {
+ overflow-y: scroll;
+ overflow-x: hidden;
+ padding-top: 14px;
+ font-size: 80%;
+ margin-left: 0;
+}
+
+.app-sidebar .thumbnail {
+ width: 100%;
+ min-height: 75px;
+ display: inline-block;
+ float: left;
+ margin-right: 10px;
+ background-size: contain;
+ background-repeat: no-repeat;
+}
+
+.app-sidebar .ellipsis {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.app-sidebar .fileName {
+ font-size: 16px;
+ padding-top: 13px;
+ padding-bottom: 3px;
+}
+
+.app-sidebar .fileName h3 {
+ width: calc(100% - 42px);
+ /* 36px is the with of the copy link icon, but this breaks so we add some more to be sure */
+ display: inline-block;
+ padding: 5px 0;
+ margin: -5px 0;
+}
+
+.app-sidebar .file-details {
+ color: var(--color-text-maxcontrast);
+}
+
+.app-sidebar .action-favorite {
+ vertical-align: sub;
+ padding: 10px;
+ margin: -10px;
+}
+
+.app-sidebar .action-favorite > span {
+ opacity: 0.7 !important;
+}
+
+.app-sidebar .detailList {
+ float: left;
+}
+
+.app-sidebar .close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ opacity: 0.5;
+ z-index: 1;
+ width: 44px;
+ height: 44px;
+}
+
+/*# sourceMappingURL=detailsView.css.map */
diff --git a/apps/files/css/detailsView.css.map b/apps/files/css/detailsView.css.map
new file mode 100644
index 00000000000..30726744caf
--- /dev/null
+++ b/apps/files/css/detailsView.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["detailsView.scss"],"names":[],"mappings":"AAAA;EACC;EACA;;;AAGD;EACC;;;AAID;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EAEC;;;AAGF;EACC;EACA;;;AAGD;EACC;EACA;AAAqB;EACrB;;;AAGD;EACC;AAAW;;;AAGZ;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;AAAwB;;;AAGzB;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;AAA0B;EAC1B;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA","file":"detailsView.css"} \ No newline at end of file
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
new file mode 100644
index 00000000000..ec0a4b23bd3
--- /dev/null
+++ b/apps/files/css/files.css
@@ -0,0 +1,1307 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
+ * @copyright Copyright (c) 2019, Fabian Dreßler <nudelsalat@clouz.de>
+ *
+ * This file is licensed under the Affero General Public License version 3 or later.
+ * See the COPYING-README file.
+ */
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @see core/src/icons.js
+ */
+/**
+ * SVG COLOR API
+ *
+ * @param string $icon the icon filename
+ * @param string $dir the icon folder within /core/img if $core or app name
+ * @param string $color the desired color in hexadecimal
+ * @param int $version the version of the file
+ * @param bool [$core] search icon in core
+ *
+ * @returns A background image with the url to the set to the requested icon.
+ */
+/* FILE MENU */
+.actions {
+ padding: 5px;
+ height: 100%;
+ display: inline-block;
+ float: left;
+}
+
+.actions input, .actions button, .actions .button {
+ margin: 0;
+ float: left;
+}
+
+.actions .button a {
+ color: #555;
+}
+
+.actions .button a:hover,
+.actions .button a:focus {
+ background-color: var(--color-background-hover);
+}
+
+.actions .button a:active {
+ background-color: var(--color-primary-light);
+}
+
+.actions.creatable {
+ position: relative;
+ display: flex;
+ flex: 1 1;
+}
+.actions.creatable .button:not(:last-child) {
+ margin-right: 3px;
+}
+
+.actions.hidden {
+ display: none;
+}
+
+#trash {
+ margin-right: 8px;
+ float: right;
+ z-index: 1010;
+ padding: 10px;
+ font-weight: normal;
+}
+
+.newFileMenu .error,
+.newFileMenu .error + .icon-confirm,
+#fileList .error {
+ color: var(--color-error);
+ border-color: var(--color-error);
+}
+
+/* FILE TABLE */
+#filestable {
+ position: relative;
+ width: 100%;
+ min-width: 250px;
+ display: block;
+ flex-direction: column;
+ /**
+ * This is a dirty hack as the sticky header requires us to use a different display type on the table element
+ */
+}
+#emptycontent:not(.hidden) ~ #filestable {
+ display: none;
+}
+#filestable thead {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 50px;
+ z-index: 60;
+ display: block;
+ background-color: var(--color-main-background-translucent);
+}
+#filestable tbody {
+ display: table;
+ width: 100%;
+}
+#filestable tbody tr[data-permissions="0"],
+#filestable tbody tr[data-permissions="16"] {
+ background-color: var(--color-background-dark);
+}
+#filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,
+#filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext {
+ color: var(--color-text-maxcontrast);
+}
+
+#filestable.hidden {
+ display: none;
+}
+
+/* fit app list view heights */
+.app-files #app-content > .viewcontainer {
+ min-height: 0%;
+ width: 100%;
+}
+
+.app-files #app-content {
+ width: calc(100% - 300px);
+}
+
+.file-drag, .file-drag #filestable tbody tr, .file-drag #filestable tbody tr:hover {
+ background-color: var(--color-primary-light) !important;
+}
+
+.app-files #app-content.dir-drop {
+ background-color: var(--color-main-background) !important;
+}
+
+.file-drag #filestable tbody tr, .file-drag #filestable tbody tr:hover {
+ background-color: transparent !important;
+}
+
+.app-files #app-content.dir-drop #filestable tbody tr.dropping-to-dir {
+ background-color: var(--color-primary-light) !important;
+}
+
+/* icons for sidebar */
+.nav-icon-files {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-folder-dark);
+}
+
+.nav-icon-recent {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-recent-dark);
+}
+
+.nav-icon-favorites {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-starred-dark);
+}
+
+.nav-icon-sharingin,
+.nav-icon-sharingout,
+.nav-icon-pendingshares,
+.nav-icon-shareoverview {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-share-dark);
+}
+
+.nav-icon-sharinglinks {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-public-dark);
+}
+
+.nav-icon-extstoragemounts {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-external-dark);
+}
+
+.nav-icon-trashbin {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-delete-dark);
+}
+
+.nav-icon-trashbin-starred {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-delete-#ff0000);
+}
+
+.nav-icon-deletedshares {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-unshare-dark);
+}
+
+.nav-icon-favorites-starred {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-starred-yellow);
+}
+
+#app-navigation .nav-files a.nav-icon-files {
+ width: auto;
+}
+
+/* button needs overrides due to navigation styles */
+#app-navigation .nav-files a.new {
+ width: 40px;
+ height: 32px;
+ padding: 0 10px;
+ margin: 0;
+ cursor: pointer;
+}
+
+#app-navigation .nav-files a.new.hidden {
+ display: none;
+}
+
+#app-navigation .nav-files a.new.disabled {
+ opacity: 0.3;
+}
+
+#filestable tbody tr {
+ height: 51px;
+}
+
+#filestable tbody tr:hover,
+#filestable tbody tr:focus,
+#filestable tbody .name:focus,
+#filestable tbody tr:hover .filename form,
+table tr.mouseOver td {
+ background-color: var(--color-background-hover);
+}
+
+#filestable tbody tr:active,
+#filestable tbody tr.highlighted,
+#filestable tbody tr.highlighted .name:focus,
+#filestable tbody tr.selected,
+#filestable tbody tr.searchresult {
+ background-color: var(--color-primary-light);
+}
+
+tbody a {
+ color: var(--color-main-text);
+}
+
+span.conflict-path, span.extension, span.uploading, td.date {
+ color: var(--color-text-maxcontrast);
+}
+
+span.conflict-path, span.extension {
+ -webkit-transition: opacity 300ms;
+ -moz-transition: opacity 300ms;
+ -o-transition: opacity 300ms;
+ transition: opacity 300ms;
+ vertical-align: top;
+}
+
+tr:hover span.conflict-path,
+tr:focus span.conflict-path,
+tr:hover span.extension,
+tr:focus span.extension {
+ opacity: 1;
+ color: var(--color-text-maxcontrast);
+}
+
+table th, table th a {
+ color: var(--color-text-maxcontrast);
+}
+
+table.multiselect th a {
+ color: var(--color-main-text);
+}
+
+table th .columntitle {
+ display: block;
+ padding: 15px;
+ height: 50px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ vertical-align: middle;
+}
+table th .columntitle:focus-visible {
+ border-radius: 2px;
+}
+
+table.multiselect th .columntitle {
+ display: inline-block;
+ margin-right: -20px;
+}
+
+table th .columntitle.name {
+ padding-left: 0;
+ margin-left: 44px;
+}
+
+table.multiselect th .columntitle.name {
+ margin-left: 0;
+}
+
+table th .sort-indicator {
+ width: 10px;
+ height: 8px;
+ margin-left: 5px;
+ display: inline-block;
+ vertical-align: text-bottom;
+ opacity: 0.3;
+}
+
+.sort-indicator.hidden,
+.multiselect .sort-indicator,
+table.multiselect th:hover .sort-indicator.hidden,
+table.multiselect th:focus .sort-indicator.hidden {
+ visibility: hidden;
+}
+
+.multiselect .sort, .multiselect .sort span {
+ cursor: default;
+}
+
+table th:hover .sort-indicator.hidden,
+table th:focus .sort-indicator.hidden {
+ visibility: visible;
+}
+
+table th,
+table td {
+ border-bottom: 1px solid var(--color-border);
+ text-align: left;
+ font-weight: normal;
+}
+
+table td {
+ padding: 0 15px;
+ font-style: normal;
+ background-position: 8px center;
+ background-repeat: no-repeat;
+}
+
+table th#headerName {
+ position: relative;
+ width: 9999px;
+ /* not really sure why this works better than 100% … table styling */
+ padding: 0;
+}
+
+#headerName-container {
+ position: relative;
+ height: 50px;
+}
+
+table th#headerSelection {
+ padding-top: 2px;
+}
+
+table th#headerSize, table td.filesize {
+ text-align: right;
+}
+
+table th#headerDate, table td.date,
+table th.column-last, table td.column-last {
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ position: relative;
+ /* this can not be just width, both need to be set … table styling */
+ min-width: 130px;
+ max-width: 130px;
+}
+
+#app-content-files thead,
+#app-content-trashbin thead {
+ top: 94px;
+}
+
+#app-content-recent,
+#app-content-favorites,
+#app-content-shareoverview,
+#app-content-sharingout,
+#app-content-sharingin,
+#app-content-sharinglinks,
+#app-content-deletedshares,
+#app-content-pendingshares {
+ margin-top: 22px;
+}
+
+table.multiselect thead th {
+ background-color: var(--color-main-background-translucent);
+ font-weight: bold;
+}
+
+#app-content.with-app-sidebar table.multiselect thead {
+ margin-right: 27%;
+}
+
+table.multiselect #headerName {
+ position: relative;
+ width: 9999px;
+ /* when we use 100%, the styling breaks on mobile … table styling */
+}
+
+table.multiselect #modified {
+ display: none;
+}
+
+table td.selection,
+table th.selection,
+table td.fileaction {
+ width: 32px;
+ text-align: center;
+}
+
+table td.filename a.name,
+table td.filename p.name {
+ display: flex;
+ position: relative;
+ /* Firefox needs to explicitly have this default set … */
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ height: 50px;
+ line-height: 50px;
+ padding: 0;
+}
+
+table td.filename .thumbnail-wrapper {
+ /* we need this to make sure flex is working inside a table cell */
+ width: 0;
+ min-width: 50px;
+ max-width: 50px;
+ height: 50px;
+}
+
+table td.filename .thumbnail-wrapper.icon-loading-small:after {
+ z-index: 10;
+}
+table td.filename .thumbnail-wrapper.icon-loading-small .thumbnail {
+ opacity: 0.2;
+}
+
+table td.filename .thumbnail {
+ display: inline-block;
+ width: 32px;
+ height: 32px;
+ background-size: 32px;
+ margin-left: 9px;
+ margin-top: 9px;
+ border-radius: var(--border-radius);
+ cursor: pointer;
+ position: absolute;
+ z-index: 4;
+}
+
+table td.filename p.name .thumbnail {
+ cursor: default;
+}
+
+table tr[data-has-preview=true] .thumbnail {
+ border: 1px solid var(--color-border);
+}
+
+table td.filename input.filename {
+ width: 70%;
+ margin-left: 48px;
+ cursor: text;
+}
+
+table td.filename form {
+ margin-top: -40px;
+ position: relative;
+ top: -6px;
+}
+
+table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete {
+ padding: 3px 8px 8px 3px;
+}
+
+table td.filename .nametext, .modified, .column-last > span:first-child {
+ float: left;
+ padding: 15px 0;
+}
+
+.modified, .column-last > span:first-child {
+ position: relative;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 110px;
+}
+
+/* TODO fix usability bug (accidental file/folder selection) */
+table td.filename {
+ max-width: 0;
+}
+table td.filename .nametext {
+ width: 0;
+ flex-grow: 1;
+ display: flex;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ height: 100%;
+ z-index: 10;
+ padding: 0 20px 0 0;
+}
+
+.hide-hidden-files #filestable #fileList tr.hidden-file,
+.hide-hidden-files #filestable #fileList tr.hidden-file.dragging {
+ display: none;
+}
+
+#fileList tr.animate-opacity {
+ -webkit-transition: opacity 250ms;
+ -moz-transition: opacity 250ms;
+ -o-transition: opacity 250ms;
+ transition: opacity 250ms;
+}
+
+#fileList tr.dragging {
+ opacity: 0.2;
+}
+
+table td.filename .nametext .innernametext {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ position: relative;
+ vertical-align: top;
+}
+
+/* for smaller resolutions - see mobile.css */
+table td.filename .uploadtext {
+ position: absolute;
+ font-weight: normal;
+ margin-left: 50px;
+ left: 0;
+ bottom: 0;
+ height: 20px;
+ padding: 0 4px;
+ padding-left: 1px;
+ font-size: 11px;
+ line-height: 22px;
+ color: var(--color-text-maxcontrast);
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+table td.selection {
+ padding: 0;
+}
+
+/* File checkboxes */
+#fileList tr td.selection > .selectCheckBox + label:before {
+ opacity: 0.3;
+ margin-right: 0;
+}
+
+/* Show checkbox with full opacity when hovering, checked, or selected */
+#fileList tr:hover td.selection > .selectCheckBox + label:before,
+#fileList tr:focus td.selection > .selectCheckBox + label:before,
+#fileList tr td.selection > .selectCheckBox:checked + label:before,
+#fileList tr.selected td.selection > .selectCheckBox + label:before {
+ opacity: 1;
+}
+
+/* Show checkbox with half opacity when selecting range */
+#fileList tr.halfselected td.selection > .selectCheckBox + label:before {
+ opacity: 0.5;
+}
+
+/* Use label to have bigger clickable size for checkbox */
+#fileList tr td.selection > .selectCheckBox + label,
+.select-all + label {
+ padding: 16px;
+}
+#fileList tr td.selection > .selectCheckBox:focus + label,
+.select-all:focus + label {
+ background-color: var(--color-background-hover);
+ border-radius: var(--border-radius-pill);
+ outline: none !important;
+ border: 2px solid var(--color-primary) !important;
+ padding: 14px;
+}
+
+#fileList tr td.selection > .selectCheckBox:focus-visible + label,
+.select-all:focus-visible + label {
+ outline-offset: 0px;
+}
+
+#fileList tr td.filename {
+ position: relative;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+ -webkit-transition: background-image 500ms;
+ -moz-transition: background-image 500ms;
+ -o-transition: background-image 500ms;
+ transition: background-image 500ms;
+}
+
+#fileList tr td.filename a.name label,
+#fileList tr td.filename p.name label {
+ position: absolute;
+ width: 80%;
+ height: 50px;
+}
+
+#fileList tr td.filename .favorite {
+ display: inline-block;
+ float: left;
+}
+
+#fileList tr td.filename .favorite-mark {
+ position: absolute;
+ display: block;
+ top: -6px;
+ right: -6px;
+ line-height: 100%;
+ text-align: center;
+}
+
+#uploadsize-message, #delete-confirm {
+ display: none;
+}
+
+/* File actions */
+.fileactions {
+ z-index: 50;
+}
+
+.busy .fileactions, .busy .action {
+ visibility: hidden;
+}
+
+/* fix position of bubble pointer for Files app */
+.bubble,
+#app-navigation .app-navigation-entry-menu {
+ border-top-right-radius: 3px;
+ min-width: 100px;
+}
+
+/* force show the loading icon, not only on hover */
+#fileList .icon-loading-small {
+ opacity: 1 !important;
+ display: inline !important;
+}
+
+#fileList .action.action-share-notification span, #fileList a.name {
+ cursor: default !important;
+}
+
+/*
+ * Make the disabled link look not like a link in file list rows
+ */
+#fileList a.name.disabled * {
+ cursor: default;
+}
+#fileList a.name.disabled a, #fileList a.name.disabled a * {
+ cursor: pointer;
+}
+#fileList a.name.disabled:focus {
+ background: none;
+}
+
+a.action > img {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+}
+
+/* Actions for selected files */
+.selectedActions {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.selectedActions.hidden {
+ display: none;
+}
+
+.selectedActions a {
+ display: inline;
+ line-height: 50px;
+ padding: 16px 5px;
+}
+
+.selectedActions a.hidden {
+ display: none;
+}
+
+.selectedActions a img {
+ position: relative;
+ vertical-align: text-bottom;
+ margin-bottom: -1px;
+}
+
+.selectedActions .actions-selected .icon-more {
+ margin-top: -3px;
+}
+
+#fileList td a a.action {
+ display: inline;
+ padding: 17px 8px;
+ line-height: 50px;
+ opacity: 0.3;
+}
+#fileList td a a.action.action-share {
+ padding: 17px 14px;
+}
+#fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared + span {
+ /* hide text of the share action */
+ /* .hidden-visually for accessbility */
+ position: absolute;
+ left: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
+#fileList td a a.action.action-share .avatar {
+ display: inline-block;
+ vertical-align: middle;
+}
+#fileList td a a.action.action-menu {
+ padding-top: 17px;
+ padding-bottom: 17px;
+ padding-left: 14px;
+ padding-right: 14px;
+}
+#fileList td a a.action.no-permission:hover, #fileList td a a.action.no-permission:focus {
+ opacity: 0.3;
+}
+#fileList td a a.action.disabled:hover, #fileList td a a.action.disabled:focus,
+#fileList td a a.action.disabled img {
+ opacity: 0.3;
+}
+#fileList td a a.action.disabled.action-download {
+ opacity: 0.7;
+}
+#fileList td a a.action.disabled.action-download:hover, #fileList td a a.action.disabled.action-download:focus {
+ opacity: 0.7;
+}
+#fileList td a a.action:hover, #fileList td a a.action:focus {
+ opacity: 1;
+}
+#fileList td a a.action:focus {
+ background-color: var(--color-background-hover);
+ border-radius: var(--border-radius-pill);
+}
+#fileList td a .fileActionsMenu a.action, #fileList td a a.action.action-share.shared-style {
+ opacity: 0.7;
+}
+#fileList td a .fileActionsMenu .action.permanent {
+ opacity: 1;
+}
+
+#fileList .action.action-share.permanent.shared-style span:not(.icon) {
+ display: inline-block;
+ max-width: 70px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ vertical-align: middle;
+ margin-left: 6px;
+}
+
+#fileList .remoteAddress .userDomain {
+ margin-left: 0 !important;
+}
+
+#fileList .favorite-mark.permanent {
+ opacity: 1;
+}
+
+#fileList .fileActionsMenu a.action:hover,
+#fileList .fileActionsMenu a.action:focus,
+#fileList a.action.action-share.shared-style:hover,
+#fileList a.action.action-share.shared-style:focus {
+ opacity: 1;
+}
+
+#fileList tr a.action.disabled {
+ background: none;
+}
+
+#selectedActionsList a.download.disabled,
+#fileList tr a.action.action-download.disabled {
+ color: #000000;
+}
+
+#fileList tr:hover a.action.disabled:hover * {
+ cursor: default;
+}
+
+.summary {
+ color: var(--color-text-maxcontrast);
+ /* add whitespace to bottom of files list to correctly show dropdowns */
+ height: 330px;
+}
+
+#filestable .filesummary {
+ width: 100%;
+ /* Width of checkbox and file preview */
+ padding-left: 101px;
+}
+
+/* Less whitespace needed on link share page
+ * as there is a footer and action menus have fewer entries.
+ */
+#body-public .summary {
+ height: 180px;
+}
+
+.summary:hover,
+.summary:focus,
+.summary,
+table tr.summary td {
+ background-color: transparent;
+}
+
+.summary td {
+ border-bottom: none;
+ vertical-align: top;
+ padding-top: 20px;
+}
+
+.summary td:first-child {
+ padding: 0;
+}
+
+.hiddeninfo {
+ white-space: pre-line;
+}
+
+table.dragshadow {
+ width: auto;
+ z-index: 2000;
+}
+
+table.dragshadow td.filename {
+ padding-left: 60px;
+ padding-right: 16px;
+ height: 36px;
+ /* Override "max-width: 0" to prevent file name and size from overlapping */
+ max-width: unset;
+}
+
+table.dragshadow td.size {
+ padding-right: 8px;
+}
+
+.mask {
+ z-index: 50;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: var(--color-main-background);
+ background-repeat: no-repeat no-repeat;
+ background-position: 50%;
+ opacity: 0.7;
+ transition: opacity 100ms;
+ -moz-transition: opacity 100ms;
+ -o-transition: opacity 100ms;
+ -ms-transition: opacity 100ms;
+ -webkit-transition: opacity 100ms;
+}
+
+.mask.transparent {
+ opacity: 0;
+}
+
+.newFileMenu {
+ font-weight: 300;
+ top: 100%;
+ left: -48px !important;
+ margin-top: 4px;
+ min-width: 100px;
+ z-index: 1001;
+ /* Center triangle */
+}
+.newFileMenu::after {
+ left: 57px !important;
+}
+
+#filestable .filename .action .icon,
+#filestable .selectedActions a .icon,
+#filestable .filename .favorite-mark .icon,
+#controls .actions .button .icon {
+ display: inline-block;
+ vertical-align: middle;
+ background-size: 16px 16px;
+}
+
+#filestable .filename .favorite-mark .icon-star {
+ background-image: none;
+}
+#filestable .filename .favorite-mark .icon-starred {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-star-dark-yellow);
+}
+
+#filestable .filename .action .icon.hidden,
+#filestable .selectedActions a .icon.hidden,
+#controls .actions .button .icon.hidden {
+ display: none;
+}
+
+#filestable .filename .action .icon.loading,
+#filestable .selectedActions a .icon.loading,
+#controls .actions .button .icon.loading {
+ width: 15px;
+ height: 15px;
+}
+
+.app-files .actions .button.new {
+ position: relative;
+}
+
+.breadcrumb .icon-home {
+ border-radius: var(--border-radius);
+}
+
+.breadcrumb .canDrop > a,
+#filestable tbody tr.canDrop {
+ background-color: rgba(0, 130, 201, 0.3);
+}
+
+.dropzone-background {
+ background-color: rgba(0, 130, 201, 0.3);
+}
+.dropzone-background :hover {
+ box-shadow: none !important;
+}
+
+.notCreatable {
+ margin-left: 12px;
+ margin-right: 44px;
+ margin-top: 12px;
+ color: var(--color-main-text);
+ overflow: auto;
+ min-width: 160px;
+ height: 54px;
+}
+.notCreatable:not(.hidden) {
+ display: flex;
+}
+.notCreatable .icon-alert-outline {
+ top: -15px;
+ position: relative;
+ margin-right: 4px;
+}
+
+#quota {
+ margin: 0 !important;
+ border: none;
+ border-radius: 0;
+ background-color: transparent;
+ z-index: 1;
+}
+#quota > a[href="#"], #quota > a[href="#"] * {
+ cursor: default !important;
+}
+#quota .quota-container {
+ height: 5px;
+ border-radius: var(--border-radius);
+}
+#quota .quota-container div {
+ height: 100%;
+ background-color: var(--color-primary);
+}
+
+#quotatext {
+ padding: 0;
+ height: 30px;
+ line-height: 30px;
+}
+
+/* GRID */
+#filestable.view-grid:not(.hidden) {
+ /* HEADER and MULTISELECT */
+ /* MAIN FILE LIST */
+ /* Center align the footer file number & size summary */
+}
+#filestable.view-grid:not(.hidden) thead tr {
+ display: block;
+ border-bottom: 1px solid var(--color-border);
+ background-color: var(--color-main-background-translucent);
+}
+#filestable.view-grid:not(.hidden) thead tr th {
+ width: auto;
+ border: none;
+}
+#filestable.view-grid:not(.hidden) tbody {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 160px);
+ justify-content: space-around;
+ row-gap: 15px;
+ margin: 15px 0;
+}
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) {
+ display: block;
+ position: relative;
+ height: 190px;
+ border-radius: var(--border-radius);
+}
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted {
+ background-color: transparent;
+}
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions {
+ background-color: var(--color-background-hover);
+}
+#filestable.view-grid:not(.hidden) tbody td {
+ display: inline;
+ border-bottom: none;
+ /* No space for filesize and date in grid view */
+ /* Position actions menu below file */
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper {
+ min-width: 0;
+ max-width: none;
+ position: absolute;
+ width: 160px;
+ height: 160px;
+ padding: 14px;
+ top: 0;
+ left: 0;
+ z-index: -1;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail {
+ width: calc(100% - 2 * 14px);
+ height: calc(100% - 2 * 14px);
+ background-size: contain;
+ margin: 0;
+ border-radius: var(--border-radius);
+ background-repeat: no-repeat;
+ background-position: center;
+ /* Position favorite star related to checkbox to left and 3-dot menu below
+ * Position is inherited from the selection while in grid view
+ */
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark {
+ padding: 14px;
+ left: auto;
+ top: -22px;
+ right: -22px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .uploadtext {
+ width: 100%;
+ margin: 0;
+ top: 0;
+ bottom: auto;
+ height: 28px;
+ padding-top: 4px;
+ padding-left: 28px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name {
+ height: 100%;
+ border-radius: var(--border-radius);
+ overflow: hidden;
+ cursor: pointer !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext {
+ display: flex;
+ height: 44px;
+ margin-top: 146px;
+ text-align: center;
+ line-height: 44px;
+ padding: 0;
+ /* No space for extension in grid view */
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext {
+ display: inline-block;
+ text-align: center;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before {
+ content: "";
+ flex: 1;
+ min-width: 14px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after {
+ content: "";
+ flex: 1;
+ min-width: 44px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions {
+ height: initial;
+ margin-top: 146px;
+ display: flex;
+ align-items: center;
+ position: absolute;
+ right: 0;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action {
+ padding: 14px;
+ width: 44px;
+ height: 44px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu) {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden {
+ display: block !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img {
+ padding: 6px;
+ border-radius: 50%;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden {
+ display: block !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden {
+ display: block !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename form {
+ padding: 3px 14px;
+ border-radius: var(--border-radius);
+}
+#filestable.view-grid:not(.hidden) tbody td.filename form input.filename {
+ width: 100%;
+ margin-left: 0;
+}
+#filestable.view-grid:not(.hidden) tbody td.filesize, #filestable.view-grid:not(.hidden) tbody td.date {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tbody td.selection, #filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark {
+ position: absolute;
+ top: -8px;
+ left: -8px;
+ display: flex;
+ width: 44px;
+ height: 44px;
+ z-index: 10;
+ background: transparent;
+}
+#filestable.view-grid:not(.hidden) tbody td.selection label, #filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label {
+ width: 44px;
+ height: 44px;
+ display: inline-flex;
+ padding: 14px;
+}
+#filestable.view-grid:not(.hidden) tbody td.selection label::before, #filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before {
+ margin: 0;
+ width: 14px;
+ height: 14px;
+}
+#filestable.view-grid:not(.hidden) tbody td .popovermenu {
+ left: 0;
+ width: 150px;
+ margin: 0 5px;
+ /* Ellipsize long entries, normally menu width is adjusted but for grid we use fixed width. */
+}
+#filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon) {
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+#filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension {
+ display: block;
+}
+#filestable.view-grid:not(.hidden) tfoot {
+ display: grid;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) {
+ display: inline-block;
+ margin: 0 auto;
+ height: 418px;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td {
+ padding-top: 50px;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child, #filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info {
+ margin-left: 0;
+}
+
+/* Grid view toggle */
+#view-toggle {
+ background-color: transparent;
+ border: none;
+ margin: 0;
+ padding: 22px;
+ opacity: 0.5;
+ position: fixed;
+ right: 0;
+ z-index: 100;
+}
+#view-toggle:hover, #view-toggle:focus, #showgridview:focus + #view-toggle {
+ opacity: 1;
+}
+#view-toggle:focus-visible, #showgridview:focus-visible + #view-toggle {
+ box-shadow: inset 0 0 0 2px var(--color-primary) !important;
+}
+
+/**
+ * Make sure the hidden input is always
+ * on the visible scrolled area of the
+ * page to avoid scrolling to top when focusing
+ */
+#showgridview {
+ position: fixed;
+ top: 0;
+}
+
+/* Adjustments for link share page */
+#body-public {
+ /* Right-align view toggle on link share page */
+}
+#body-public #filestable.view-grid:not(.hidden) tbody td {
+ /* More space for filename since there is no share icon */
+ /* Position actions menu correctly below 3-dot-menu */
+}
+#body-public #filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext {
+ max-width: 124px;
+}
+#body-public #filestable.view-grid:not(.hidden) tbody td .popovermenu {
+ left: -80px;
+}
+#body-public #view-toggle {
+ position: absolute;
+ right: 0;
+}
+
+/* Hide legacy Gallery toggle */
+#gallery-button {
+ display: none;
+}
+
+#tag_multiple_files_container {
+ overflow: hidden;
+ background-color: #fff;
+ border-radius: 3px;
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ margin-bottom: 10px;
+}
+#tag_multiple_files_container h3 {
+ width: 100%;
+ padding: 0 18px;
+}
+#tag_multiple_files_container .systemTagsInputFieldContainer {
+ flex: 1 1 80%;
+ min-width: 0;
+ margin: 0 12px;
+}
+
+/*# sourceMappingURL=files.css.map */
diff --git a/apps/files/css/files.css.map b/apps/files/css/files.css.map
new file mode 100644
index 00000000000..c293e1cf815
--- /dev/null
+++ b/apps/files/css/files.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","files.scss","../../../core/css/functions.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ADxCA;AACA;EACC;EACA;EACA;EACA;;;AAED;EAAoD;EAAU;;;AAC9D;EAAqB;;;AACrB;AAAA;EAEC;;;AAED;EACC;;;AAGD;EACC;EACA;EACA;;AACA;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAGD;EACC;EACA;EAEA,KDoCc;EClCd;EACA;EACA;;AAMD;EACC;EACA;;AAEA;AAAA;EAEC;;AAEA;AAAA;EACC;;;AAMJ;EACC;;;AAGD;AACA;EACC;EACA;;;AAGD;EAGC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;AClEC;EAEA;;;ADmED;ACrEC;EAEA;;;ADsED;ACxEC;EAEA;;;ADyED;AAAA;AAAA;AAAA;AC3EC;EAEA;;;AD+ED;ACjFC;EAEA;;;ADkFD;ACpFC;EAEA;;;ADqFD;ACvFC;EAEA;;;ADwFD;AC1FC;EAEA;;;AD2FD;AC7FC;EAEA;;;AD8FD;AChGC;EAEA;;;ADkGD;EACC;;;AAED;AACA;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAED;AAAA;AAAA;AAAA;AAAA;EAKC;;;AAED;AAAA;AAAA;AAAA;AAAA;EAKC;;;AAGD;EAAU;;;AAEV;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;AAAA;AAAA;AAAA;EAIC;EACA;;;AAGD;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;;AAGF;EACC;EACA;;;AAED;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;AAAA;AAAA;AAAA;EAIC;;;AAED;EACC;;;AAED;AAAA;EAEC;;;AAGD;AAAA;EAEC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;AAAe;EACf;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAED;EACC;;;AAED;AAAA;EAEC;EACA;EACA;AACA;EACA;EACA;;;AAGD;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;AAAe;;;AAEhB;EACC;;;AAGD;AAAA;AAAA;EAGC;EACA;;;AAED;AAAA;EAEC;EACA;AAAmB;EACnB;EACA;EACA;EACA;EACA;;;AAED;AACC;EACA;EACA;EACA;EACA;;;AAGA;EACC;;AAED;EACC;;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAID;EACC;;;AAGD;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;;;AAGD;EAA6H;;;AAC7H;EAAwE;EAAY;;;AAEpF;EACC;EACA;EACA;EACA;;;AAGD;AAEC;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKH;AAAA;EAEC;;;AAGD;EACC;EACA;EACA;EACA;;;AAED;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;AAEA;EACC;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;EACC;;;AAGD;AAGC;AAAA;EACC;;AAGD;AAAA;EACC;EACA;EACA;EACA;EACA;;;AAIF;AAAA;EAEC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EAA2C;EAAwC;EAAsC;;;AAG1H;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsC;;;AAEtC;AACA;EACC;;;AAGD;EACC;;;AAGD;AACA;AAAA;EAEC;EACA;;;AAGD;AACA;EACC;EACA;;;AAGD;EACC;;;AAGD;AAAA;AAAA;AAIC;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;EACA;EACA;;;AAGD;AACA;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACC;EACA;EACA;;;AAGD;EACC;;;AAED;EACC;EACA;EACA;;;AAGD;EACC;;;AAIA;EACC;EACA;EACA;EACA;;AACA;EACC;;AACA;AACC;AACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAGF;EACC;EACA;EACA;EACA;;AAGA;EACC;;AAID;AAAA;EAEC;;AAED;EACC;;AACA;EACC;;AAIH;EACC;;AAED;EACC;EACA;;AAGF;EACC;;AAED;EACC;;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;AAAA;AAAA;EAKC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;AACA;EAEA;;;AAED;EACC;AACA;EACA;;;AAED;AAAA;AAAA;AAGA;EACC;;;AAED;AAAA;AAAA;AAAA;EAIC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAGD;EACC;EACA;;;AAED;EACC;EACA;EACA;AAEA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACC;;;AAIF;AAAA;AAAA;AAAA;EAIC;EACA;EACA;;;AAMA;EACC;;AAED;AChwBA;EAEA;;;ADmwBD;AAAA;AAAA;EAGC;;;AAGD;AAAA;AAAA;EAGC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAED;EACC;;AACA;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAIC;EACC;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;;AAKH;EACC;EACA;EACA;;;AAGD;AACA;AAIC;AAaA;AAoOA;;AA/OC;EACC;EACA;EACA;;AACA;EACC;EACA;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;;AAEA;AAAA;EAKC;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGC;;AAKH;EACC;EACA;AAmJA;AA8BA;;AA9KC;EACC;EACA;EACA;EACA,OAvDQ;EAwDR,QAxDQ;EAyDR,SAxDO;EAyDP;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACC,SA1EK;EA2EL;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;EAEA;EACA;EAEA;;AAGD;EACC;EACA;EAIA;EAKA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;AAoBA;;AAlBA;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAID;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,SApJK;EAqJL;EACA;EACA;EACA;EACA;;AAGA;EACC;;AAQH;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAMH;EAEC;;AAGD;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,SAvNO;;AAwNP;EACC;EACA,OA1NM;EA2NN,QA3NM;;AAiOT;EACC;EACA;EACA;AAEA;;AACA;EACC;EACA;;AAMJ;EACC;;AAID;EACC;;AAEA;EACC;EACA;EAEA;;AAEA;EACC;;AAEA;EAEC;;AAGD;EACI;;;AAOR;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGC;;AAGD;EAEC;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;EACA;;;AAGD;AACA;AAaC;;AAZA;AACC;AAKA;;AAJA;EACC;;AAID;EACC;;AAKF;EACC;EACA;;;AAIF;AACA;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA","file":"files.css"} \ No newline at end of file
diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss
index 2c9be4ef3fe..b77c6ca2bd1 100644
--- a/apps/files/css/files.scss
+++ b/apps/files/css/files.scss
@@ -5,6 +5,8 @@
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file.
*/
+@use 'variables';
+@import 'functions';
/* FILE MENU */
.actions {
@@ -66,9 +68,8 @@
thead {
position: -webkit-sticky;
position: sticky;
- @include position('sticky');
// header + breadcrumbs
- top: $header-height;
+ top: variables.$header-height;
// under breadcrumbs, over file list
z-index: 60;
display: block;
@@ -127,37 +128,37 @@
/* icons for sidebar */
.nav-icon-files {
- @include icon-color('folder', 'files', $color-black);
+ @include icon-color('folder', 'files', variables.$color-black);
}
.nav-icon-recent {
- @include icon-color('recent', 'files', $color-black);
+ @include icon-color('recent', 'files', variables.$color-black);
}
.nav-icon-favorites {
- @include icon-color('star-dark', 'actions', $color-black, 2, true);
+ @include icon-color('starred', 'actions', variables.$color-black, 2, true);
}
.nav-icon-sharingin,
.nav-icon-sharingout,
.nav-icon-pendingshares,
.nav-icon-shareoverview {
- @include icon-color('share', 'files', $color-black);
+ @include icon-color('share', 'files', variables.$color-black);
}
.nav-icon-sharinglinks {
- @include icon-color('public', 'files', $color-black);
+ @include icon-color('public', 'files', variables.$color-black);
}
.nav-icon-extstoragemounts {
- @include icon-color('external', 'files', $color-black);
+ @include icon-color('external', 'files', variables.$color-black);
}
.nav-icon-trashbin {
- @include icon-color('delete', 'files', $color-black);
+ @include icon-color('delete', 'files', variables.$color-black);
}
.nav-icon-trashbin-starred {
@include icon-color('delete', 'files', #ff0000);
}
.nav-icon-deletedshares {
- @include icon-color('unshare', 'files', $color-black);
+ @include icon-color('unshare', 'files', variables.$color-black);
}
.nav-icon-favorites-starred {
- @include icon-color('star-dark', 'actions', $color-yellow, 2, true);
+ @include icon-color('starred', 'actions', variables.$color-yellow, 2, true);
}
#app-navigation .nav-files a.nav-icon-files {
@@ -231,6 +232,9 @@ table th .columntitle {
box-sizing: border-box;
-moz-box-sizing: border-box;
vertical-align: middle;
+ &:focus-visible {
+ border-radius: 2px;
+ }
}
table.multiselect th .columntitle {
display: inline-block;
@@ -506,6 +510,9 @@ table td.selection {
&:focus + label {
background-color: var(--color-background-hover);
border-radius: var(--border-radius-pill);
+ outline: none !important;
+ border: 2px solid var(--color-primary) !important;
+ padding: 14px;
}
}
@@ -823,7 +830,7 @@ table.dragshadow td.size {
background-image: none;
}
& .icon-starred {
- @include icon-color('star-dark', 'actions', $color-yellow, 1, true);
+ @include icon-color('star-dark', 'actions', variables.$color-yellow, 1, true);
}
}
@@ -844,12 +851,16 @@ table.dragshadow td.size {
position: relative;
}
+.breadcrumb .icon-home {
+ border-radius: var(--border-radius);
+}
+
.breadcrumb .canDrop > a,
#filestable tbody tr.canDrop {
- background-color: rgba( $color-primary, .3 );
+ background-color: rgba( variables.$color-primary, .3 );
}
.dropzone-background {
- background-color: rgba( $color-primary, .3 );
+ background-color: rgba( variables.$color-primary, .3 );
:hover{
box-shadow: none !important;
}
@@ -884,7 +895,6 @@ table.dragshadow td.size {
> a[href='#'] {
// if no link is set, no mouse feedback
- box-shadow: none !important;
&, * {
cursor: default !important;
}
@@ -1195,6 +1205,11 @@ table.dragshadow td.size {
#showgridview:focus + & {
opacity: 1;
}
+
+ &:focus-visible,
+ #showgridview:focus-visible + & {
+ box-shadow: inset 0 0 0 2px var(--color-primary) !important;
+ }
}
/**
diff --git a/apps/files/css/merged.css b/apps/files/css/merged.css
new file mode 100644
index 00000000000..1480d084f2c
--- /dev/null
+++ b/apps/files/css/merged.css
@@ -0,0 +1,1841 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
+ * @copyright Copyright (c) 2019, Fabian Dreßler <nudelsalat@clouz.de>
+ *
+ * This file is licensed under the Affero General Public License version 3 or later.
+ * See the COPYING-README file.
+ */
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @see core/src/icons.js
+ */
+/**
+ * SVG COLOR API
+ *
+ * @param string $icon the icon filename
+ * @param string $dir the icon folder within /core/img if $core or app name
+ * @param string $color the desired color in hexadecimal
+ * @param int $version the version of the file
+ * @param bool [$core] search icon in core
+ *
+ * @returns A background image with the url to the set to the requested icon.
+ */
+/* FILE MENU */
+.actions {
+ padding: 5px;
+ height: 100%;
+ display: inline-block;
+ float: left;
+}
+
+.actions input, .actions button, .actions .button {
+ margin: 0;
+ float: left;
+}
+
+.actions .button a {
+ color: #555;
+}
+
+.actions .button a:hover,
+.actions .button a:focus {
+ background-color: var(--color-background-hover);
+}
+
+.actions .button a:active {
+ background-color: var(--color-primary-light);
+}
+
+.actions.creatable {
+ position: relative;
+ display: flex;
+ flex: 1 1;
+}
+.actions.creatable .button:not(:last-child) {
+ margin-right: 3px;
+}
+
+.actions.hidden {
+ display: none;
+}
+
+#trash {
+ margin-right: 8px;
+ float: right;
+ z-index: 1010;
+ padding: 10px;
+ font-weight: normal;
+}
+
+.newFileMenu .error,
+.newFileMenu .error + .icon-confirm,
+#fileList .error {
+ color: var(--color-error);
+ border-color: var(--color-error);
+}
+
+/* FILE TABLE */
+#filestable {
+ position: relative;
+ width: 100%;
+ min-width: 250px;
+ display: block;
+ flex-direction: column;
+ /**
+ * This is a dirty hack as the sticky header requires us to use a different display type on the table element
+ */
+}
+#emptycontent:not(.hidden) ~ #filestable {
+ display: none;
+}
+#filestable thead {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 50px;
+ z-index: 60;
+ display: block;
+ background-color: var(--color-main-background-translucent);
+}
+#filestable tbody {
+ display: table;
+ width: 100%;
+}
+#filestable tbody tr[data-permissions="0"],
+#filestable tbody tr[data-permissions="16"] {
+ background-color: var(--color-background-dark);
+}
+#filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,
+#filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext {
+ color: var(--color-text-maxcontrast);
+}
+
+#filestable.hidden {
+ display: none;
+}
+
+/* fit app list view heights */
+.app-files #app-content > .viewcontainer {
+ min-height: 0%;
+ width: 100%;
+}
+
+.app-files #app-content {
+ width: calc(100% - 300px);
+}
+
+.file-drag, .file-drag #filestable tbody tr, .file-drag #filestable tbody tr:hover {
+ background-color: var(--color-primary-light) !important;
+}
+
+.app-files #app-content.dir-drop {
+ background-color: var(--color-main-background) !important;
+}
+
+.file-drag #filestable tbody tr, .file-drag #filestable tbody tr:hover {
+ background-color: transparent !important;
+}
+
+.app-files #app-content.dir-drop #filestable tbody tr.dropping-to-dir {
+ background-color: var(--color-primary-light) !important;
+}
+
+/* icons for sidebar */
+.nav-icon-files {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-folder-dark);
+}
+
+.nav-icon-recent {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-recent-dark);
+}
+
+.nav-icon-favorites {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-starred-dark);
+}
+
+.nav-icon-sharingin,
+.nav-icon-sharingout,
+.nav-icon-pendingshares,
+.nav-icon-shareoverview {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-share-dark);
+}
+
+.nav-icon-sharinglinks {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-public-dark);
+}
+
+.nav-icon-extstoragemounts {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-external-dark);
+}
+
+.nav-icon-trashbin {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-delete-dark);
+}
+
+.nav-icon-trashbin-starred {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-delete-#ff0000);
+}
+
+.nav-icon-deletedshares {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-unshare-dark);
+}
+
+.nav-icon-favorites-starred {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-starred-yellow);
+}
+
+#app-navigation .nav-files a.nav-icon-files {
+ width: auto;
+}
+
+/* button needs overrides due to navigation styles */
+#app-navigation .nav-files a.new {
+ width: 40px;
+ height: 32px;
+ padding: 0 10px;
+ margin: 0;
+ cursor: pointer;
+}
+
+#app-navigation .nav-files a.new.hidden {
+ display: none;
+}
+
+#app-navigation .nav-files a.new.disabled {
+ opacity: 0.3;
+}
+
+#filestable tbody tr {
+ height: 51px;
+}
+
+#filestable tbody tr:hover,
+#filestable tbody tr:focus,
+#filestable tbody .name:focus,
+#filestable tbody tr:hover .filename form,
+table tr.mouseOver td {
+ background-color: var(--color-background-hover);
+}
+
+#filestable tbody tr:active,
+#filestable tbody tr.highlighted,
+#filestable tbody tr.highlighted .name:focus,
+#filestable tbody tr.selected,
+#filestable tbody tr.searchresult {
+ background-color: var(--color-primary-light);
+}
+
+tbody a {
+ color: var(--color-main-text);
+}
+
+span.conflict-path, span.extension, span.uploading, td.date {
+ color: var(--color-text-maxcontrast);
+}
+
+span.conflict-path, span.extension {
+ -webkit-transition: opacity 300ms;
+ -moz-transition: opacity 300ms;
+ -o-transition: opacity 300ms;
+ transition: opacity 300ms;
+ vertical-align: top;
+}
+
+tr:hover span.conflict-path,
+tr:focus span.conflict-path,
+tr:hover span.extension,
+tr:focus span.extension {
+ opacity: 1;
+ color: var(--color-text-maxcontrast);
+}
+
+table th, table th a {
+ color: var(--color-text-maxcontrast);
+}
+
+table.multiselect th a {
+ color: var(--color-main-text);
+}
+
+table th .columntitle {
+ display: block;
+ padding: 15px;
+ height: 50px;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ vertical-align: middle;
+}
+table th .columntitle:focus-visible {
+ border-radius: 2px;
+}
+
+table.multiselect th .columntitle {
+ display: inline-block;
+ margin-right: -20px;
+}
+
+table th .columntitle.name {
+ padding-left: 0;
+ margin-left: 44px;
+}
+
+table.multiselect th .columntitle.name {
+ margin-left: 0;
+}
+
+table th .sort-indicator {
+ width: 10px;
+ height: 8px;
+ margin-left: 5px;
+ display: inline-block;
+ vertical-align: text-bottom;
+ opacity: 0.3;
+}
+
+.sort-indicator.hidden,
+.multiselect .sort-indicator,
+table.multiselect th:hover .sort-indicator.hidden,
+table.multiselect th:focus .sort-indicator.hidden {
+ visibility: hidden;
+}
+
+.multiselect .sort, .multiselect .sort span {
+ cursor: default;
+}
+
+table th:hover .sort-indicator.hidden,
+table th:focus .sort-indicator.hidden {
+ visibility: visible;
+}
+
+table th,
+table td {
+ border-bottom: 1px solid var(--color-border);
+ text-align: left;
+ font-weight: normal;
+}
+
+table td {
+ padding: 0 15px;
+ font-style: normal;
+ background-position: 8px center;
+ background-repeat: no-repeat;
+}
+
+table th#headerName {
+ position: relative;
+ width: 9999px;
+ /* not really sure why this works better than 100% … table styling */
+ padding: 0;
+}
+
+#headerName-container {
+ position: relative;
+ height: 50px;
+}
+
+table th#headerSelection {
+ padding-top: 2px;
+}
+
+table th#headerSize, table td.filesize {
+ text-align: right;
+}
+
+table th#headerDate, table td.date,
+table th.column-last, table td.column-last {
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ position: relative;
+ /* this can not be just width, both need to be set … table styling */
+ min-width: 130px;
+ max-width: 130px;
+}
+
+#app-content-files thead,
+#app-content-trashbin thead {
+ top: 94px;
+}
+
+#app-content-recent,
+#app-content-favorites,
+#app-content-shareoverview,
+#app-content-sharingout,
+#app-content-sharingin,
+#app-content-sharinglinks,
+#app-content-deletedshares,
+#app-content-pendingshares {
+ margin-top: 22px;
+}
+
+table.multiselect thead th {
+ background-color: var(--color-main-background-translucent);
+ font-weight: bold;
+}
+
+#app-content.with-app-sidebar table.multiselect thead {
+ margin-right: 27%;
+}
+
+table.multiselect #headerName {
+ position: relative;
+ width: 9999px;
+ /* when we use 100%, the styling breaks on mobile … table styling */
+}
+
+table.multiselect #modified {
+ display: none;
+}
+
+table td.selection,
+table th.selection,
+table td.fileaction {
+ width: 32px;
+ text-align: center;
+}
+
+table td.filename a.name,
+table td.filename p.name {
+ display: flex;
+ position: relative;
+ /* Firefox needs to explicitly have this default set … */
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ height: 50px;
+ line-height: 50px;
+ padding: 0;
+}
+
+table td.filename .thumbnail-wrapper {
+ /* we need this to make sure flex is working inside a table cell */
+ width: 0;
+ min-width: 50px;
+ max-width: 50px;
+ height: 50px;
+}
+
+table td.filename .thumbnail-wrapper.icon-loading-small:after {
+ z-index: 10;
+}
+table td.filename .thumbnail-wrapper.icon-loading-small .thumbnail {
+ opacity: 0.2;
+}
+
+table td.filename .thumbnail {
+ display: inline-block;
+ width: 32px;
+ height: 32px;
+ background-size: 32px;
+ margin-left: 9px;
+ margin-top: 9px;
+ border-radius: var(--border-radius);
+ cursor: pointer;
+ position: absolute;
+ z-index: 4;
+}
+
+table td.filename p.name .thumbnail {
+ cursor: default;
+}
+
+table tr[data-has-preview=true] .thumbnail {
+ border: 1px solid var(--color-border);
+}
+
+table td.filename input.filename {
+ width: 70%;
+ margin-left: 48px;
+ cursor: text;
+}
+
+table td.filename form {
+ margin-top: -40px;
+ position: relative;
+ top: -6px;
+}
+
+table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete {
+ padding: 3px 8px 8px 3px;
+}
+
+table td.filename .nametext, .modified, .column-last > span:first-child {
+ float: left;
+ padding: 15px 0;
+}
+
+.modified, .column-last > span:first-child {
+ position: relative;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 110px;
+}
+
+/* TODO fix usability bug (accidental file/folder selection) */
+table td.filename {
+ max-width: 0;
+}
+table td.filename .nametext {
+ width: 0;
+ flex-grow: 1;
+ display: flex;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ height: 100%;
+ z-index: 10;
+ padding: 0 20px 0 0;
+}
+
+.hide-hidden-files #filestable #fileList tr.hidden-file,
+.hide-hidden-files #filestable #fileList tr.hidden-file.dragging {
+ display: none;
+}
+
+#fileList tr.animate-opacity {
+ -webkit-transition: opacity 250ms;
+ -moz-transition: opacity 250ms;
+ -o-transition: opacity 250ms;
+ transition: opacity 250ms;
+}
+
+#fileList tr.dragging {
+ opacity: 0.2;
+}
+
+table td.filename .nametext .innernametext {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ position: relative;
+ vertical-align: top;
+}
+
+/* for smaller resolutions - see mobile.css */
+table td.filename .uploadtext {
+ position: absolute;
+ font-weight: normal;
+ margin-left: 50px;
+ left: 0;
+ bottom: 0;
+ height: 20px;
+ padding: 0 4px;
+ padding-left: 1px;
+ font-size: 11px;
+ line-height: 22px;
+ color: var(--color-text-maxcontrast);
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+table td.selection {
+ padding: 0;
+}
+
+/* File checkboxes */
+#fileList tr td.selection > .selectCheckBox + label:before {
+ opacity: 0.3;
+ margin-right: 0;
+}
+
+/* Show checkbox with full opacity when hovering, checked, or selected */
+#fileList tr:hover td.selection > .selectCheckBox + label:before,
+#fileList tr:focus td.selection > .selectCheckBox + label:before,
+#fileList tr td.selection > .selectCheckBox:checked + label:before,
+#fileList tr.selected td.selection > .selectCheckBox + label:before {
+ opacity: 1;
+}
+
+/* Show checkbox with half opacity when selecting range */
+#fileList tr.halfselected td.selection > .selectCheckBox + label:before {
+ opacity: 0.5;
+}
+
+/* Use label to have bigger clickable size for checkbox */
+#fileList tr td.selection > .selectCheckBox + label,
+.select-all + label {
+ padding: 16px;
+}
+#fileList tr td.selection > .selectCheckBox:focus + label,
+.select-all:focus + label {
+ background-color: var(--color-background-hover);
+ border-radius: var(--border-radius-pill);
+ outline: none !important;
+ border: 2px solid var(--color-primary) !important;
+ padding: 14px;
+}
+
+#fileList tr td.selection > .selectCheckBox:focus-visible + label,
+.select-all:focus-visible + label {
+ outline-offset: 0px;
+}
+
+#fileList tr td.filename {
+ position: relative;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+ -webkit-transition: background-image 500ms;
+ -moz-transition: background-image 500ms;
+ -o-transition: background-image 500ms;
+ transition: background-image 500ms;
+}
+
+#fileList tr td.filename a.name label,
+#fileList tr td.filename p.name label {
+ position: absolute;
+ width: 80%;
+ height: 50px;
+}
+
+#fileList tr td.filename .favorite {
+ display: inline-block;
+ float: left;
+}
+
+#fileList tr td.filename .favorite-mark {
+ position: absolute;
+ display: block;
+ top: -6px;
+ right: -6px;
+ line-height: 100%;
+ text-align: center;
+}
+
+#uploadsize-message, #delete-confirm {
+ display: none;
+}
+
+/* File actions */
+.fileactions {
+ z-index: 50;
+}
+
+.busy .fileactions, .busy .action {
+ visibility: hidden;
+}
+
+/* fix position of bubble pointer for Files app */
+.bubble,
+#app-navigation .app-navigation-entry-menu {
+ border-top-right-radius: 3px;
+ min-width: 100px;
+}
+
+/* force show the loading icon, not only on hover */
+#fileList .icon-loading-small {
+ opacity: 1 !important;
+ display: inline !important;
+}
+
+#fileList .action.action-share-notification span, #fileList a.name {
+ cursor: default !important;
+}
+
+/*
+ * Make the disabled link look not like a link in file list rows
+ */
+#fileList a.name.disabled * {
+ cursor: default;
+}
+#fileList a.name.disabled a, #fileList a.name.disabled a * {
+ cursor: pointer;
+}
+#fileList a.name.disabled:focus {
+ background: none;
+}
+
+a.action > img {
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+}
+
+/* Actions for selected files */
+.selectedActions {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.selectedActions.hidden {
+ display: none;
+}
+
+.selectedActions a {
+ display: inline;
+ line-height: 50px;
+ padding: 16px 5px;
+}
+
+.selectedActions a.hidden {
+ display: none;
+}
+
+.selectedActions a img {
+ position: relative;
+ vertical-align: text-bottom;
+ margin-bottom: -1px;
+}
+
+.selectedActions .actions-selected .icon-more {
+ margin-top: -3px;
+}
+
+#fileList td a a.action {
+ display: inline;
+ padding: 17px 8px;
+ line-height: 50px;
+ opacity: 0.3;
+}
+#fileList td a a.action.action-share {
+ padding: 17px 14px;
+}
+#fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared + span {
+ /* hide text of the share action */
+ /* .hidden-visually for accessbility */
+ position: absolute;
+ left: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
+#fileList td a a.action.action-share .avatar {
+ display: inline-block;
+ vertical-align: middle;
+}
+#fileList td a a.action.action-menu {
+ padding-top: 17px;
+ padding-bottom: 17px;
+ padding-left: 14px;
+ padding-right: 14px;
+}
+#fileList td a a.action.no-permission:hover, #fileList td a a.action.no-permission:focus {
+ opacity: 0.3;
+}
+#fileList td a a.action.disabled:hover, #fileList td a a.action.disabled:focus,
+#fileList td a a.action.disabled img {
+ opacity: 0.3;
+}
+#fileList td a a.action.disabled.action-download {
+ opacity: 0.7;
+}
+#fileList td a a.action.disabled.action-download:hover, #fileList td a a.action.disabled.action-download:focus {
+ opacity: 0.7;
+}
+#fileList td a a.action:hover, #fileList td a a.action:focus {
+ opacity: 1;
+}
+#fileList td a a.action:focus {
+ background-color: var(--color-background-hover);
+ border-radius: var(--border-radius-pill);
+}
+#fileList td a .fileActionsMenu a.action, #fileList td a a.action.action-share.shared-style {
+ opacity: 0.7;
+}
+#fileList td a .fileActionsMenu .action.permanent {
+ opacity: 1;
+}
+
+#fileList .action.action-share.permanent.shared-style span:not(.icon) {
+ display: inline-block;
+ max-width: 70px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ vertical-align: middle;
+ margin-left: 6px;
+}
+
+#fileList .remoteAddress .userDomain {
+ margin-left: 0 !important;
+}
+
+#fileList .favorite-mark.permanent {
+ opacity: 1;
+}
+
+#fileList .fileActionsMenu a.action:hover,
+#fileList .fileActionsMenu a.action:focus,
+#fileList a.action.action-share.shared-style:hover,
+#fileList a.action.action-share.shared-style:focus {
+ opacity: 1;
+}
+
+#fileList tr a.action.disabled {
+ background: none;
+}
+
+#selectedActionsList a.download.disabled,
+#fileList tr a.action.action-download.disabled {
+ color: #000000;
+}
+
+#fileList tr:hover a.action.disabled:hover * {
+ cursor: default;
+}
+
+.summary {
+ color: var(--color-text-maxcontrast);
+ /* add whitespace to bottom of files list to correctly show dropdowns */
+ height: 330px;
+}
+
+#filestable .filesummary {
+ width: 100%;
+ /* Width of checkbox and file preview */
+ padding-left: 101px;
+}
+
+/* Less whitespace needed on link share page
+ * as there is a footer and action menus have fewer entries.
+ */
+#body-public .summary {
+ height: 180px;
+}
+
+.summary:hover,
+.summary:focus,
+.summary,
+table tr.summary td {
+ background-color: transparent;
+}
+
+.summary td {
+ border-bottom: none;
+ vertical-align: top;
+ padding-top: 20px;
+}
+
+.summary td:first-child {
+ padding: 0;
+}
+
+.hiddeninfo {
+ white-space: pre-line;
+}
+
+table.dragshadow {
+ width: auto;
+ z-index: 2000;
+}
+
+table.dragshadow td.filename {
+ padding-left: 60px;
+ padding-right: 16px;
+ height: 36px;
+ /* Override "max-width: 0" to prevent file name and size from overlapping */
+ max-width: unset;
+}
+
+table.dragshadow td.size {
+ padding-right: 8px;
+}
+
+.mask {
+ z-index: 50;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: var(--color-main-background);
+ background-repeat: no-repeat no-repeat;
+ background-position: 50%;
+ opacity: 0.7;
+ transition: opacity 100ms;
+ -moz-transition: opacity 100ms;
+ -o-transition: opacity 100ms;
+ -ms-transition: opacity 100ms;
+ -webkit-transition: opacity 100ms;
+}
+
+.mask.transparent {
+ opacity: 0;
+}
+
+.newFileMenu {
+ font-weight: 300;
+ top: 100%;
+ left: -48px !important;
+ margin-top: 4px;
+ min-width: 100px;
+ z-index: 1001;
+ /* Center triangle */
+}
+.newFileMenu::after {
+ left: 57px !important;
+}
+
+#filestable .filename .action .icon,
+#filestable .selectedActions a .icon,
+#filestable .filename .favorite-mark .icon,
+#controls .actions .button .icon {
+ display: inline-block;
+ vertical-align: middle;
+ background-size: 16px 16px;
+}
+
+#filestable .filename .favorite-mark .icon-star {
+ background-image: none;
+}
+#filestable .filename .favorite-mark .icon-starred {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-star-dark-yellow);
+}
+
+#filestable .filename .action .icon.hidden,
+#filestable .selectedActions a .icon.hidden,
+#controls .actions .button .icon.hidden {
+ display: none;
+}
+
+#filestable .filename .action .icon.loading,
+#filestable .selectedActions a .icon.loading,
+#controls .actions .button .icon.loading {
+ width: 15px;
+ height: 15px;
+}
+
+.app-files .actions .button.new {
+ position: relative;
+}
+
+.breadcrumb .icon-home {
+ border-radius: var(--border-radius);
+}
+
+.breadcrumb .canDrop > a,
+#filestable tbody tr.canDrop {
+ background-color: rgba(0, 130, 201, 0.3);
+}
+
+.dropzone-background {
+ background-color: rgba(0, 130, 201, 0.3);
+}
+.dropzone-background :hover {
+ box-shadow: none !important;
+}
+
+.notCreatable {
+ margin-left: 12px;
+ margin-right: 44px;
+ margin-top: 12px;
+ color: var(--color-main-text);
+ overflow: auto;
+ min-width: 160px;
+ height: 54px;
+}
+.notCreatable:not(.hidden) {
+ display: flex;
+}
+.notCreatable .icon-alert-outline {
+ top: -15px;
+ position: relative;
+ margin-right: 4px;
+}
+
+#quota {
+ margin: 0 !important;
+ border: none;
+ border-radius: 0;
+ background-color: transparent;
+ z-index: 1;
+}
+#quota > a[href="#"], #quota > a[href="#"] * {
+ cursor: default !important;
+}
+#quota .quota-container {
+ height: 5px;
+ border-radius: var(--border-radius);
+}
+#quota .quota-container div {
+ height: 100%;
+ background-color: var(--color-primary);
+}
+
+#quotatext {
+ padding: 0;
+ height: 30px;
+ line-height: 30px;
+}
+
+/* GRID */
+#filestable.view-grid:not(.hidden) {
+ /* HEADER and MULTISELECT */
+ /* MAIN FILE LIST */
+ /* Center align the footer file number & size summary */
+}
+#filestable.view-grid:not(.hidden) thead tr {
+ display: block;
+ border-bottom: 1px solid var(--color-border);
+ background-color: var(--color-main-background-translucent);
+}
+#filestable.view-grid:not(.hidden) thead tr th {
+ width: auto;
+ border: none;
+}
+#filestable.view-grid:not(.hidden) tbody {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, 160px);
+ justify-content: space-around;
+ row-gap: 15px;
+ margin: 15px 0;
+}
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) {
+ display: block;
+ position: relative;
+ height: 190px;
+ border-radius: var(--border-radius);
+}
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted {
+ background-color: transparent;
+}
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions, #filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,
+#filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions {
+ background-color: var(--color-background-hover);
+}
+#filestable.view-grid:not(.hidden) tbody td {
+ display: inline;
+ border-bottom: none;
+ /* No space for filesize and date in grid view */
+ /* Position actions menu below file */
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper {
+ min-width: 0;
+ max-width: none;
+ position: absolute;
+ width: 160px;
+ height: 160px;
+ padding: 14px;
+ top: 0;
+ left: 0;
+ z-index: -1;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail {
+ width: calc(100% - 2 * 14px);
+ height: calc(100% - 2 * 14px);
+ background-size: contain;
+ margin: 0;
+ border-radius: var(--border-radius);
+ background-repeat: no-repeat;
+ background-position: center;
+ /* Position favorite star related to checkbox to left and 3-dot menu below
+ * Position is inherited from the selection while in grid view
+ */
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark {
+ padding: 14px;
+ left: auto;
+ top: -22px;
+ right: -22px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .uploadtext {
+ width: 100%;
+ margin: 0;
+ top: 0;
+ bottom: auto;
+ height: 28px;
+ padding-top: 4px;
+ padding-left: 28px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name {
+ height: 100%;
+ border-radius: var(--border-radius);
+ overflow: hidden;
+ cursor: pointer !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext {
+ display: flex;
+ height: 44px;
+ margin-top: 146px;
+ text-align: center;
+ line-height: 44px;
+ padding: 0;
+ /* No space for extension in grid view */
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext {
+ display: inline-block;
+ text-align: center;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before {
+ content: "";
+ flex: 1;
+ min-width: 14px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after {
+ content: "";
+ flex: 1;
+ min-width: 44px;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions {
+ height: initial;
+ margin-top: 146px;
+ display: flex;
+ align-items: center;
+ position: absolute;
+ right: 0;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action {
+ padding: 14px;
+ width: 44px;
+ height: 44px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu) {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden {
+ display: block !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img {
+ padding: 6px;
+ border-radius: 50%;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden {
+ display: block !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden {
+ display: block !important;
+}
+#filestable.view-grid:not(.hidden) tbody td.filename form {
+ padding: 3px 14px;
+ border-radius: var(--border-radius);
+}
+#filestable.view-grid:not(.hidden) tbody td.filename form input.filename {
+ width: 100%;
+ margin-left: 0;
+}
+#filestable.view-grid:not(.hidden) tbody td.filesize, #filestable.view-grid:not(.hidden) tbody td.date {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tbody td.selection, #filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark {
+ position: absolute;
+ top: -8px;
+ left: -8px;
+ display: flex;
+ width: 44px;
+ height: 44px;
+ z-index: 10;
+ background: transparent;
+}
+#filestable.view-grid:not(.hidden) tbody td.selection label, #filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label {
+ width: 44px;
+ height: 44px;
+ display: inline-flex;
+ padding: 14px;
+}
+#filestable.view-grid:not(.hidden) tbody td.selection label::before, #filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before {
+ margin: 0;
+ width: 14px;
+ height: 14px;
+}
+#filestable.view-grid:not(.hidden) tbody td .popovermenu {
+ left: 0;
+ width: 150px;
+ margin: 0 5px;
+ /* Ellipsize long entries, normally menu width is adjusted but for grid we use fixed width. */
+}
+#filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon) {
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+#filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension {
+ display: block;
+}
+#filestable.view-grid:not(.hidden) tfoot {
+ display: grid;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) {
+ display: inline-block;
+ margin: 0 auto;
+ height: 418px;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td {
+ padding-top: 50px;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child, #filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date {
+ display: none;
+}
+#filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info {
+ margin-left: 0;
+}
+
+/* Grid view toggle */
+#view-toggle {
+ background-color: transparent;
+ border: none;
+ margin: 0;
+ padding: 22px;
+ opacity: 0.5;
+ position: fixed;
+ right: 0;
+ z-index: 100;
+}
+#view-toggle:hover, #view-toggle:focus, #showgridview:focus + #view-toggle {
+ opacity: 1;
+}
+#view-toggle:focus-visible, #showgridview:focus-visible + #view-toggle {
+ box-shadow: inset 0 0 0 2px var(--color-primary) !important;
+}
+
+/**
+ * Make sure the hidden input is always
+ * on the visible scrolled area of the
+ * page to avoid scrolling to top when focusing
+ */
+#showgridview {
+ position: fixed;
+ top: 0;
+}
+
+/* Adjustments for link share page */
+#body-public {
+ /* Right-align view toggle on link share page */
+}
+#body-public #filestable.view-grid:not(.hidden) tbody td {
+ /* More space for filename since there is no share icon */
+ /* Position actions menu correctly below 3-dot-menu */
+}
+#body-public #filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext {
+ max-width: 124px;
+}
+#body-public #filestable.view-grid:not(.hidden) tbody td .popovermenu {
+ left: -80px;
+}
+#body-public #view-toggle {
+ position: absolute;
+ right: 0;
+}
+
+/* Hide legacy Gallery toggle */
+#gallery-button {
+ display: none;
+}
+
+#tag_multiple_files_container {
+ overflow: hidden;
+ background-color: #fff;
+ border-radius: 3px;
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ margin-bottom: 10px;
+}
+#tag_multiple_files_container h3 {
+ width: 100%;
+ padding: 0 18px;
+}
+#tag_multiple_files_container .systemTagsInputFieldContainer {
+ flex: 1 1 80%;
+ min-width: 0;
+ margin: 0 12px;
+}
+
+#upload {
+ box-sizing: border-box;
+ height: 36px;
+ width: 39px;
+ padding: 0 !important;
+ /* override default control bar button padding */
+ margin-left: 3px;
+ overflow: hidden;
+ vertical-align: top;
+ position: relative;
+ z-index: -20;
+}
+
+#upload .icon-upload {
+ position: relative;
+ display: block;
+ width: 100%;
+ height: 44px;
+ width: 44px;
+ margin: -5px -3px;
+ cursor: pointer;
+ z-index: 10;
+ opacity: 0.65;
+}
+
+.file_upload_target {
+ display: none;
+}
+
+.file_upload_form {
+ display: inline;
+ float: left;
+ margin: 0;
+ padding: 0;
+ cursor: pointer;
+ overflow: visible;
+}
+
+#uploadprogresswrapper, #uploadprogresswrapper * {
+ box-sizing: border-box;
+}
+
+#uploadprogresswrapper {
+ display: inline-block;
+ vertical-align: top;
+ height: 36px;
+ margin-left: 3px;
+}
+
+#uploadprogresswrapper > input[type=button] {
+ height: 36px;
+ margin-left: 3px;
+}
+
+#uploadprogressbar {
+ border-color: var(--color-border-dark);
+ border-radius: 18px 0 0 18px;
+ border-right: 0;
+ position: relative;
+ float: left;
+ width: 200px;
+ height: 36px;
+ display: inline-block;
+ text-align: center;
+}
+#uploadprogressbar .ui-progressbar-value {
+ margin: 0;
+}
+
+#uploadprogressbar .ui-progressbar-value.ui-widget-header.ui-corner-left {
+ height: calc(100% + 2px);
+ top: -1px;
+ left: -1px;
+ position: absolute;
+ overflow: hidden;
+ background-color: var(--color-primary);
+}
+
+#uploadprogressbar .label {
+ top: 8px;
+ opacity: 1;
+ overflow: hidden;
+ white-space: nowrap;
+ font-weight: normal;
+}
+
+#uploadprogressbar .label.inner {
+ color: var(--color-primary-text);
+ position: absolute;
+ display: block;
+ width: 200px;
+}
+
+#uploadprogressbar .label.outer {
+ position: relative;
+ color: var(--color-main-text);
+}
+
+#uploadprogressbar .desktop {
+ display: block;
+}
+
+#uploadprogressbar .mobile {
+ display: none;
+}
+
+#uploadprogressbar + .stop {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.oc-dialog .fileexists {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ margin-bottom: 30px;
+}
+
+.oc-dialog .fileexists .conflict .filename,
+.oc-dialog .fileexists .conflict .mtime,
+.oc-dialog .fileexists .conflict .size {
+ -webkit-touch-callout: initial;
+ -webkit-user-select: initial;
+ -khtml-user-select: initial;
+ -moz-user-select: initial;
+ -ms-user-select: initial;
+ user-select: initial;
+}
+
+.oc-dialog .fileexists .conflict .message {
+ color: #e9322d;
+}
+
+.oc-dialog .fileexists table {
+ width: 100%;
+}
+
+.oc-dialog .fileexists th {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.oc-dialog .fileexists th input[type=checkbox] {
+ margin-right: 3px;
+}
+
+.oc-dialog .fileexists th:first-child {
+ width: 225px;
+}
+
+.oc-dialog .fileexists th label {
+ font-weight: normal;
+ color: var(--color-main-text);
+}
+
+.oc-dialog .fileexists th .count {
+ margin-left: 3px;
+}
+
+.oc-dialog .fileexists .conflicts .template {
+ display: none;
+}
+
+.oc-dialog .fileexists .conflict {
+ width: 100%;
+ height: 85px;
+}
+
+.oc-dialog .fileexists .conflict .filename {
+ color: #777;
+ word-break: break-all;
+ clear: left;
+}
+
+.oc-dialog .fileexists .icon {
+ width: 64px;
+ height: 64px;
+ margin: 0px 5px 5px 5px;
+ background-repeat: no-repeat;
+ background-size: 64px 64px;
+ float: left;
+}
+
+.oc-dialog .fileexists .original,
+.oc-dialog .fileexists .replacement {
+ float: left;
+ width: 225px;
+}
+
+.oc-dialog .fileexists .conflicts {
+ overflow-y: auto;
+ max-height: 225px;
+}
+
+.oc-dialog .fileexists .conflict input[type=checkbox] {
+ float: left;
+}
+
+.oc-dialog .fileexists #allfileslabel {
+ float: right;
+}
+
+.oc-dialog .fileexists #allfiles {
+ vertical-align: bottom;
+ position: relative;
+ top: -3px;
+}
+
+.oc-dialog .fileexists #allfiles + span {
+ vertical-align: bottom;
+}
+
+.oc-dialog .oc-dialog-buttonrow {
+ width: 100%;
+ text-align: right;
+}
+.oc-dialog .oc-dialog-buttonrow .cancel {
+ float: left;
+}
+
+.highlightUploaded {
+ -webkit-animation: highlightAnimation 2s 1;
+ -moz-animation: highlightAnimation 2s 1;
+ -o-animation: highlightAnimation 2s 1;
+ animation: highlightAnimation 2s 1;
+}
+
+@-webkit-keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+@-moz-keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+@-o-keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+@keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/* 938 = table min-width(688) + app-navigation width: 250\
+ $breakpoint-mobile +1 = size where app-navigation is hidden +1
+ 688 = table min-width */
+@media only screen and (max-width: 988px) and (min-width: 1025px), only screen and (max-width: 688px) {
+ .app-files #app-content.dir-drop {
+ background-color: rgb(255, 255, 255) !important;
+ }
+
+ table th#headerSize,
+table td.filesize,
+table th#headerDate,
+table td.date {
+ display: none;
+ }
+
+ /* remove padding to let border bottom fill the whole width*/
+ table td {
+ padding: 0;
+ }
+
+ /* remove shift for multiselect bar to account for missing navigation */
+ table.multiselect thead {
+ padding-left: 0;
+ }
+
+ #fileList a.action.action-menu img {
+ padding-left: 0;
+ }
+
+ #fileList .fileActionsMenu {
+ margin-right: 6px;
+ }
+
+ /* hide text of the share action on mobile */
+ /* .hidden-visually for accessbility */
+ #fileList a.action-share span:not(.icon):not(.avatar) {
+ position: absolute;
+ left: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ }
+
+ /* proper notification area for multi line messages */
+ #notification-container {
+ display: flex;
+ }
+
+ /* shorten elements for mobile */
+ #uploadprogressbar, #uploadprogressbar .label.inner {
+ width: 50px;
+ }
+
+ /* hide desktop-only parts */
+ #uploadprogressbar .desktop {
+ display: none !important;
+ }
+
+ #uploadprogressbar .mobile {
+ display: block !important;
+ }
+
+ /* ensure that it is visible over #app-content */
+ table.dragshadow {
+ z-index: 1000;
+ }
+}
+@media only screen and (max-width: 480px) {
+ /* Only show icons */
+ table th .selectedActions {
+ float: right;
+ }
+
+ table th .selectedActions > a span:not(.icon) {
+ display: none;
+ }
+
+ /* Increase touch area for the icons */
+ table th .selectedActions a {
+ padding: 17px 14px;
+ }
+
+ /* Remove the margin to reduce the overlap between the name and the icons */
+ table.multiselect th .columntitle.name {
+ margin-left: 0;
+ }
+}
+.app-sidebar .detailFileInfoContainer {
+ min-height: 50px;
+ padding: 15px;
+}
+
+.app-sidebar .detailFileInfoContainer > div {
+ clear: both;
+}
+
+.app-sidebar .mainFileInfoView .icon {
+ display: inline-block;
+ background-size: 16px 16px;
+}
+
+.app-sidebar .mainFileInfoView .permalink {
+ padding: 6px 10px;
+ vertical-align: top;
+ opacity: 0.6;
+}
+.app-sidebar .mainFileInfoView .permalink:hover, .app-sidebar .mainFileInfoView .permalink:focus {
+ opacity: 1;
+}
+
+.app-sidebar .mainFileInfoView .permalink-field > input {
+ clear: both;
+ width: 90%;
+}
+
+.app-sidebar .thumbnailContainer.large {
+ margin-left: -15px;
+ margin-right: -35px;
+ /* 15 + 20 for the close button */
+ margin-top: -15px;
+}
+
+.app-sidebar .thumbnailContainer.large.portrait {
+ margin: 0;
+ /* if we don't fit the image anyway we give it back the margin */
+}
+
+.app-sidebar .large .thumbnail {
+ width: 100%;
+ display: block;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+ float: none;
+ margin: 0;
+ height: auto;
+}
+
+.app-sidebar .large .thumbnail .stretcher {
+ content: "";
+ display: block;
+ padding-bottom: 56.25%;
+ /* sets height of .thumbnail to 9/16 of the width */
+}
+
+.app-sidebar .large.portrait .thumbnail {
+ background-position: 50% top;
+}
+
+.app-sidebar .large.portrait .thumbnail {
+ background-size: contain;
+}
+
+.app-sidebar .large.text {
+ overflow-y: scroll;
+ overflow-x: hidden;
+ padding-top: 14px;
+ font-size: 80%;
+ margin-left: 0;
+}
+
+.app-sidebar .thumbnail {
+ width: 100%;
+ min-height: 75px;
+ display: inline-block;
+ float: left;
+ margin-right: 10px;
+ background-size: contain;
+ background-repeat: no-repeat;
+}
+
+.app-sidebar .ellipsis {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+.app-sidebar .fileName {
+ font-size: 16px;
+ padding-top: 13px;
+ padding-bottom: 3px;
+}
+
+.app-sidebar .fileName h3 {
+ width: calc(100% - 42px);
+ /* 36px is the with of the copy link icon, but this breaks so we add some more to be sure */
+ display: inline-block;
+ padding: 5px 0;
+ margin: -5px 0;
+}
+
+.app-sidebar .file-details {
+ color: var(--color-text-maxcontrast);
+}
+
+.app-sidebar .action-favorite {
+ vertical-align: sub;
+ padding: 10px;
+ margin: -10px;
+}
+
+.app-sidebar .action-favorite > span {
+ opacity: 0.7 !important;
+}
+
+.app-sidebar .detailList {
+ float: left;
+}
+
+.app-sidebar .close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ opacity: 0.5;
+ z-index: 1;
+ width: 44px;
+ height: 44px;
+}
+
+/**
+ * @copyright Copyright (c) 2018, Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ */
+.whatsNewPopover {
+ bottom: 35px !important;
+ left: 15px !important;
+ width: 270px;
+ z-index: 700;
+}
+
+.whatsNewPopover p {
+ width: auto !important;
+}
+
+.whatsNewPopover .caption {
+ font-weight: bold;
+ cursor: auto !important;
+}
+
+.whatsNewPopover .icon-close {
+ position: absolute;
+ right: 0;
+}
+
+.whatsNewPopover::after {
+ content: none;
+}
+
+/*# sourceMappingURL=merged.css.map */
diff --git a/apps/files/css/merged.css.map b/apps/files/css/merged.css.map
new file mode 100644
index 00000000000..d05aefcafc0
--- /dev/null
+++ b/apps/files/css/merged.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","files.scss","../../../core/css/functions.scss","upload.scss","mobile.scss","detailsView.scss","../../../core/css/whatsnew.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ADxCA;AACA;EACC;EACA;EACA;EACA;;;AAED;EAAoD;EAAU;;;AAC9D;EAAqB;;;AACrB;AAAA;EAEC;;;AAED;EACC;;;AAGD;EACC;EACA;EACA;;AACA;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAGD;EACC;EACA;EAEA,KDoCc;EClCd;EACA;EACA;;AAMD;EACC;EACA;;AAEA;AAAA;EAEC;;AAEA;AAAA;EACC;;;AAMJ;EACC;;;AAGD;AACA;EACC;EACA;;;AAGD;EAGC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;AClEC;EAEA;;;ADmED;ACrEC;EAEA;;;ADsED;ACxEC;EAEA;;;ADyED;AAAA;AAAA;AAAA;AC3EC;EAEA;;;AD+ED;ACjFC;EAEA;;;ADkFD;ACpFC;EAEA;;;ADqFD;ACvFC;EAEA;;;ADwFD;AC1FC;EAEA;;;AD2FD;AC7FC;EAEA;;;AD8FD;AChGC;EAEA;;;ADkGD;EACC;;;AAED;AACA;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAED;AAAA;AAAA;AAAA;AAAA;EAKC;;;AAED;AAAA;AAAA;AAAA;AAAA;EAKC;;;AAGD;EAAU;;;AAEV;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;AAAA;AAAA;AAAA;EAIC;EACA;;;AAGD;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;;AAGF;EACC;EACA;;;AAED;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;AAAA;AAAA;AAAA;EAIC;;;AAED;EACC;;;AAED;AAAA;EAEC;;;AAGD;AAAA;EAEC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;AAAe;EACf;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAED;EACC;;;AAED;AAAA;EAEC;EACA;EACA;AACA;EACA;EACA;;;AAGD;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;AAAe;;;AAEhB;EACC;;;AAGD;AAAA;AAAA;EAGC;EACA;;;AAED;AAAA;EAEC;EACA;AAAmB;EACnB;EACA;EACA;EACA;EACA;;;AAED;AACC;EACA;EACA;EACA;EACA;;;AAGA;EACC;;AAED;EACC;;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAID;EACC;;;AAGD;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;;;AAGD;EAA6H;;;AAC7H;EAAwE;EAAY;;;AAEpF;EACC;EACA;EACA;EACA;;;AAGD;AAEC;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKH;AAAA;EAEC;;;AAGD;EACC;EACA;EACA;EACA;;;AAED;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;AAEA;EACC;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;EACC;;;AAGD;AAGC;AAAA;EACC;;AAGD;AAAA;EACC;EACA;EACA;EACA;EACA;;;AAIF;AAAA;EAEC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EAA2C;EAAwC;EAAsC;;;AAG1H;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAAsC;;;AAEtC;AACA;EACC;;;AAGD;EACC;;;AAGD;AACA;AAAA;EAEC;EACA;;;AAGD;AACA;EACC;EACA;;;AAGD;EACC;;;AAGD;AAAA;AAAA;AAIC;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;EACA;EACA;;;AAGD;AACA;EACI;EACA;EACA;;;AAEJ;EACI;;;AAEJ;EACC;EACA;EACA;;;AAGD;EACC;;;AAED;EACC;EACA;EACA;;;AAGD;EACC;;;AAIA;EACC;EACA;EACA;EACA;;AACA;EACC;;AACA;AACC;AACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAGF;EACC;EACA;EACA;EACA;;AAGA;EACC;;AAID;AAAA;EAEC;;AAED;EACC;;AACA;EACC;;AAIH;EACC;;AAED;EACC;EACA;;AAGF;EACC;;AAED;EACC;;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;AAAA;AAAA;EAKC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;AACA;EAEA;;;AAED;EACC;AACA;EACA;;;AAED;AAAA;AAAA;AAGA;EACC;;;AAED;AAAA;AAAA;AAAA;EAIC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAGD;EACC;EACA;;;AAED;EACC;EACA;EACA;AAEA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;AAEA;;AACA;EACC;;;AAIF;AAAA;AAAA;AAAA;EAIC;EACA;EACA;;;AAMA;EACC;;AAED;AChwBA;EAEA;;;ADmwBD;AAAA;AAAA;EAGC;;;AAGD;AAAA;AAAA;EAGC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAED;EACC;;AACA;EACC;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAIC;EACC;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;;AAKH;EACC;EACA;EACA;;;AAGD;AACA;AAIC;AAaA;AAoOA;;AA/OC;EACC;EACA;EACA;;AACA;EACC;EACA;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;;AAEA;AAAA;EAKC;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGC;;AAKH;EACC;EACA;AAmJA;AA8BA;;AA9KC;EACC;EACA;EACA;EACA,OAvDQ;EAwDR,QAxDQ;EAyDR,SAxDO;EAyDP;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;AAAA;AAAA;;AAGA;EACC,SA1EK;EA2EL;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;EAEA;EACA;EAEA;;AAGD;EACC;EACA;EAIA;EAKA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;AAoBA;;AAlBA;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAID;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,SApJK;EAqJL;EACA;EACA;EACA;EACA;;AAGA;EACC;;AAQH;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAMH;EAEC;;AAGD;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,SAvNO;;AAwNP;EACC;EACA,OA1NM;EA2NN,QA3NM;;AAiOT;EACC;EACA;EACA;AAEA;;AACA;EACC;EACA;;AAMJ;EACC;;AAID;EACC;;AAEA;EACC;EACA;EAEA;;AAEA;EACC;;AAEA;EAEC;;AAGD;EACI;;;AAOR;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGC;;AAGD;EAEC;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;EACA;;;AAGD;AACA;AAaC;;AAZA;AACC;AAKA;;AAJA;EACC;;AAID;EACC;;AAKF;EACC;EACA;;;AAIF;AACA;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;;AEnvCF;EACC;EACA;EACA;EACA;AAAuB;EACvB;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EAAsB;;;AACtB;EAAoB;EAAgB;EAAY;EAAU;EAAW;EAAgB;;;AAErF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACE;IAAK;;EACL;IAAO;;;AAET;EACE;IAAK;;EACL;IAAO;;;AAET;EACE;IAAK;;EACL;IAAO;;;AAET;EACE;IAAK;;EACL;IAAO;;;AHjNT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AIEA;AAAA;AAAA;AAIA;EAEA;IACC;;;EAGD;AAAA;AAAA;AAAA;IAIC;;;AAGD;EACA;IACC;;;AAGD;EACA;IACC;;;EAGD;IACC;;;EAGD;IACC;;;AAED;AACA;EACA;IACC;IACA;IACA;IACA;IACA;IACA;;;AAID;EACA;IACC;;;AAGD;EACA;IACC;;;AAED;EACA;IACC;;;EAED;IACC;;;AAGD;EACA;IACC;;;AAID;AACC;EACA;IACC;;;EAED;IACC;;;AAGD;EACA;IACC;;;AAGD;EACA;IACC;;;ACvFF;EACC;EACA;;;AAGD;EACC;;;AAID;EACC;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EAEC;;;AAGF;EACC;EACA;;;AAGD;EACC;EACA;AAAqB;EACrB;;;AAGD;EACC;AAAW;;;AAGZ;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;AAAwB;;;AAGzB;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;AAA0B;EAC1B;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AC/HD;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"merged.css"} \ No newline at end of file
diff --git a/apps/files/css/mobile.css b/apps/files/css/mobile.css
new file mode 100644
index 00000000000..9cdbad85156
--- /dev/null
+++ b/apps/files/css/mobile.css
@@ -0,0 +1,112 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/* 938 = table min-width(688) + app-navigation width: 250\
+ $breakpoint-mobile +1 = size where app-navigation is hidden +1
+ 688 = table min-width */
+@media only screen and (max-width: 988px) and (min-width: 1025px), only screen and (max-width: 688px) {
+ .app-files #app-content.dir-drop {
+ background-color: rgb(255, 255, 255) !important;
+ }
+
+ table th#headerSize,
+table td.filesize,
+table th#headerDate,
+table td.date {
+ display: none;
+ }
+
+ /* remove padding to let border bottom fill the whole width*/
+ table td {
+ padding: 0;
+ }
+
+ /* remove shift for multiselect bar to account for missing navigation */
+ table.multiselect thead {
+ padding-left: 0;
+ }
+
+ #fileList a.action.action-menu img {
+ padding-left: 0;
+ }
+
+ #fileList .fileActionsMenu {
+ margin-right: 6px;
+ }
+
+ /* hide text of the share action on mobile */
+ /* .hidden-visually for accessbility */
+ #fileList a.action-share span:not(.icon):not(.avatar) {
+ position: absolute;
+ left: -10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ }
+
+ /* proper notification area for multi line messages */
+ #notification-container {
+ display: flex;
+ }
+
+ /* shorten elements for mobile */
+ #uploadprogressbar, #uploadprogressbar .label.inner {
+ width: 50px;
+ }
+
+ /* hide desktop-only parts */
+ #uploadprogressbar .desktop {
+ display: none !important;
+ }
+
+ #uploadprogressbar .mobile {
+ display: block !important;
+ }
+
+ /* ensure that it is visible over #app-content */
+ table.dragshadow {
+ z-index: 1000;
+ }
+}
+@media only screen and (max-width: 480px) {
+ /* Only show icons */
+ table th .selectedActions {
+ float: right;
+ }
+
+ table th .selectedActions > a span:not(.icon) {
+ display: none;
+ }
+
+ /* Increase touch area for the icons */
+ table th .selectedActions a {
+ padding: 17px 14px;
+ }
+
+ /* Remove the margin to reduce the overlap between the name and the icons */
+ table.multiselect th .columntitle.name {
+ margin-left: 0;
+ }
+}
+
+/*# sourceMappingURL=mobile.css.map */
diff --git a/apps/files/css/mobile.css.map b/apps/files/css/mobile.css.map
new file mode 100644
index 00000000000..83b1e827b33
--- /dev/null
+++ b/apps/files/css/mobile.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","mobile.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACEA;AAAA;AAAA;AAIA;EAEA;IACC;;;EAGD;AAAA;AAAA;AAAA;IAIC;;;AAGD;EACA;IACC;;;AAGD;EACA;IACC;;;EAGD;IACC;;;EAGD;IACC;;;AAED;AACA;EACA;IACC;IACA;IACA;IACA;IACA;IACA;;;AAID;EACA;IACC;;;AAGD;EACA;IACC;;;AAED;EACA;IACC;;;EAED;IACC;;;AAGD;EACA;IACC;;;AAID;AACC;EACA;IACC;;;EAED;IACC;;;AAGD;EACA;IACC;;;AAGD;EACA;IACC","file":"mobile.css"} \ No newline at end of file
diff --git a/apps/files/css/mobile.scss b/apps/files/css/mobile.scss
index da6fdd25f28..7c5fc8fe4a2 100644
--- a/apps/files/css/mobile.scss
+++ b/apps/files/css/mobile.scss
@@ -1,8 +1,10 @@
+@use 'variables';
+
/* 938 = table min-width(688) + app-navigation width: 250\
$breakpoint-mobile +1 = size where app-navigation is hidden +1
688 = table min-width */
$min-table-width: 688px;
-@media only screen and (max-width: $min-table-width + $navigation-width) and (min-width: $breakpoint-mobile + 1), only screen and (max-width: $min-table-width) {
+@media only screen and (max-width: $min-table-width + variables.$navigation-width) and (min-width: variables.$breakpoint-mobile + 1), only screen and (max-width: $min-table-width) {
.app-files #app-content.dir-drop{
background-color: rgba(255, 255, 255, 1)!important;
diff --git a/apps/files/css/upload.css b/apps/files/css/upload.css
new file mode 100644
index 00000000000..dc90f5a793e
--- /dev/null
+++ b/apps/files/css/upload.css
@@ -0,0 +1,264 @@
+#upload {
+ box-sizing: border-box;
+ height: 36px;
+ width: 39px;
+ padding: 0 !important;
+ /* override default control bar button padding */
+ margin-left: 3px;
+ overflow: hidden;
+ vertical-align: top;
+ position: relative;
+ z-index: -20;
+}
+
+#upload .icon-upload {
+ position: relative;
+ display: block;
+ width: 100%;
+ height: 44px;
+ width: 44px;
+ margin: -5px -3px;
+ cursor: pointer;
+ z-index: 10;
+ opacity: 0.65;
+}
+
+.file_upload_target {
+ display: none;
+}
+
+.file_upload_form {
+ display: inline;
+ float: left;
+ margin: 0;
+ padding: 0;
+ cursor: pointer;
+ overflow: visible;
+}
+
+#uploadprogresswrapper, #uploadprogresswrapper * {
+ box-sizing: border-box;
+}
+
+#uploadprogresswrapper {
+ display: inline-block;
+ vertical-align: top;
+ height: 36px;
+ margin-left: 3px;
+}
+
+#uploadprogresswrapper > input[type=button] {
+ height: 36px;
+ margin-left: 3px;
+}
+
+#uploadprogressbar {
+ border-color: var(--color-border-dark);
+ border-radius: 18px 0 0 18px;
+ border-right: 0;
+ position: relative;
+ float: left;
+ width: 200px;
+ height: 36px;
+ display: inline-block;
+ text-align: center;
+}
+#uploadprogressbar .ui-progressbar-value {
+ margin: 0;
+}
+
+#uploadprogressbar .ui-progressbar-value.ui-widget-header.ui-corner-left {
+ height: calc(100% + 2px);
+ top: -1px;
+ left: -1px;
+ position: absolute;
+ overflow: hidden;
+ background-color: var(--color-primary);
+}
+
+#uploadprogressbar .label {
+ top: 8px;
+ opacity: 1;
+ overflow: hidden;
+ white-space: nowrap;
+ font-weight: normal;
+}
+
+#uploadprogressbar .label.inner {
+ color: var(--color-primary-text);
+ position: absolute;
+ display: block;
+ width: 200px;
+}
+
+#uploadprogressbar .label.outer {
+ position: relative;
+ color: var(--color-main-text);
+}
+
+#uploadprogressbar .desktop {
+ display: block;
+}
+
+#uploadprogressbar .mobile {
+ display: none;
+}
+
+#uploadprogressbar + .stop {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.oc-dialog .fileexists {
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ margin-bottom: 30px;
+}
+
+.oc-dialog .fileexists .conflict .filename,
+.oc-dialog .fileexists .conflict .mtime,
+.oc-dialog .fileexists .conflict .size {
+ -webkit-touch-callout: initial;
+ -webkit-user-select: initial;
+ -khtml-user-select: initial;
+ -moz-user-select: initial;
+ -ms-user-select: initial;
+ user-select: initial;
+}
+
+.oc-dialog .fileexists .conflict .message {
+ color: #e9322d;
+}
+
+.oc-dialog .fileexists table {
+ width: 100%;
+}
+
+.oc-dialog .fileexists th {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.oc-dialog .fileexists th input[type=checkbox] {
+ margin-right: 3px;
+}
+
+.oc-dialog .fileexists th:first-child {
+ width: 225px;
+}
+
+.oc-dialog .fileexists th label {
+ font-weight: normal;
+ color: var(--color-main-text);
+}
+
+.oc-dialog .fileexists th .count {
+ margin-left: 3px;
+}
+
+.oc-dialog .fileexists .conflicts .template {
+ display: none;
+}
+
+.oc-dialog .fileexists .conflict {
+ width: 100%;
+ height: 85px;
+}
+
+.oc-dialog .fileexists .conflict .filename {
+ color: #777;
+ word-break: break-all;
+ clear: left;
+}
+
+.oc-dialog .fileexists .icon {
+ width: 64px;
+ height: 64px;
+ margin: 0px 5px 5px 5px;
+ background-repeat: no-repeat;
+ background-size: 64px 64px;
+ float: left;
+}
+
+.oc-dialog .fileexists .original,
+.oc-dialog .fileexists .replacement {
+ float: left;
+ width: 225px;
+}
+
+.oc-dialog .fileexists .conflicts {
+ overflow-y: auto;
+ max-height: 225px;
+}
+
+.oc-dialog .fileexists .conflict input[type=checkbox] {
+ float: left;
+}
+
+.oc-dialog .fileexists #allfileslabel {
+ float: right;
+}
+
+.oc-dialog .fileexists #allfiles {
+ vertical-align: bottom;
+ position: relative;
+ top: -3px;
+}
+
+.oc-dialog .fileexists #allfiles + span {
+ vertical-align: bottom;
+}
+
+.oc-dialog .oc-dialog-buttonrow {
+ width: 100%;
+ text-align: right;
+}
+.oc-dialog .oc-dialog-buttonrow .cancel {
+ float: left;
+}
+
+.highlightUploaded {
+ -webkit-animation: highlightAnimation 2s 1;
+ -moz-animation: highlightAnimation 2s 1;
+ -o-animation: highlightAnimation 2s 1;
+ animation: highlightAnimation 2s 1;
+}
+
+@-webkit-keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+@-moz-keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+@-o-keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+@keyframes highlightAnimation {
+ 0% {
+ background-color: rgb(255, 255, 140);
+ }
+ 100% {
+ background-color: rgba(0, 0, 0, 0);
+ }
+}
+
+/*# sourceMappingURL=upload.css.map */
diff --git a/apps/files/css/upload.css.map b/apps/files/css/upload.css.map
new file mode 100644
index 00000000000..718462f2607
--- /dev/null
+++ b/apps/files/css/upload.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["upload.scss"],"names":[],"mappings":"AAAA;EACC;EACA;EACA;EACA;AAAuB;EACvB;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EAAsB;;;AACtB;EAAoB;EAAgB;EAAY;EAAU;EAAW;EAAgB;;;AAErF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACE;IAAK;;EACL;IAAO;;;AAET;EACE;IAAK;;EACL;IAAO;;;AAET;EACE;IAAK;;EACL;IAAO;;;AAET;EACE;IAAK;;EACL;IAAO","file":"upload.css"} \ No newline at end of file
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 85b9e883ac6..701b635fac3 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1686,7 +1686,9 @@
td.append(
'<input id="select-' + this.id + '-' + fileData.id +
'" type="checkbox" class="selectCheckBox checkbox"/><label for="select-' + this.id + '-' + fileData.id + '">' +
- '<span class="hidden-visually">' + t('files', 'Select') + '</span>' +
+ '<span class="hidden-visually">' + (fileData.type === 'dir' ?
+ t('files', 'Select directory "{dirName}"', {dirName: name}) :
+ t('files', 'Select file "{fileName}"', {fileName: name})) + '</span>' +
'</label>'
);
diff --git a/apps/files/l10n/af.js b/apps/files/l10n/af.js
index 00e27a4c197..f94125ceec1 100644
--- a/apps/files/l10n/af.js
+++ b/apps/files/l10n/af.js
@@ -35,7 +35,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Kon nie inligting vir lêer: “{file}” laai nie ",
"Files" : "Lêers",
"Details" : "Besonderhede",
- "Select" : "Kies",
"Pending" : "Hangend",
"Unable to determine date" : "Kan nie datum bepaal nie",
"This operation is forbidden" : "Die operasie is verbode",
@@ -133,6 +132,7 @@ OC.L10N.register(
"Shared with you" : "Met u gedeel",
"Shared by link" : "Gedeel per skakel",
"Text file" : "Tekslêer",
- "New text file.txt" : "Nuwe tekslêer.txt"
+ "New text file.txt" : "Nuwe tekslêer.txt",
+ "Select" : "Kies"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/af.json b/apps/files/l10n/af.json
index 5ce3cdea3ec..fecda4e0cae 100644
--- a/apps/files/l10n/af.json
+++ b/apps/files/l10n/af.json
@@ -33,7 +33,6 @@
"Could not load info for file \"{file}\"" : "Kon nie inligting vir lêer: “{file}” laai nie ",
"Files" : "Lêers",
"Details" : "Besonderhede",
- "Select" : "Kies",
"Pending" : "Hangend",
"Unable to determine date" : "Kan nie datum bepaal nie",
"This operation is forbidden" : "Die operasie is verbode",
@@ -131,6 +130,7 @@
"Shared with you" : "Met u gedeel",
"Shared by link" : "Gedeel per skakel",
"Text file" : "Tekslêer",
- "New text file.txt" : "Nuwe tekslêer.txt"
+ "New text file.txt" : "Nuwe tekslêer.txt",
+ "Select" : "Kies"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index adccd5aeb73..d440b15e7f2 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "التفاصيل",
"Please select tag(s) to add to the selection" : "يرجى تحديد علامة (علامات) لإضافتها إلى التحديد",
"Apply tag(s) to selection" : "تطبيق العلامة (العلامات) على التحديد",
- "Select" : "إختر",
"Pending" : "قيد الانتظار",
"Unable to determine date" : "تعذر تحديد التاريخ",
"This operation is forbidden" : "هذة العملية ممنوعة ",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "تم حذف المشاركات",
"Pending shares" : "انتظار المشاركات",
"Text file" : "ملف نصي",
- "New text file.txt" : "ملف نصي جديد fille.txt"
+ "New text file.txt" : "ملف نصي جديد fille.txt",
+ "Select" : "إختر"
},
"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/files/l10n/ar.json b/apps/files/l10n/ar.json
index f1ef0a03380..5d8900cbc58 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -39,7 +39,6 @@
"Details" : "التفاصيل",
"Please select tag(s) to add to the selection" : "يرجى تحديد علامة (علامات) لإضافتها إلى التحديد",
"Apply tag(s) to selection" : "تطبيق العلامة (العلامات) على التحديد",
- "Select" : "إختر",
"Pending" : "قيد الانتظار",
"Unable to determine date" : "تعذر تحديد التاريخ",
"This operation is forbidden" : "هذة العملية ممنوعة ",
@@ -208,6 +207,7 @@
"Deleted shares" : "تم حذف المشاركات",
"Pending shares" : "انتظار المشاركات",
"Text file" : "ملف نصي",
- "New text file.txt" : "ملف نصي جديد fille.txt"
+ "New text file.txt" : "ملف نصي جديد fille.txt",
+ "Select" : "إختر"
},"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/files/l10n/ast.js b/apps/files/l10n/ast.js
index eaf5148aa9f..692be48bb95 100644
--- a/apps/files/l10n/ast.js
+++ b/apps/files/l10n/ast.js
@@ -27,7 +27,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Nun pudo cargase la información del ficheru «{file}»",
"Files" : "Ficheros",
"Details" : "Detalles",
- "Select" : "Esbillar",
"Pending" : "Pendiente",
"Unable to determine date" : "Imposible determinar la fecha",
"This operation is forbidden" : "La operación ta prohibida",
@@ -108,6 +107,7 @@ OC.L10N.register(
"Shared with you" : "Shared with you",
"Shared by link" : "Compartíos per enllaz",
"Text file" : "Ficheru de testu",
- "New text file.txt" : "Nuevu testu ficheru.txt"
+ "New text file.txt" : "Nuevu testu ficheru.txt",
+ "Select" : "Esbillar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json
index 07f63aa72ff..9f27391c59a 100644
--- a/apps/files/l10n/ast.json
+++ b/apps/files/l10n/ast.json
@@ -25,7 +25,6 @@
"Could not load info for file \"{file}\"" : "Nun pudo cargase la información del ficheru «{file}»",
"Files" : "Ficheros",
"Details" : "Detalles",
- "Select" : "Esbillar",
"Pending" : "Pendiente",
"Unable to determine date" : "Imposible determinar la fecha",
"This operation is forbidden" : "La operación ta prohibida",
@@ -106,6 +105,7 @@
"Shared with you" : "Shared with you",
"Shared by link" : "Compartíos per enllaz",
"Text file" : "Ficheru de testu",
- "New text file.txt" : "Nuevu testu ficheru.txt"
+ "New text file.txt" : "Nuevu testu ficheru.txt",
+ "Select" : "Esbillar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/bg.js b/apps/files/l10n/bg.js
index 3f1cd257ac5..b1abc90f291 100644
--- a/apps/files/l10n/bg.js
+++ b/apps/files/l10n/bg.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Подробности",
"Please select tag(s) to add to the selection" : "Моля, изберете етикет(и), който да добавите към селекцията",
"Apply tag(s) to selection" : "Прилагане на етикет(и) към селекцията",
- "Select" : "Избери",
"Pending" : "Чакащо",
"Unable to determine date" : "Неуспешно установяване на дата",
"This operation is forbidden" : "Операцията е забранена",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Изтрити",
"Pending shares" : "Чакащи споделяния",
"Text file" : "Текстов файл",
- "New text file.txt" : "Текстов файл.txt"
+ "New text file.txt" : "Текстов файл.txt",
+ "Select" : "Избери"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/bg.json b/apps/files/l10n/bg.json
index 11550b5d6bc..c7f042ef1f8 100644
--- a/apps/files/l10n/bg.json
+++ b/apps/files/l10n/bg.json
@@ -39,7 +39,6 @@
"Details" : "Подробности",
"Please select tag(s) to add to the selection" : "Моля, изберете етикет(и), който да добавите към селекцията",
"Apply tag(s) to selection" : "Прилагане на етикет(и) към селекцията",
- "Select" : "Избери",
"Pending" : "Чакащо",
"Unable to determine date" : "Неуспешно установяване на дата",
"This operation is forbidden" : "Операцията е забранена",
@@ -208,6 +207,7 @@
"Deleted shares" : "Изтрити",
"Pending shares" : "Чакащи споделяния",
"Text file" : "Текстов файл",
- "New text file.txt" : "Текстов файл.txt"
+ "New text file.txt" : "Текстов файл.txt",
+ "Select" : "Избери"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/br.js b/apps/files/l10n/br.js
index 8784970fe98..1a475cbfcb0 100644
--- a/apps/files/l10n/br.js
+++ b/apps/files/l10n/br.js
@@ -38,7 +38,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Dibosupl eo kargañ titouroù ar restr \"{file}\"",
"Files" : "Restroù",
"Details" : "Munudoù",
- "Select" : "Dibab",
"Pending" : "O c'hortoz",
"Unable to determine date" : "Dibosupl eo resisaat an deiziat",
"This operation is forbidden" : "Difennet eo an ober-mañ",
@@ -184,6 +183,7 @@ OC.L10N.register(
"Deleted shares" : "Rannañ dilemet",
"Pending shares" : "Rannañ o c'hortoz",
"Text file" : "Restr testenn",
- "New text file.txt" : "Restr testenn nevez rest.txt"
+ "New text file.txt" : "Restr testenn nevez rest.txt",
+ "Select" : "Dibab"
},
"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);");
diff --git a/apps/files/l10n/br.json b/apps/files/l10n/br.json
index 4cc4685d777..492550723d5 100644
--- a/apps/files/l10n/br.json
+++ b/apps/files/l10n/br.json
@@ -36,7 +36,6 @@
"Could not load info for file \"{file}\"" : "Dibosupl eo kargañ titouroù ar restr \"{file}\"",
"Files" : "Restroù",
"Details" : "Munudoù",
- "Select" : "Dibab",
"Pending" : "O c'hortoz",
"Unable to determine date" : "Dibosupl eo resisaat an deiziat",
"This operation is forbidden" : "Difennet eo an ober-mañ",
@@ -182,6 +181,7 @@
"Deleted shares" : "Rannañ dilemet",
"Pending shares" : "Rannañ o c'hortoz",
"Text file" : "Restr testenn",
- "New text file.txt" : "Restr testenn nevez rest.txt"
+ "New text file.txt" : "Restr testenn nevez rest.txt",
+ "Select" : "Dibab"
},"pluralForm" :"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index 0c8311d183c..d9ef781d1da 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Detalls",
"Please select tag(s) to add to the selection" : "Seleccioneu les etiquetes que voleu afegir a la selecció",
"Apply tag(s) to selection" : "Aplica les etiquetes a la selecció",
- "Select" : "Selecciona",
"Pending" : "Pendent",
"Unable to determine date" : "No s'ha pogut determinar la data",
"This operation is forbidden" : "Aquesta operació no està permesa",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Suprimit",
"Pending shares" : "Pendent",
"Text file" : "Fitxer de text",
- "New text file.txt" : "Fitxer de text nou.txt"
+ "New text file.txt" : "Fitxer de text nou.txt",
+ "Select" : "Selecciona"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 6fca20a475e..3dc5d587e64 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -39,7 +39,6 @@
"Details" : "Detalls",
"Please select tag(s) to add to the selection" : "Seleccioneu les etiquetes que voleu afegir a la selecció",
"Apply tag(s) to selection" : "Aplica les etiquetes a la selecció",
- "Select" : "Selecciona",
"Pending" : "Pendent",
"Unable to determine date" : "No s'ha pogut determinar la data",
"This operation is forbidden" : "Aquesta operació no està permesa",
@@ -208,6 +207,7 @@
"Deleted shares" : "Suprimit",
"Pending shares" : "Pendent",
"Text file" : "Fitxer de text",
- "New text file.txt" : "Fitxer de text nou.txt"
+ "New text file.txt" : "Fitxer de text nou.txt",
+ "Select" : "Selecciona"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js
index b5f17d817e4..63aa0657c5f 100644
--- a/apps/files/l10n/cs.js
+++ b/apps/files/l10n/cs.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Podrobnosti",
"Please select tag(s) to add to the selection" : "Vyberte štítky které přidat do výběru",
"Apply tag(s) to selection" : "Uplatnit štítky na výběr",
- "Select" : "Vybrat",
"Pending" : "Nevyřízené",
"Unable to determine date" : "Nelze určit datum",
"This operation is forbidden" : "Tato operace je zakázána",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Smazaná sdílení",
"Pending shares" : "Čekající sdílení",
"Text file" : "Textový soubor",
- "New text file.txt" : "Nový textový soubor.txt"
+ "New text file.txt" : "Nový textový soubor.txt",
+ "Select" : "Vybrat"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json
index c6b28dac723..a5e6a534f13 100644
--- a/apps/files/l10n/cs.json
+++ b/apps/files/l10n/cs.json
@@ -39,7 +39,6 @@
"Details" : "Podrobnosti",
"Please select tag(s) to add to the selection" : "Vyberte štítky které přidat do výběru",
"Apply tag(s) to selection" : "Uplatnit štítky na výběr",
- "Select" : "Vybrat",
"Pending" : "Nevyřízené",
"Unable to determine date" : "Nelze určit datum",
"This operation is forbidden" : "Tato operace je zakázána",
@@ -208,6 +207,7 @@
"Deleted shares" : "Smazaná sdílení",
"Pending shares" : "Čekající sdílení",
"Text file" : "Textový soubor",
- "New text file.txt" : "Nový textový soubor.txt"
+ "New text file.txt" : "Nový textový soubor.txt",
+ "Select" : "Vybrat"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index 158127c1bcc..c67cb9bb50e 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Detaljer",
"Please select tag(s) to add to the selection" : "Vælg venligst tag(s) for at tilføje til udvalget",
"Apply tag(s) to selection" : "Anvend tag(s) på markeringen",
- "Select" : "Vælg",
"Pending" : "Afventer",
"Unable to determine date" : "Kan ikke fastslå datoen",
"This operation is forbidden" : "Denne operation er forbudt",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Slettede delinger",
"Pending shares" : "Afventende delinger",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekst file.txt"
+ "New text file.txt" : "Ny tekst file.txt",
+ "Select" : "Vælg"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index 920876d41b7..e7bbe67ebf4 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -39,7 +39,6 @@
"Details" : "Detaljer",
"Please select tag(s) to add to the selection" : "Vælg venligst tag(s) for at tilføje til udvalget",
"Apply tag(s) to selection" : "Anvend tag(s) på markeringen",
- "Select" : "Vælg",
"Pending" : "Afventer",
"Unable to determine date" : "Kan ikke fastslå datoen",
"This operation is forbidden" : "Denne operation er forbudt",
@@ -208,6 +207,7 @@
"Deleted shares" : "Slettede delinger",
"Pending shares" : "Afventende delinger",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekst file.txt"
+ "New text file.txt" : "Ny tekst file.txt",
+ "Select" : "Vælg"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 964a31a1efb..c545cec71a1 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Details",
"Please select tag(s) to add to the selection" : "Bitte wähle das/die Schlagwort(e) aus, das/die Du zur Auswahl hinzufügen möchtest",
"Apply tag(s) to selection" : "Schlagwort(e) auf die Auswahl anwenden",
- "Select" : "Auswählen",
"Pending" : "Ausstehend",
"Unable to determine date" : "Datum konnte nicht ermittelt werden",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Gelöschte Freigaben",
"Pending shares" : "Ausstehende Freigaben",
"Text file" : "Textdatei",
- "New text file.txt" : "Neue Textdatei file.txt"
+ "New text file.txt" : "Neue Textdatei file.txt",
+ "Select" : "Auswählen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index d43871ebef6..433a2b3a4d4 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -39,7 +39,6 @@
"Details" : "Details",
"Please select tag(s) to add to the selection" : "Bitte wähle das/die Schlagwort(e) aus, das/die Du zur Auswahl hinzufügen möchtest",
"Apply tag(s) to selection" : "Schlagwort(e) auf die Auswahl anwenden",
- "Select" : "Auswählen",
"Pending" : "Ausstehend",
"Unable to determine date" : "Datum konnte nicht ermittelt werden",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
@@ -208,6 +207,7 @@
"Deleted shares" : "Gelöschte Freigaben",
"Pending shares" : "Ausstehende Freigaben",
"Text file" : "Textdatei",
- "New text file.txt" : "Neue Textdatei file.txt"
+ "New text file.txt" : "Neue Textdatei file.txt",
+ "Select" : "Auswählen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 6ed226fe056..1d18d811b97 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Details",
"Please select tag(s) to add to the selection" : "Bitte wählen Sie das/die Schlagwort(e) aus, das/die Sie zur Auswahl hinzufügen möchten",
"Apply tag(s) to selection" : "Schlagwort(e) auf die Auswahl anwenden",
- "Select" : "Auswählen",
"Pending" : "Ausstehend",
"Unable to determine date" : "Datum konnte nicht ermittelt werden",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Gelöschte Freigaben",
"Pending shares" : "Ausstehende Freigaben",
"Text file" : "Textdatei",
- "New text file.txt" : "Neue Textdatei file.txt"
+ "New text file.txt" : "Neue Textdatei file.txt",
+ "Select" : "Auswählen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index b694a27862e..16e32256fe7 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -39,7 +39,6 @@
"Details" : "Details",
"Please select tag(s) to add to the selection" : "Bitte wählen Sie das/die Schlagwort(e) aus, das/die Sie zur Auswahl hinzufügen möchten",
"Apply tag(s) to selection" : "Schlagwort(e) auf die Auswahl anwenden",
- "Select" : "Auswählen",
"Pending" : "Ausstehend",
"Unable to determine date" : "Datum konnte nicht ermittelt werden",
"This operation is forbidden" : "Diese Operation ist nicht erlaubt",
@@ -208,6 +207,7 @@
"Deleted shares" : "Gelöschte Freigaben",
"Pending shares" : "Ausstehende Freigaben",
"Text file" : "Textdatei",
- "New text file.txt" : "Neue Textdatei file.txt"
+ "New text file.txt" : "Neue Textdatei file.txt",
+ "Select" : "Auswählen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index a610c8317d6..aee81f0b70e 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Λεπτομέρειες",
"Please select tag(s) to add to the selection" : "Επιλέξτε ετικέτα (ες) για προσθήκη στην επιλογή",
"Apply tag(s) to selection" : "Εφαρμογή ετικετών στην επιλογή",
- "Select" : "Επιλογή",
"Pending" : "Εκκρεμεί",
"Unable to determine date" : "Αδυναμία προσδιορισμού ημερομηνίας",
"This operation is forbidden" : "Αυτή η λειτουργία απαγορεύεται",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Διαγραμμένα κοινόχρηστα",
"Pending shares" : "Κοινή χρήση σε εκκρεμότητα",
"Text file" : "Αρχείο κειμένου",
- "New text file.txt" : "Νέο αρχείο file.txt"
+ "New text file.txt" : "Νέο αρχείο file.txt",
+ "Select" : "Επιλογή"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index 7c9603670af..2c99b70d7d8 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -39,7 +39,6 @@
"Details" : "Λεπτομέρειες",
"Please select tag(s) to add to the selection" : "Επιλέξτε ετικέτα (ες) για προσθήκη στην επιλογή",
"Apply tag(s) to selection" : "Εφαρμογή ετικετών στην επιλογή",
- "Select" : "Επιλογή",
"Pending" : "Εκκρεμεί",
"Unable to determine date" : "Αδυναμία προσδιορισμού ημερομηνίας",
"This operation is forbidden" : "Αυτή η λειτουργία απαγορεύεται",
@@ -208,6 +207,7 @@
"Deleted shares" : "Διαγραμμένα κοινόχρηστα",
"Pending shares" : "Κοινή χρήση σε εκκρεμότητα",
"Text file" : "Αρχείο κειμένου",
- "New text file.txt" : "Νέο αρχείο file.txt"
+ "New text file.txt" : "Νέο αρχείο file.txt",
+ "Select" : "Επιλογή"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index 843ccfdb203..d3844c5caf0 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
- "Select" : "Select",
"Pending" : "Pending",
"Unable to determine date" : "Unable to determine date",
"This operation is forbidden" : "This operation is forbidden",
@@ -147,6 +146,7 @@ OC.L10N.register(
"Shared with you" : "Shared with you",
"Shared by link" : "Shared by link",
"Text file" : "Text file",
- "New text file.txt" : "New text file.txt"
+ "New text file.txt" : "New text file.txt",
+ "Select" : "Select"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index cdcb3f8e3c6..a149a4ad13c 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -30,7 +30,6 @@
"Could not load info for file \"{file}\"" : "Could not load info for file \"{file}\"",
"Files" : "Files",
"Details" : "Details",
- "Select" : "Select",
"Pending" : "Pending",
"Unable to determine date" : "Unable to determine date",
"This operation is forbidden" : "This operation is forbidden",
@@ -145,6 +144,7 @@
"Shared with you" : "Shared with you",
"Shared by link" : "Shared by link",
"Text file" : "Text file",
- "New text file.txt" : "New text file.txt"
+ "New text file.txt" : "New text file.txt",
+ "Select" : "Select"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
index 64bff11696f..6cbea2229e4 100644
--- a/apps/files/l10n/eo.js
+++ b/apps/files/l10n/eo.js
@@ -37,7 +37,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Informo pri dosiero „{file}“ ne legeblis",
"Files" : "Dosieroj",
"Details" : "Detaloj",
- "Select" : "Elekti",
"Pending" : "Pritraktotaj",
"Unable to determine date" : "Ne eblas determini daton",
"This operation is forbidden" : "Ĉi tiu operacio malpermesatas",
@@ -158,6 +157,7 @@ OC.L10N.register(
"Shared by link" : "Kunhavata per ligilo",
"Deleted shares" : "Forigitaj kunhavigoj",
"Text file" : "Tekstodosiero",
- "New text file.txt" : "Nova tekstodosiero.txt"
+ "New text file.txt" : "Nova tekstodosiero.txt",
+ "Select" : "Elekti"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
index 9edf9e42ef3..368a87285aa 100644
--- a/apps/files/l10n/eo.json
+++ b/apps/files/l10n/eo.json
@@ -35,7 +35,6 @@
"Could not load info for file \"{file}\"" : "Informo pri dosiero „{file}“ ne legeblis",
"Files" : "Dosieroj",
"Details" : "Detaloj",
- "Select" : "Elekti",
"Pending" : "Pritraktotaj",
"Unable to determine date" : "Ne eblas determini daton",
"This operation is forbidden" : "Ĉi tiu operacio malpermesatas",
@@ -156,6 +155,7 @@
"Shared by link" : "Kunhavata per ligilo",
"Deleted shares" : "Forigitaj kunhavigoj",
"Text file" : "Tekstodosiero",
- "New text file.txt" : "Nova tekstodosiero.txt"
+ "New text file.txt" : "Nova tekstodosiero.txt",
+ "Select" : "Elekti"
},"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 5c18c7a6cc1..b8d683311ec 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Detalles",
"Please select tag(s) to add to the selection" : "Seleccione la(s) etiqueta(s) para añadir a la selección",
"Apply tag(s) to selection" : "Aplicar etiqueta(s) a la selección",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No se ha podido determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Recursos compartidos eliminados",
"Pending shares" : "Recursos compartidos pendientes",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo archivo.txt"
+ "New text file.txt" : "Nuevo archivo.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 74c71e8738d..3af42acfd21 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -39,7 +39,6 @@
"Details" : "Detalles",
"Please select tag(s) to add to the selection" : "Seleccione la(s) etiqueta(s) para añadir a la selección",
"Apply tag(s) to selection" : "Aplicar etiqueta(s) a la selección",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No se ha podido determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -208,6 +207,7 @@
"Deleted shares" : "Recursos compartidos eliminados",
"Pending shares" : "Recursos compartidos pendientes",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo archivo.txt"
+ "New text file.txt" : "Nuevo archivo.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_419.js b/apps/files/l10n/es_419.js
index d4caa5aaf05..337a54aa01e 100644
--- a/apps/files/l10n/es_419.js
+++ b/apps/files/l10n/es_419.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -132,6 +131,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_419.json b/apps/files/l10n/es_419.json
index 88ebd61fc3d..fc7ec4f36b7 100644
--- a/apps/files/l10n/es_419.json
+++ b/apps/files/l10n/es_419.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -130,6 +129,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js
index ca83c04d5b7..9b80e23d7d5 100644
--- a/apps/files/l10n/es_AR.js
+++ b/apps/files/l10n/es_AR.js
@@ -34,7 +34,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -138,6 +137,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por link",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json
index 3c0acd4f551..a000d786481 100644
--- a/apps/files/l10n/es_AR.json
+++ b/apps/files/l10n/es_AR.json
@@ -32,7 +32,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -136,6 +135,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por link",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_CL.js b/apps/files/l10n/es_CL.js
index f170a02fbe3..cc754bf0c81 100644
--- a/apps/files/l10n/es_CL.js
+++ b/apps/files/l10n/es_CL.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -142,6 +141,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_CL.json b/apps/files/l10n/es_CL.json
index bd7006d86fc..b78522c5aec 100644
--- a/apps/files/l10n/es_CL.json
+++ b/apps/files/l10n/es_CL.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -140,6 +139,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_CO.js b/apps/files/l10n/es_CO.js
index 4eb07749966..e385045c8b7 100644
--- a/apps/files/l10n/es_CO.js
+++ b/apps/files/l10n/es_CO.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -142,6 +141,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_CO.json b/apps/files/l10n/es_CO.json
index 9a181ae74dc..59842e25f89 100644
--- a/apps/files/l10n/es_CO.json
+++ b/apps/files/l10n/es_CO.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -140,6 +139,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_CR.js b/apps/files/l10n/es_CR.js
index f113a1182f1..0ec257bc097 100644
--- a/apps/files/l10n/es_CR.js
+++ b/apps/files/l10n/es_CR.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -141,6 +140,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_CR.json b/apps/files/l10n/es_CR.json
index acba685b922..244e190e442 100644
--- a/apps/files/l10n/es_CR.json
+++ b/apps/files/l10n/es_CR.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -139,6 +138,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_DO.js b/apps/files/l10n/es_DO.js
index f113a1182f1..0ec257bc097 100644
--- a/apps/files/l10n/es_DO.js
+++ b/apps/files/l10n/es_DO.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -141,6 +140,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_DO.json b/apps/files/l10n/es_DO.json
index acba685b922..244e190e442 100644
--- a/apps/files/l10n/es_DO.json
+++ b/apps/files/l10n/es_DO.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -139,6 +138,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js
index f113a1182f1..0ec257bc097 100644
--- a/apps/files/l10n/es_EC.js
+++ b/apps/files/l10n/es_EC.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -141,6 +140,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json
index acba685b922..244e190e442 100644
--- a/apps/files/l10n/es_EC.json
+++ b/apps/files/l10n/es_EC.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -139,6 +138,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_GT.js b/apps/files/l10n/es_GT.js
index f113a1182f1..0ec257bc097 100644
--- a/apps/files/l10n/es_GT.js
+++ b/apps/files/l10n/es_GT.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -141,6 +140,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_GT.json b/apps/files/l10n/es_GT.json
index acba685b922..244e190e442 100644
--- a/apps/files/l10n/es_GT.json
+++ b/apps/files/l10n/es_GT.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -139,6 +138,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_HN.js b/apps/files/l10n/es_HN.js
index d4caa5aaf05..337a54aa01e 100644
--- a/apps/files/l10n/es_HN.js
+++ b/apps/files/l10n/es_HN.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -132,6 +131,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_HN.json b/apps/files/l10n/es_HN.json
index 88ebd61fc3d..fc7ec4f36b7 100644
--- a/apps/files/l10n/es_HN.json
+++ b/apps/files/l10n/es_HN.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -130,6 +129,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index 7db3f7b5102..1af808a9b10 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -143,6 +142,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index 2e8272a82f3..ba7479a842e 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -141,6 +140,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_NI.js b/apps/files/l10n/es_NI.js
index d4caa5aaf05..337a54aa01e 100644
--- a/apps/files/l10n/es_NI.js
+++ b/apps/files/l10n/es_NI.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -132,6 +131,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_NI.json b/apps/files/l10n/es_NI.json
index 88ebd61fc3d..fc7ec4f36b7 100644
--- a/apps/files/l10n/es_NI.json
+++ b/apps/files/l10n/es_NI.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -130,6 +129,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_PA.js b/apps/files/l10n/es_PA.js
index d4caa5aaf05..337a54aa01e 100644
--- a/apps/files/l10n/es_PA.js
+++ b/apps/files/l10n/es_PA.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -132,6 +131,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_PA.json b/apps/files/l10n/es_PA.json
index 88ebd61fc3d..fc7ec4f36b7 100644
--- a/apps/files/l10n/es_PA.json
+++ b/apps/files/l10n/es_PA.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -130,6 +129,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_PE.js b/apps/files/l10n/es_PE.js
index e30f12ee203..f818c5e97ca 100644
--- a/apps/files/l10n/es_PE.js
+++ b/apps/files/l10n/es_PE.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -132,6 +131,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_PE.json b/apps/files/l10n/es_PE.json
index fb00035a503..d56d2557479 100644
--- a/apps/files/l10n/es_PE.json
+++ b/apps/files/l10n/es_PE.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -130,6 +129,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_PR.js b/apps/files/l10n/es_PR.js
index d4caa5aaf05..337a54aa01e 100644
--- a/apps/files/l10n/es_PR.js
+++ b/apps/files/l10n/es_PR.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -132,6 +131,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_PR.json b/apps/files/l10n/es_PR.json
index 88ebd61fc3d..fc7ec4f36b7 100644
--- a/apps/files/l10n/es_PR.json
+++ b/apps/files/l10n/es_PR.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -130,6 +129,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_PY.js b/apps/files/l10n/es_PY.js
index 60d981cf7e9..616207eff2b 100644
--- a/apps/files/l10n/es_PY.js
+++ b/apps/files/l10n/es_PY.js
@@ -38,7 +38,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -147,6 +146,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_PY.json b/apps/files/l10n/es_PY.json
index 844dff8ab63..ca08c6ef33d 100644
--- a/apps/files/l10n/es_PY.json
+++ b/apps/files/l10n/es_PY.json
@@ -36,7 +36,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -145,6 +144,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_SV.js b/apps/files/l10n/es_SV.js
index f113a1182f1..0ec257bc097 100644
--- a/apps/files/l10n/es_SV.js
+++ b/apps/files/l10n/es_SV.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -141,6 +140,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_SV.json b/apps/files/l10n/es_SV.json
index acba685b922..244e190e442 100644
--- a/apps/files/l10n/es_SV.json
+++ b/apps/files/l10n/es_SV.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -139,6 +138,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/es_UY.js b/apps/files/l10n/es_UY.js
index d4caa5aaf05..337a54aa01e 100644
--- a/apps/files/l10n/es_UY.js
+++ b/apps/files/l10n/es_UY.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -132,6 +131,7 @@ OC.L10N.register(
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_UY.json b/apps/files/l10n/es_UY.json
index 88ebd61fc3d..fc7ec4f36b7 100644
--- a/apps/files/l10n/es_UY.json
+++ b/apps/files/l10n/es_UY.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"",
"Files" : "Archivos",
"Details" : "Detalles",
- "Select" : "Seleccionar",
"Pending" : "Pendiente",
"Unable to determine date" : "No fue posible determinar la fecha",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -130,6 +129,7 @@
"Shared with you" : "Compartido con usted",
"Shared by link" : "Compartido por liga",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index daa5044323c..0036dcd4775 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -32,7 +32,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Faili \"{file}\" info laadimine ebaõnnestus",
"Files" : "Failid",
"Details" : "Üksikasjad",
- "Select" : "Vali",
"Pending" : "Ootel",
"Unable to determine date" : "Kuupäeva tuvastamine ei õnnestunud",
"This operation is forbidden" : "See toiming on keelatud",
@@ -140,6 +139,7 @@ OC.L10N.register(
"Deleted shares" : "Kustutatud jagamised",
"Pending shares" : "Ootel jagamised",
"Text file" : "Tekstifail",
- "New text file.txt" : "Uus tekstifail.txt"
+ "New text file.txt" : "Uus tekstifail.txt",
+ "Select" : "Vali"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 60b47f3fbbf..36ffbdf415b 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -30,7 +30,6 @@
"Could not load info for file \"{file}\"" : "Faili \"{file}\" info laadimine ebaõnnestus",
"Files" : "Failid",
"Details" : "Üksikasjad",
- "Select" : "Vali",
"Pending" : "Ootel",
"Unable to determine date" : "Kuupäeva tuvastamine ei õnnestunud",
"This operation is forbidden" : "See toiming on keelatud",
@@ -138,6 +137,7 @@
"Deleted shares" : "Kustutatud jagamised",
"Pending shares" : "Ootel jagamised",
"Text file" : "Tekstifail",
- "New text file.txt" : "Uus tekstifail.txt"
+ "New text file.txt" : "Uus tekstifail.txt",
+ "Select" : "Vali"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js
index 40d191782ff..ceb803ab1de 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Xehetasunak",
"Please select tag(s) to add to the selection" : "Hautatu etiketa(k) hautapenera gehitzeko",
"Apply tag(s) to selection" : "Aplikatu etiketa(k) hautapenari",
- "Select" : "Hautatu",
"Pending" : "Zain",
"Unable to determine date" : "Ezin izan da data zehaztu",
"This operation is forbidden" : "Eragiketa hau debekatuta dago",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Ezabatutako partekatzeak",
"Pending shares" : "Zain dauden partekatzeak",
"Text file" : "Testu-fitxategia",
- "New text file.txt" : "Testu-fitxategi berria.txt"
+ "New text file.txt" : "Testu-fitxategi berria.txt",
+ "Select" : "Hautatu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index 3167e1d342e..9793f8c37b1 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -39,7 +39,6 @@
"Details" : "Xehetasunak",
"Please select tag(s) to add to the selection" : "Hautatu etiketa(k) hautapenera gehitzeko",
"Apply tag(s) to selection" : "Aplikatu etiketa(k) hautapenari",
- "Select" : "Hautatu",
"Pending" : "Zain",
"Unable to determine date" : "Ezin izan da data zehaztu",
"This operation is forbidden" : "Eragiketa hau debekatuta dago",
@@ -208,6 +207,7 @@
"Deleted shares" : "Ezabatutako partekatzeak",
"Pending shares" : "Zain dauden partekatzeak",
"Text file" : "Testu-fitxategia",
- "New text file.txt" : "Testu-fitxategi berria.txt"
+ "New text file.txt" : "Testu-fitxategi berria.txt",
+ "Select" : "Hautatu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index 0b0b5f385fa..f59f72a8d99 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -37,7 +37,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "بارگیری اطلاعات برای پرونده امکان پذیر نیست \"{file}\"",
"Files" : "پرونده‌ها",
"Details" : "جزئیات",
- "Select" : "انتخاب",
"Pending" : "در انتظار",
"Unable to determine date" : "امکان تعیین تاریخ وجود ندارد",
"This operation is forbidden" : "این عملیات غیرمجاز است",
@@ -126,6 +125,7 @@ OC.L10N.register(
"Deleted shares" : "اشتراک گذاری های حذف شده",
"Pending shares" : "اشتراک در حال انتظار ",
"Text file" : "فایل متنی",
- "New text file.txt" : "فایل متنی جدید .txt"
+ "New text file.txt" : "فایل متنی جدید .txt",
+ "Select" : "انتخاب"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index d83d9688899..a75b48010fb 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -35,7 +35,6 @@
"Could not load info for file \"{file}\"" : "بارگیری اطلاعات برای پرونده امکان پذیر نیست \"{file}\"",
"Files" : "پرونده‌ها",
"Details" : "جزئیات",
- "Select" : "انتخاب",
"Pending" : "در انتظار",
"Unable to determine date" : "امکان تعیین تاریخ وجود ندارد",
"This operation is forbidden" : "این عملیات غیرمجاز است",
@@ -124,6 +123,7 @@
"Deleted shares" : "اشتراک گذاری های حذف شده",
"Pending shares" : "اشتراک در حال انتظار ",
"Text file" : "فایل متنی",
- "New text file.txt" : "فایل متنی جدید .txt"
+ "New text file.txt" : "فایل متنی جدید .txt",
+ "Select" : "انتخاب"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js
index 1a6dbe6cedb..b08bd91c679 100644
--- a/apps/files/l10n/fi.js
+++ b/apps/files/l10n/fi.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Tiedot",
"Please select tag(s) to add to the selection" : "Valitse lisättävät tunnisteet valinnalle",
"Apply tag(s) to selection" : "Hyväksy tunnisteet valinnalle",
- "Select" : "Valitse",
"Pending" : "Odottaa",
"Unable to determine date" : "Päivämäärän määrittäminen epäonnistui",
"This operation is forbidden" : "Tämä toiminto on kielletty",
@@ -81,6 +80,7 @@ OC.L10N.register(
"File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.",
"\"/\" is not allowed inside a file name." : "\"/\" ei ole sallittu merkki tiedostonimessä.",
"\"{name}\" is not an allowed filetype" : "\"{name}\" ei ole sallittu tiedostomuoto",
+ "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Käyttäjän {owner} tallennustila on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Ryhmäkansio \"{mountPoint}\" on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Erillinen tallennustila \"{mountPoint}\" on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"Your storage is full, files cannot be updated or synced anymore!" : "Tallennustilasi on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
@@ -131,7 +131,13 @@ OC.L10N.register(
"{user} deleted an encrypted file in {file}" : "{user} poisti salatun tiedoston {file}",
"You restored {file}" : "Palautit tiedoston {file}",
"{user} restored {file}" : "{user} palautti tiedoston {file}",
+ "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Uudelleennimesit tiedoston {oldfile} (piilotettu) tiedostoksi {newfile} (piilotettu)",
+ "You renamed {oldfile} (hidden) to {newfile}" : "Uudelleennimesit tiedoston {oldfile} (piilotettu) tiedostoksi {newfile}",
+ "You renamed {oldfile} to {newfile} (hidden)" : "Uudelleennimesit tiedoston {oldfile} tiedostoksi {newfile} (piilotettu)",
"You renamed {oldfile} to {newfile}" : "Uudelleennimesit tiedoston {oldfile} tiedostoksi {newfile}",
+ "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} uudelleennimesi tiedoston {oldfile} (piilotettu) tiedostoksi {newfile} (piilotettu)",
+ "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} uudelleennimesi tiedoston {oldfile} (piilotettu) tiedostoksi {newfile}",
+ "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} uudelleennimesi tiedoston {oldfile} tiedostoksi {newfile} (piilotettu)",
"{user} renamed {oldfile} to {newfile}" : "{user} uudelleennimesi tiedoston {oldfile} tiedostoksi {newfile}",
"You moved {oldfile} to {newfile}" : "Siirsit tiedoston {oldfile} tiedostoksi {newfile}",
"{user} moved {oldfile} to {newfile}" : "{user} siirsi tiedoston {oldfile} tiedostoksi {newfile}",
@@ -200,6 +206,7 @@ OC.L10N.register(
"Deleted shares" : "Poistetut jaot",
"Pending shares" : "Odottavat jaot",
"Text file" : "Tekstitiedosto",
- "New text file.txt" : "Uusi tekstitiedosto.txt"
+ "New text file.txt" : "Uusi tekstitiedosto.txt",
+ "Select" : "Valitse"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json
index fd8d9c9cce7..db45dd04d3b 100644
--- a/apps/files/l10n/fi.json
+++ b/apps/files/l10n/fi.json
@@ -39,7 +39,6 @@
"Details" : "Tiedot",
"Please select tag(s) to add to the selection" : "Valitse lisättävät tunnisteet valinnalle",
"Apply tag(s) to selection" : "Hyväksy tunnisteet valinnalle",
- "Select" : "Valitse",
"Pending" : "Odottaa",
"Unable to determine date" : "Päivämäärän määrittäminen epäonnistui",
"This operation is forbidden" : "Tämä toiminto on kielletty",
@@ -79,6 +78,7 @@
"File name cannot be empty." : "Tiedoston nimi ei voi olla tyhjä.",
"\"/\" is not allowed inside a file name." : "\"/\" ei ole sallittu merkki tiedostonimessä.",
"\"{name}\" is not an allowed filetype" : "\"{name}\" ei ole sallittu tiedostomuoto",
+ "Storage of {owner} is full, files cannot be updated or synced anymore!" : "Käyttäjän {owner} tallennustila on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"Group folder \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Ryhmäkansio \"{mountPoint}\" on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"External storage \"{mountPoint}\" is full, files cannot be updated or synced anymore!" : "Erillinen tallennustila \"{mountPoint}\" on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
"Your storage is full, files cannot be updated or synced anymore!" : "Tallennustilasi on täynnä, tiedostoja ei voi enää päivittää tai synkronoida!",
@@ -129,7 +129,13 @@
"{user} deleted an encrypted file in {file}" : "{user} poisti salatun tiedoston {file}",
"You restored {file}" : "Palautit tiedoston {file}",
"{user} restored {file}" : "{user} palautti tiedoston {file}",
+ "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Uudelleennimesit tiedoston {oldfile} (piilotettu) tiedostoksi {newfile} (piilotettu)",
+ "You renamed {oldfile} (hidden) to {newfile}" : "Uudelleennimesit tiedoston {oldfile} (piilotettu) tiedostoksi {newfile}",
+ "You renamed {oldfile} to {newfile} (hidden)" : "Uudelleennimesit tiedoston {oldfile} tiedostoksi {newfile} (piilotettu)",
"You renamed {oldfile} to {newfile}" : "Uudelleennimesit tiedoston {oldfile} tiedostoksi {newfile}",
+ "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} uudelleennimesi tiedoston {oldfile} (piilotettu) tiedostoksi {newfile} (piilotettu)",
+ "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} uudelleennimesi tiedoston {oldfile} (piilotettu) tiedostoksi {newfile}",
+ "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} uudelleennimesi tiedoston {oldfile} tiedostoksi {newfile} (piilotettu)",
"{user} renamed {oldfile} to {newfile}" : "{user} uudelleennimesi tiedoston {oldfile} tiedostoksi {newfile}",
"You moved {oldfile} to {newfile}" : "Siirsit tiedoston {oldfile} tiedostoksi {newfile}",
"{user} moved {oldfile} to {newfile}" : "{user} siirsi tiedoston {oldfile} tiedostoksi {newfile}",
@@ -198,6 +204,7 @@
"Deleted shares" : "Poistetut jaot",
"Pending shares" : "Odottavat jaot",
"Text file" : "Tekstitiedosto",
- "New text file.txt" : "Uusi tekstitiedosto.txt"
+ "New text file.txt" : "Uusi tekstitiedosto.txt",
+ "Select" : "Valitse"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 53b8f346edc..2a3ad3a5a49 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Détails",
"Please select tag(s) to add to the selection" : "Veuillez sélectionner la ou les étiquette(s) à ajouter à la sélection",
"Apply tag(s) to selection" : "Appliquer la ou les étiquette(s) à la sélection",
- "Select" : "Sélectionner",
"Pending" : "En attente",
"Unable to determine date" : "Impossible de déterminer la date",
"This operation is forbidden" : "Cette opération est interdite",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Partages supprimés",
"Pending shares" : "Partages en attente",
"Text file" : "Fichier texte",
- "New text file.txt" : "Nouveau fichier texte.txt"
+ "New text file.txt" : "Nouveau fichier texte.txt",
+ "Select" : "Sélectionner"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 9a28d45f6eb..d04c3c405f0 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -39,7 +39,6 @@
"Details" : "Détails",
"Please select tag(s) to add to the selection" : "Veuillez sélectionner la ou les étiquette(s) à ajouter à la sélection",
"Apply tag(s) to selection" : "Appliquer la ou les étiquette(s) à la sélection",
- "Select" : "Sélectionner",
"Pending" : "En attente",
"Unable to determine date" : "Impossible de déterminer la date",
"This operation is forbidden" : "Cette opération est interdite",
@@ -208,6 +207,7 @@
"Deleted shares" : "Partages supprimés",
"Pending shares" : "Partages en attente",
"Text file" : "Fichier texte",
- "New text file.txt" : "Nouveau fichier texte.txt"
+ "New text file.txt" : "Nouveau fichier texte.txt",
+ "Select" : "Sélectionner"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index 1f201aa1278..cd4c17585a8 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Detalles",
"Please select tag(s) to add to the selection" : "Elixe a etiqueta(s) para engadir á selección",
"Apply tag(s) to selection" : "Aplicar etiqueta(s) á selección",
- "Select" : "Seleccionar",
"Pending" : "Pendentes",
"Unable to determine date" : "Non é posíbel determinar a data",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -208,6 +207,7 @@ OC.L10N.register(
"Deleted shares" : "Recursos compartidos eliminados",
"Pending shares" : "Comparticións pendentes",
"Text file" : "Ficheiro de texto",
- "New text file.txt" : "Novo ficheiro de texto.txt"
+ "New text file.txt" : "Novo ficheiro de texto.txt",
+ "Select" : "Seleccionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index 053dc6e9c74..926242abe9a 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -39,7 +39,6 @@
"Details" : "Detalles",
"Please select tag(s) to add to the selection" : "Elixe a etiqueta(s) para engadir á selección",
"Apply tag(s) to selection" : "Aplicar etiqueta(s) á selección",
- "Select" : "Seleccionar",
"Pending" : "Pendentes",
"Unable to determine date" : "Non é posíbel determinar a data",
"This operation is forbidden" : "Esta operación está prohibida",
@@ -206,6 +205,7 @@
"Deleted shares" : "Recursos compartidos eliminados",
"Pending shares" : "Comparticións pendentes",
"Text file" : "Ficheiro de texto",
- "New text file.txt" : "Novo ficheiro de texto.txt"
+ "New text file.txt" : "Novo ficheiro de texto.txt",
+ "Select" : "Seleccionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 8316c8c0175..d977a0ee12b 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -39,7 +39,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "לא ניתן לטעון מידע על הקובץ „{file}”",
"Files" : "קבצים",
"Details" : "פרטים",
- "Select" : "בחר",
"Pending" : "ממתין",
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"This operation is forbidden" : "פעולה זו אסורה",
@@ -188,6 +187,7 @@ OC.L10N.register(
"Deleted shares" : "שיתופים שנמחקו",
"Pending shares" : "שיתופים ממתינים",
"Text file" : "קובץ טקסט",
- "New text file.txt" : "קובץ טקסט חדש.txt"
+ "New text file.txt" : "קובץ טקסט חדש.txt",
+ "Select" : "בחר"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index ab6cbb13577..e6a0d3db4c1 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -37,7 +37,6 @@
"Could not load info for file \"{file}\"" : "לא ניתן לטעון מידע על הקובץ „{file}”",
"Files" : "קבצים",
"Details" : "פרטים",
- "Select" : "בחר",
"Pending" : "ממתין",
"Unable to determine date" : "לא ניתן לקבוע תאריך",
"This operation is forbidden" : "פעולה זו אסורה",
@@ -186,6 +185,7 @@
"Deleted shares" : "שיתופים שנמחקו",
"Pending shares" : "שיתופים ממתינים",
"Text file" : "קובץ טקסט",
- "New text file.txt" : "קובץ טקסט חדש.txt"
+ "New text file.txt" : "קובץ טקסט חדש.txt",
+ "Select" : "בחר"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js
index 0733c838b31..6659eefe213 100644
--- a/apps/files/l10n/hr.js
+++ b/apps/files/l10n/hr.js
@@ -39,7 +39,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Nije moguće učitati podatke za datoteku „{file}”",
"Files" : "Datoteke",
"Details" : "Pojedinosti",
- "Select" : "Odaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nije moguće odrediti datum",
"This operation is forbidden" : "Ova radnja je zabranjena",
@@ -208,6 +207,7 @@ OC.L10N.register(
"Deleted shares" : "Izbrisana dijeljenja",
"Pending shares" : "Dijeljenja na čekanju",
"Text file" : "Tekstna datoteka",
- "New text file.txt" : "Nova tekstna datoteka.txt"
+ "New text file.txt" : "Nova tekstna datoteka.txt",
+ "Select" : "Odaberi"
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/files/l10n/hr.json b/apps/files/l10n/hr.json
index 98a7366ebfd..94eafcd4e1e 100644
--- a/apps/files/l10n/hr.json
+++ b/apps/files/l10n/hr.json
@@ -37,7 +37,6 @@
"Could not load info for file \"{file}\"" : "Nije moguće učitati podatke za datoteku „{file}”",
"Files" : "Datoteke",
"Details" : "Pojedinosti",
- "Select" : "Odaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nije moguće odrediti datum",
"This operation is forbidden" : "Ova radnja je zabranjena",
@@ -206,6 +205,7 @@
"Deleted shares" : "Izbrisana dijeljenja",
"Pending shares" : "Dijeljenja na čekanju",
"Text file" : "Tekstna datoteka",
- "New text file.txt" : "Nova tekstna datoteka.txt"
+ "New text file.txt" : "Nova tekstna datoteka.txt",
+ "Select" : "Odaberi"
},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js
index 2a1540b5973..d9a6af44b90 100644
--- a/apps/files/l10n/hu.js
+++ b/apps/files/l10n/hu.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Részletek",
"Please select tag(s) to add to the selection" : "Válassza ki a kijelöléshez adandó címkéket",
"Apply tag(s) to selection" : "Címkék alkalmazása a kijelölésre",
- "Select" : "Kiválasztás",
"Pending" : "Függőben",
"Unable to determine date" : "Nem lehet meghatározni a dátumot",
"This operation is forbidden" : "Ez a művelet tiltott",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Törölt megosztások",
"Pending shares" : "Függőben lévő megosztások",
"Text file" : "Szövegfájl",
- "New text file.txt" : "Új szövegfájl.txt"
+ "New text file.txt" : "Új szövegfájl.txt",
+ "Select" : "Kiválasztás"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json
index 13c85caf47d..5feeadb5bfc 100644
--- a/apps/files/l10n/hu.json
+++ b/apps/files/l10n/hu.json
@@ -39,7 +39,6 @@
"Details" : "Részletek",
"Please select tag(s) to add to the selection" : "Válassza ki a kijelöléshez adandó címkéket",
"Apply tag(s) to selection" : "Címkék alkalmazása a kijelölésre",
- "Select" : "Kiválasztás",
"Pending" : "Függőben",
"Unable to determine date" : "Nem lehet meghatározni a dátumot",
"This operation is forbidden" : "Ez a művelet tiltott",
@@ -208,6 +207,7 @@
"Deleted shares" : "Törölt megosztások",
"Pending shares" : "Függőben lévő megosztások",
"Text file" : "Szövegfájl",
- "New text file.txt" : "Új szövegfájl.txt"
+ "New text file.txt" : "Új szövegfájl.txt",
+ "Select" : "Kiválasztás"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ia.js b/apps/files/l10n/ia.js
index cf09fb7f704..e7352902c32 100644
--- a/apps/files/l10n/ia.js
+++ b/apps/files/l10n/ia.js
@@ -25,7 +25,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Impossibile cargar informationes pro file \"{file}\"",
"Files" : "Files",
"Details" : "Detalios",
- "Select" : "Selectionar",
"Pending" : "Pendente",
"Unable to determine date" : "Impossibile determinar data",
"This operation is forbidden" : "Iste operation es prohibite",
@@ -118,6 +117,7 @@ OC.L10N.register(
"Shared with you" : "Compartite con te",
"Shared by link" : "Compartite per ligamine",
"Text file" : "File de texto",
- "New text file.txt" : "Nove texto file.txt"
+ "New text file.txt" : "Nove texto file.txt",
+ "Select" : "Selectionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ia.json b/apps/files/l10n/ia.json
index 199cb61f289..7508e94955a 100644
--- a/apps/files/l10n/ia.json
+++ b/apps/files/l10n/ia.json
@@ -23,7 +23,6 @@
"Could not load info for file \"{file}\"" : "Impossibile cargar informationes pro file \"{file}\"",
"Files" : "Files",
"Details" : "Detalios",
- "Select" : "Selectionar",
"Pending" : "Pendente",
"Unable to determine date" : "Impossibile determinar data",
"This operation is forbidden" : "Iste operation es prohibite",
@@ -116,6 +115,7 @@
"Shared with you" : "Compartite con te",
"Shared by link" : "Compartite per ligamine",
"Text file" : "File de texto",
- "New text file.txt" : "Nove texto file.txt"
+ "New text file.txt" : "Nove texto file.txt",
+ "Select" : "Selectionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index 2862e440742..e1b83b4d136 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -37,7 +37,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Tidak dapat menampilkan info berkas \"{file}\"",
"Files" : "Berkas",
"Details" : "Rincian",
- "Select" : "Pilih",
"Pending" : "Tertunda",
"Unable to determine date" : "Tidak dapat menentukan tanggal",
"This operation is forbidden" : "Operasi ini dilarang",
@@ -179,6 +178,7 @@ OC.L10N.register(
"Deleted shares" : "Berbagi terhapus",
"Pending shares" : "Berbagi tertunda",
"Text file" : "Berkas teks",
- "New text file.txt" : "Teks baru file.txt"
+ "New text file.txt" : "Teks baru file.txt",
+ "Select" : "Pilih"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index 7185adc489c..b5f9dbdeace 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -35,7 +35,6 @@
"Could not load info for file \"{file}\"" : "Tidak dapat menampilkan info berkas \"{file}\"",
"Files" : "Berkas",
"Details" : "Rincian",
- "Select" : "Pilih",
"Pending" : "Tertunda",
"Unable to determine date" : "Tidak dapat menentukan tanggal",
"This operation is forbidden" : "Operasi ini dilarang",
@@ -177,6 +176,7 @@
"Deleted shares" : "Berbagi terhapus",
"Pending shares" : "Berbagi tertunda",
"Text file" : "Berkas teks",
- "New text file.txt" : "Teks baru file.txt"
+ "New text file.txt" : "Teks baru file.txt",
+ "Select" : "Pilih"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 03d3ccbf76c..74a057d335a 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -38,7 +38,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Gat ekki lesið upplýsingar um skrána \"{file}\"",
"Files" : "Skrár",
"Details" : "Nánar",
- "Select" : "Velja",
"Pending" : "Í bið",
"Unable to determine date" : "Tókst ekki að ákvarða dagsetningu",
"This operation is forbidden" : "Þessi aðgerð er bönnuð",
@@ -172,6 +171,7 @@ OC.L10N.register(
"Deleted shares" : "Eyddar sameignir",
"Pending shares" : "Sameignir í bið",
"Text file" : "Textaskrá",
- "New text file.txt" : "Ný textaskrá.txt"
+ "New text file.txt" : "Ný textaskrá.txt",
+ "Select" : "Velja"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 44f487acf72..a41ba8702bc 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -36,7 +36,6 @@
"Could not load info for file \"{file}\"" : "Gat ekki lesið upplýsingar um skrána \"{file}\"",
"Files" : "Skrár",
"Details" : "Nánar",
- "Select" : "Velja",
"Pending" : "Í bið",
"Unable to determine date" : "Tókst ekki að ákvarða dagsetningu",
"This operation is forbidden" : "Þessi aðgerð er bönnuð",
@@ -170,6 +169,7 @@
"Deleted shares" : "Eyddar sameignir",
"Pending shares" : "Sameignir í bið",
"Text file" : "Textaskrá",
- "New text file.txt" : "Ný textaskrá.txt"
+ "New text file.txt" : "Ný textaskrá.txt",
+ "Select" : "Velja"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index fd58637b1f4..f6c411e6e00 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Dettagli",
"Please select tag(s) to add to the selection" : "Seleziona un'etichetta(e) da aggiungere alla selezione",
"Apply tag(s) to selection" : "Applica etichetta(e) alla selezione",
- "Select" : "Seleziona",
"Pending" : "In corso",
"Unable to determine date" : "Impossibile determinare la data",
"This operation is forbidden" : "Questa operazione è vietata",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Condivisioni eliminate",
"Pending shares" : "Condivisioni in corso",
"Text file" : "File di testo",
- "New text file.txt" : "Nuovo file di testo.txt"
+ "New text file.txt" : "Nuovo file di testo.txt",
+ "Select" : "Seleziona"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 1aa47f6a9da..e1a60ec9668 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -39,7 +39,6 @@
"Details" : "Dettagli",
"Please select tag(s) to add to the selection" : "Seleziona un'etichetta(e) da aggiungere alla selezione",
"Apply tag(s) to selection" : "Applica etichetta(e) alla selezione",
- "Select" : "Seleziona",
"Pending" : "In corso",
"Unable to determine date" : "Impossibile determinare la data",
"This operation is forbidden" : "Questa operazione è vietata",
@@ -208,6 +207,7 @@
"Deleted shares" : "Condivisioni eliminate",
"Pending shares" : "Condivisioni in corso",
"Text file" : "File di testo",
- "New text file.txt" : "Nuovo file di testo.txt"
+ "New text file.txt" : "Nuovo file di testo.txt",
+ "Select" : "Seleziona"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index a298816ebd8..d8fb5614360 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "詳細",
"Please select tag(s) to add to the selection" : "選択項目に付与するタグを選択してください",
"Apply tag(s) to selection" : "選択項目にタグを適用",
- "Select" : "選択",
"Pending" : "保留中",
"Unable to determine date" : "更新日不明",
"This operation is forbidden" : "この操作は禁止されています",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "削除された共有",
"Pending shares" : "保留中の共有",
"Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "New text file.txt" : "新規のテキストファイル作成",
+ "Select" : "選択"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index d79056eae26..9a1817b3c24 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -39,7 +39,6 @@
"Details" : "詳細",
"Please select tag(s) to add to the selection" : "選択項目に付与するタグを選択してください",
"Apply tag(s) to selection" : "選択項目にタグを適用",
- "Select" : "選択",
"Pending" : "保留中",
"Unable to determine date" : "更新日不明",
"This operation is forbidden" : "この操作は禁止されています",
@@ -208,6 +207,7 @@
"Deleted shares" : "削除された共有",
"Pending shares" : "保留中の共有",
"Text file" : "テキストファイル",
- "New text file.txt" : "新規のテキストファイル作成"
+ "New text file.txt" : "新規のテキストファイル作成",
+ "Select" : "選択"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js
index 0b86bd48e4b..6767f55614d 100644
--- a/apps/files/l10n/ka_GE.js
+++ b/apps/files/l10n/ka_GE.js
@@ -31,7 +31,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "ფაილზე \"{file}\" ინფორმაცია ვერ ჩაიტვირთა",
"Files" : "ფაილები",
"Details" : "დეტალები",
- "Select" : "არჩევა",
"Pending" : "მოცდის რეჟიმში",
"Unable to determine date" : "თარიღის დადგენა შეუძლებელია",
"This operation is forbidden" : "ეს ოპერაცია აკრძალულია",
@@ -141,6 +140,7 @@ OC.L10N.register(
"Shared with you" : "გაზიარდა თქვენთან",
"Shared by link" : "გაზიარდა ბმულით",
"Text file" : "ტექსტური ფაილი",
- "New text file.txt" : "ახალი ტექსტი file.txt"
+ "New text file.txt" : "ახალი ტექსტი file.txt",
+ "Select" : "არჩევა"
},
"nplurals=2; plural=(n!=1);");
diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json
index 1ab0b010f71..b71007389e0 100644
--- a/apps/files/l10n/ka_GE.json
+++ b/apps/files/l10n/ka_GE.json
@@ -29,7 +29,6 @@
"Could not load info for file \"{file}\"" : "ფაილზე \"{file}\" ინფორმაცია ვერ ჩაიტვირთა",
"Files" : "ფაილები",
"Details" : "დეტალები",
- "Select" : "არჩევა",
"Pending" : "მოცდის რეჟიმში",
"Unable to determine date" : "თარიღის დადგენა შეუძლებელია",
"This operation is forbidden" : "ეს ოპერაცია აკრძალულია",
@@ -139,6 +138,7 @@
"Shared with you" : "გაზიარდა თქვენთან",
"Shared by link" : "გაზიარდა ბმულით",
"Text file" : "ტექსტური ფაილი",
- "New text file.txt" : "ახალი ტექსტი file.txt"
+ "New text file.txt" : "ახალი ტექსტი file.txt",
+ "Select" : "არჩევა"
},"pluralForm" :"nplurals=2; plural=(n!=1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index fba709abfde..5d4ad96664f 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "자세한 정보",
"Please select tag(s) to add to the selection" : "선택한 항목에 추가할 태그를 고르세요",
"Apply tag(s) to selection" : "선택한 항목에 태그 적용하기",
- "Select" : "선택",
"Pending" : "대기 중",
"Unable to determine date" : "날짜를 결정할 수 없음",
"This operation is forbidden" : "이 작업이 금지됨",
@@ -205,6 +204,7 @@ OC.L10N.register(
"Deleted shares" : "삭제된 공유",
"Pending shares" : "진행중인 공유",
"Text file" : "텍스트 파일",
- "New text file.txt" : "새 텍스트 파일.txt"
+ "New text file.txt" : "새 텍스트 파일.txt",
+ "Select" : "선택"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index 98f4ac49623..77d0e85da8e 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -39,7 +39,6 @@
"Details" : "자세한 정보",
"Please select tag(s) to add to the selection" : "선택한 항목에 추가할 태그를 고르세요",
"Apply tag(s) to selection" : "선택한 항목에 태그 적용하기",
- "Select" : "선택",
"Pending" : "대기 중",
"Unable to determine date" : "날짜를 결정할 수 없음",
"This operation is forbidden" : "이 작업이 금지됨",
@@ -203,6 +202,7 @@
"Deleted shares" : "삭제된 공유",
"Pending shares" : "진행중인 공유",
"Text file" : "텍스트 파일",
- "New text file.txt" : "새 텍스트 파일.txt"
+ "New text file.txt" : "새 텍스트 파일.txt",
+ "Select" : "선택"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js
index 0eea984623f..2a4f83f2084 100644
--- a/apps/files/l10n/lb.js
+++ b/apps/files/l10n/lb.js
@@ -24,7 +24,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Et konnten keng Informatiounen zu {file} gelueden ginn",
"Files" : "Dateien",
"Details" : "Detailer",
- "Select" : "Auswielen",
"Pending" : "Ausstoend",
"Unable to determine date" : "Datum kann net festgestallt ginn",
"This operation is forbidden" : "Dës Operatioun ass verbueden.",
@@ -112,6 +111,7 @@ OC.L10N.register(
"Shared with you" : "Mat dir gedeelt",
"Shared by link" : "Mat engem Link gedeelt",
"Text file" : "Text Fichier",
- "New text file.txt" : "Neien Text file.txt"
+ "New text file.txt" : "Neien Text file.txt",
+ "Select" : "Auswielen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json
index f973b61ccf4..c55d1ab89df 100644
--- a/apps/files/l10n/lb.json
+++ b/apps/files/l10n/lb.json
@@ -22,7 +22,6 @@
"Could not load info for file \"{file}\"" : "Et konnten keng Informatiounen zu {file} gelueden ginn",
"Files" : "Dateien",
"Details" : "Detailer",
- "Select" : "Auswielen",
"Pending" : "Ausstoend",
"Unable to determine date" : "Datum kann net festgestallt ginn",
"This operation is forbidden" : "Dës Operatioun ass verbueden.",
@@ -110,6 +109,7 @@
"Shared with you" : "Mat dir gedeelt",
"Shared by link" : "Mat engem Link gedeelt",
"Text file" : "Text Fichier",
- "New text file.txt" : "Neien Text file.txt"
+ "New text file.txt" : "Neien Text file.txt",
+ "Select" : "Auswielen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index 176fcd8b8b8..91979221bed 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -38,7 +38,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Nepavyko įkelti informacijos failui „{file}“",
"Files" : "Failai",
"Details" : "Duomenys",
- "Select" : "Pasirinkti",
"Pending" : "Laukiantis",
"Unable to determine date" : "Nepavyksta nustatyti datos",
"This operation is forbidden" : "Ši operacija yra uždrausta",
@@ -198,6 +197,7 @@ OC.L10N.register(
"Deleted shares" : "Ištrinti viešiniai",
"Pending shares" : "Laukiantys viešiniai",
"Text file" : "Tekstinis failas",
- "New text file.txt" : "Naujas tekstinis failas.txt"
+ "New text file.txt" : "Naujas tekstinis failas.txt",
+ "Select" : "Pasirinkti"
},
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index 231e8bde84b..9677d635317 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -36,7 +36,6 @@
"Could not load info for file \"{file}\"" : "Nepavyko įkelti informacijos failui „{file}“",
"Files" : "Failai",
"Details" : "Duomenys",
- "Select" : "Pasirinkti",
"Pending" : "Laukiantis",
"Unable to determine date" : "Nepavyksta nustatyti datos",
"This operation is forbidden" : "Ši operacija yra uždrausta",
@@ -196,6 +195,7 @@
"Deleted shares" : "Ištrinti viešiniai",
"Pending shares" : "Laukiantys viešiniai",
"Text file" : "Tekstinis failas",
- "New text file.txt" : "Naujas tekstinis failas.txt"
+ "New text file.txt" : "Naujas tekstinis failas.txt",
+ "Select" : "Pasirinkti"
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js
index a228b571917..e9bca9a9047 100644
--- a/apps/files/l10n/lv.js
+++ b/apps/files/l10n/lv.js
@@ -33,7 +33,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Nevar ielādēt informāciju par datni \"{file}\"",
"Files" : "Datnes",
"Details" : "Detaļas",
- "Select" : "Norādīt",
"Pending" : "Gaida savu kārtu",
"Unable to determine date" : "Neizdevās noteikt datumu",
"This operation is forbidden" : "Šī darbība ir aizliegta",
@@ -136,6 +135,7 @@ OC.L10N.register(
"Deleted shares" : "Dzēstās koplietotnes",
"Pending shares" : "Gaidošie koplietojumi",
"Text file" : "Teksta datne",
- "New text file.txt" : "Jauna teksta datne.txt"
+ "New text file.txt" : "Jauna teksta datne.txt",
+ "Select" : "Norādīt"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json
index 4b99e17f328..139659a6047 100644
--- a/apps/files/l10n/lv.json
+++ b/apps/files/l10n/lv.json
@@ -31,7 +31,6 @@
"Could not load info for file \"{file}\"" : "Nevar ielādēt informāciju par datni \"{file}\"",
"Files" : "Datnes",
"Details" : "Detaļas",
- "Select" : "Norādīt",
"Pending" : "Gaida savu kārtu",
"Unable to determine date" : "Neizdevās noteikt datumu",
"This operation is forbidden" : "Šī darbība ir aizliegta",
@@ -134,6 +133,7 @@
"Deleted shares" : "Dzēstās koplietotnes",
"Pending shares" : "Gaidošie koplietojumi",
"Text file" : "Teksta datne",
- "New text file.txt" : "Jauna teksta datne.txt"
+ "New text file.txt" : "Jauna teksta datne.txt",
+ "Select" : "Norādīt"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 7e3e826fde7..ca5132ac5cb 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -39,7 +39,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Неможе да се вчитаат информации за датотеката \"{file}\"",
"Files" : "Датотеки",
"Details" : "Детали:",
- "Select" : "Избери",
"Pending" : "Чека",
"Unable to determine date" : "Неможе да се одреди датумот",
"This operation is forbidden" : "Операцијата не е дозволена",
@@ -207,6 +206,7 @@ OC.L10N.register(
"Deleted shares" : "Избришани споделувања",
"Pending shares" : "Споделувања на чекање",
"Text file" : "Текстуална датотека",
- "New text file.txt" : "Нова текстуална датотека file.txt"
+ "New text file.txt" : "Нова текстуална датотека file.txt",
+ "Select" : "Избери"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 7bbcde6cbaf..ea94eba951f 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -37,7 +37,6 @@
"Could not load info for file \"{file}\"" : "Неможе да се вчитаат информации за датотеката \"{file}\"",
"Files" : "Датотеки",
"Details" : "Детали:",
- "Select" : "Избери",
"Pending" : "Чека",
"Unable to determine date" : "Неможе да се одреди датумот",
"This operation is forbidden" : "Операцијата не е дозволена",
@@ -205,6 +204,7 @@
"Deleted shares" : "Избришани споделувања",
"Pending shares" : "Споделувања на чекање",
"Text file" : "Текстуална датотека",
- "New text file.txt" : "Нова текстуална датотека file.txt"
+ "New text file.txt" : "Нова текстуална датотека file.txt",
+ "Select" : "Избери"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/files/l10n/mn.js b/apps/files/l10n/mn.js
index e0bde42d232..801eb947f11 100644
--- a/apps/files/l10n/mn.js
+++ b/apps/files/l10n/mn.js
@@ -35,7 +35,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "\"{file}\" файлын мэдээллийг уншиж чадсангүй",
"Files" : "Файлууд",
"Details" : "Дэлгэрэнгүй",
- "Select" : "Сонгох",
"Pending" : "Хүлээгдэж байгаа",
"Unable to determine date" : "Огноог тодорхойлох боломжгүй",
"This operation is forbidden" : "Энэ үйлдэл хориотой",
@@ -130,6 +129,7 @@ OC.L10N.register(
"Shared with you" : "тантай хуваалцсан",
"Shared by link" : "Холбоосоор түгээсэн",
"Text file" : "текст файл",
- "New text file.txt" : "шинэ текст file.txt"
+ "New text file.txt" : "шинэ текст file.txt",
+ "Select" : "Сонгох"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/mn.json b/apps/files/l10n/mn.json
index 0b43300f003..3161d927253 100644
--- a/apps/files/l10n/mn.json
+++ b/apps/files/l10n/mn.json
@@ -33,7 +33,6 @@
"Could not load info for file \"{file}\"" : "\"{file}\" файлын мэдээллийг уншиж чадсангүй",
"Files" : "Файлууд",
"Details" : "Дэлгэрэнгүй",
- "Select" : "Сонгох",
"Pending" : "Хүлээгдэж байгаа",
"Unable to determine date" : "Огноог тодорхойлох боломжгүй",
"This operation is forbidden" : "Энэ үйлдэл хориотой",
@@ -128,6 +127,7 @@
"Shared with you" : "тантай хуваалцсан",
"Shared by link" : "Холбоосоор түгээсэн",
"Text file" : "текст файл",
- "New text file.txt" : "шинэ текст file.txt"
+ "New text file.txt" : "шинэ текст file.txt",
+ "Select" : "Сонгох"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js
index 8ffcfe8c32d..c9d9b9823c5 100644
--- a/apps/files/l10n/nb.js
+++ b/apps/files/l10n/nb.js
@@ -39,7 +39,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Klarte ikke å hente informasjon som filen \"{file}\"",
"Files" : "Filer",
"Details" : "Detaljer",
- "Select" : "Velg",
"Pending" : "Venter",
"Unable to determine date" : "Kan ikke fastslå datoen",
"This operation is forbidden" : "Operasjonen er forbudt",
@@ -187,6 +186,7 @@ OC.L10N.register(
"Deleted shares" : "Slettede delinger",
"Pending shares" : "Ventende delinger",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt"
+ "New text file.txt" : "Ny tekstfil.txt",
+ "Select" : "Velg"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json
index 5a45793f887..6c715bfb881 100644
--- a/apps/files/l10n/nb.json
+++ b/apps/files/l10n/nb.json
@@ -37,7 +37,6 @@
"Could not load info for file \"{file}\"" : "Klarte ikke å hente informasjon som filen \"{file}\"",
"Files" : "Filer",
"Details" : "Detaljer",
- "Select" : "Velg",
"Pending" : "Venter",
"Unable to determine date" : "Kan ikke fastslå datoen",
"This operation is forbidden" : "Operasjonen er forbudt",
@@ -185,6 +184,7 @@
"Deleted shares" : "Slettede delinger",
"Pending shares" : "Ventende delinger",
"Text file" : "Tekstfil",
- "New text file.txt" : "Ny tekstfil.txt"
+ "New text file.txt" : "Ny tekstfil.txt",
+ "Select" : "Velg"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 2192d372ffa..35360eea8b3 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Details",
"Please select tag(s) to add to the selection" : "Selecteer alsjeblieft tag(s) om aan de selectie toe te voegen",
"Apply tag(s) to selection" : "Pas tag(s) toe voor selectie",
- "Select" : "Selecteer",
"Pending" : "In behandeling",
"Unable to determine date" : "Kon datum niet vaststellen",
"This operation is forbidden" : "Deze taak is verboden",
@@ -150,27 +149,27 @@ OC.L10N.register(
"Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepteren",
"Reject" : "Afwijzen",
- "Incoming ownership transfer from {user}" : "Inkomend verzoek om eigenaarsoverdracht van {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Wil je {path} accepteren? \n\nOpmerking: het overdrachtsproces na acceptatie kan tot 1 uur duren.",
- "Ownership transfer failed" : "Eigenaarschap overdracht mislukt",
- "Your ownership transfer of {path} to {user} failed." : "Eigenaarsoverdracht van {path} naar {user} is mislukt.",
- "The ownership transfer of {path} from {user} failed." : "Eigenaarsoverdracht van {path} van {user} is mislukt.",
- "Ownership transfer done" : "Eigenaarschap overdracht geslaagd",
- "Your ownership transfer of {path} to {user} has completed." : "Eigenaarsoverdracht van {path} naar {user} is gereed.",
- "The ownership transfer of {path} from {user} has completed." : "Eigenaarsoverdracht van {path} van {user} is gereed.",
+ "Incoming ownership transfer from {user}" : "Inkomend verzoek voor eigendomsoverdracht van {user}",
+ "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Wil je {path} aanvaarden? \n\nOpmerking: het overdrachtsproces kan na acceptatie tot 1 uur duren.",
+ "Ownership transfer failed" : "Eigendomsoverdracht mislukt",
+ "Your ownership transfer of {path} to {user} failed." : "Eigendomsoverdracht van {path} naar {user} is mislukt.",
+ "The ownership transfer of {path} from {user} failed." : "Eigendomsoverdracht van {path} van {user} is mislukt.",
+ "Ownership transfer done" : "Eigendomsoverdracht geslaagd",
+ "Your ownership transfer of {path} to {user} has completed." : "Eigendomsoverdracht van {path} naar {user} is gereed.",
+ "The ownership transfer of {path} from {user} has completed." : "Eigendomsoverdracht van {path} van {user} is gereed.",
"in %s" : "in %s",
"File Management" : "Bestandsbeheer",
- "Transfer ownership of a file or folder" : "Overdragen eigenaarschap bestand of map ",
+ "Transfer ownership of a file or folder" : "Overdragen eigendom bestand of map ",
"Choose file or folder to transfer" : "Kies over te dragen bestand of map",
"Change" : "Pas aan",
"New owner" : "Nieuwe eigenaar",
"Search users" : "Gebruikers zoeken",
"Choose a file or folder to transfer" : "Kies een bestand of map om over te dragen",
- "Transfer" : "Transfer",
+ "Transfer" : "Overdragen",
"Transfer {path} to {userid}" : "Draag {path} over aan {userid}",
"Invalid path selected" : "Ongeldig pad geselecteerd",
- "Ownership transfer request sent" : "Aanvraag eigenaarsoverdracht verstuurd",
- "Cannot transfer ownership of a file or folder you don't own" : "Kan het eigenaarschap van een bestand of map waarvan u niet de eigenaar bent, niet overdragen",
+ "Ownership transfer request sent" : "Aanvraag eigendomsoverdracht verstuurd",
+ "Cannot transfer ownership of a file or folder you don't own" : "Kan de eigendom van een bestand of map waarvan u niet de eigenaar bent, niet overdragen",
"Tags" : "Tags",
"Unable to change the favourite state of the file" : "Niet mogelijk om favoriet status van het bestand te wijzigen",
"Error while loading the file data" : "Fout bij het lezen van de bestandsgegevens",
@@ -188,8 +187,8 @@ OC.L10N.register(
"%s%% of %s used" : "%s%% van %s gebruikt",
"%1$s of %2$s used" : "%1$s van %2$s gebruikt",
"Settings" : "Instellingen",
- "Show hidden files" : "Verborgen bestanden tonen",
- "Crop image previews" : "Bijsnijden afbeeldingvoorbeeld:",
+ "Show hidden files" : "Toon verborgen bestanden",
+ "Crop image previews" : "Snij afbeeldingvoorbeelden bij",
"WebDAV" : "WebDAV",
"Use this address to access your Files via WebDAV" : "Gebruik dit adres om je bestanden via WebDAV te benaderen",
"Toggle %1$s sublist" : "Omschakelen%1$s sublijsten",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Verwijderde shares",
"Pending shares" : "Deellinks in behandeling",
"Text file" : "Tekstbestand",
- "New text file.txt" : "Nieuw tekstbestand.txt"
+ "New text file.txt" : "Nieuw tekstbestand.txt",
+ "Select" : "Selecteer"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 1c0f7b84344..01af58abf59 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -39,7 +39,6 @@
"Details" : "Details",
"Please select tag(s) to add to the selection" : "Selecteer alsjeblieft tag(s) om aan de selectie toe te voegen",
"Apply tag(s) to selection" : "Pas tag(s) toe voor selectie",
- "Select" : "Selecteer",
"Pending" : "In behandeling",
"Unable to determine date" : "Kon datum niet vaststellen",
"This operation is forbidden" : "Deze taak is verboden",
@@ -148,27 +147,27 @@
"Upload (max. %s)" : "Upload (max. %s)",
"Accept" : "Accepteren",
"Reject" : "Afwijzen",
- "Incoming ownership transfer from {user}" : "Inkomend verzoek om eigenaarsoverdracht van {user}",
- "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Wil je {path} accepteren? \n\nOpmerking: het overdrachtsproces na acceptatie kan tot 1 uur duren.",
- "Ownership transfer failed" : "Eigenaarschap overdracht mislukt",
- "Your ownership transfer of {path} to {user} failed." : "Eigenaarsoverdracht van {path} naar {user} is mislukt.",
- "The ownership transfer of {path} from {user} failed." : "Eigenaarsoverdracht van {path} van {user} is mislukt.",
- "Ownership transfer done" : "Eigenaarschap overdracht geslaagd",
- "Your ownership transfer of {path} to {user} has completed." : "Eigenaarsoverdracht van {path} naar {user} is gereed.",
- "The ownership transfer of {path} from {user} has completed." : "Eigenaarsoverdracht van {path} van {user} is gereed.",
+ "Incoming ownership transfer from {user}" : "Inkomend verzoek voor eigendomsoverdracht van {user}",
+ "Do you want to accept {path}?\n\nNote: The transfer process after accepting may take up to 1 hour." : "Wil je {path} aanvaarden? \n\nOpmerking: het overdrachtsproces kan na acceptatie tot 1 uur duren.",
+ "Ownership transfer failed" : "Eigendomsoverdracht mislukt",
+ "Your ownership transfer of {path} to {user} failed." : "Eigendomsoverdracht van {path} naar {user} is mislukt.",
+ "The ownership transfer of {path} from {user} failed." : "Eigendomsoverdracht van {path} van {user} is mislukt.",
+ "Ownership transfer done" : "Eigendomsoverdracht geslaagd",
+ "Your ownership transfer of {path} to {user} has completed." : "Eigendomsoverdracht van {path} naar {user} is gereed.",
+ "The ownership transfer of {path} from {user} has completed." : "Eigendomsoverdracht van {path} van {user} is gereed.",
"in %s" : "in %s",
"File Management" : "Bestandsbeheer",
- "Transfer ownership of a file or folder" : "Overdragen eigenaarschap bestand of map ",
+ "Transfer ownership of a file or folder" : "Overdragen eigendom bestand of map ",
"Choose file or folder to transfer" : "Kies over te dragen bestand of map",
"Change" : "Pas aan",
"New owner" : "Nieuwe eigenaar",
"Search users" : "Gebruikers zoeken",
"Choose a file or folder to transfer" : "Kies een bestand of map om over te dragen",
- "Transfer" : "Transfer",
+ "Transfer" : "Overdragen",
"Transfer {path} to {userid}" : "Draag {path} over aan {userid}",
"Invalid path selected" : "Ongeldig pad geselecteerd",
- "Ownership transfer request sent" : "Aanvraag eigenaarsoverdracht verstuurd",
- "Cannot transfer ownership of a file or folder you don't own" : "Kan het eigenaarschap van een bestand of map waarvan u niet de eigenaar bent, niet overdragen",
+ "Ownership transfer request sent" : "Aanvraag eigendomsoverdracht verstuurd",
+ "Cannot transfer ownership of a file or folder you don't own" : "Kan de eigendom van een bestand of map waarvan u niet de eigenaar bent, niet overdragen",
"Tags" : "Tags",
"Unable to change the favourite state of the file" : "Niet mogelijk om favoriet status van het bestand te wijzigen",
"Error while loading the file data" : "Fout bij het lezen van de bestandsgegevens",
@@ -186,8 +185,8 @@
"%s%% of %s used" : "%s%% van %s gebruikt",
"%1$s of %2$s used" : "%1$s van %2$s gebruikt",
"Settings" : "Instellingen",
- "Show hidden files" : "Verborgen bestanden tonen",
- "Crop image previews" : "Bijsnijden afbeeldingvoorbeeld:",
+ "Show hidden files" : "Toon verborgen bestanden",
+ "Crop image previews" : "Snij afbeeldingvoorbeelden bij",
"WebDAV" : "WebDAV",
"Use this address to access your Files via WebDAV" : "Gebruik dit adres om je bestanden via WebDAV te benaderen",
"Toggle %1$s sublist" : "Omschakelen%1$s sublijsten",
@@ -208,6 +207,7 @@
"Deleted shares" : "Verwijderde shares",
"Pending shares" : "Deellinks in behandeling",
"Text file" : "Tekstbestand",
- "New text file.txt" : "Nieuw tekstbestand.txt"
+ "New text file.txt" : "Nieuw tekstbestand.txt",
+ "Select" : "Selecteer"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 00363e15142..1743393c0b4 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Szczegóły",
"Please select tag(s) to add to the selection" : "Wybierz etykietę(y) do dodania dla zaznaczenia",
"Apply tag(s) to selection" : "Zastosuj etykietę(y) dla zaznaczenia",
- "Select" : "Wybierz",
"Pending" : "Oczekujące",
"Unable to determine date" : "Nie można ustalić daty",
"This operation is forbidden" : "Ta operacja jest niedozwolona",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Usunięte udostępnienia",
"Pending shares" : "Oczekujące udostępnienia",
"Text file" : "Plik tekstowy",
- "New text file.txt" : "Nowy plik tekstowy.txt"
+ "New text file.txt" : "Nowy plik tekstowy.txt",
+ "Select" : "Wybierz"
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index e2bffbebb09..f158c9871eb 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -39,7 +39,6 @@
"Details" : "Szczegóły",
"Please select tag(s) to add to the selection" : "Wybierz etykietę(y) do dodania dla zaznaczenia",
"Apply tag(s) to selection" : "Zastosuj etykietę(y) dla zaznaczenia",
- "Select" : "Wybierz",
"Pending" : "Oczekujące",
"Unable to determine date" : "Nie można ustalić daty",
"This operation is forbidden" : "Ta operacja jest niedozwolona",
@@ -208,6 +207,7 @@
"Deleted shares" : "Usunięte udostępnienia",
"Pending shares" : "Oczekujące udostępnienia",
"Text file" : "Plik tekstowy",
- "New text file.txt" : "Nowy plik tekstowy.txt"
+ "New text file.txt" : "Nowy plik tekstowy.txt",
+ "Select" : "Wybierz"
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ps.js b/apps/files/l10n/ps.js
index a7406013d48..60582edc573 100644
--- a/apps/files/l10n/ps.js
+++ b/apps/files/l10n/ps.js
@@ -33,7 +33,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "د \"{file}\" فایل معلومات نشي پرانيستل کېدای",
"Files" : "فایلونه",
"Details" : "معلومات",
- "Select" : "ټاکل",
"Pending" : "د انتظار په حال کې",
"Unable to determine date" : "نېټه نه معلومېږي",
"This operation is forbidden" : "دا کړنه نشي کېدای",
@@ -134,6 +133,7 @@ OC.L10N.register(
"Shared by link" : "په لېنک شريک شوي",
"Deleted shares" : "ړنګ شوي لېنکونه",
"Text file" : "متن فایل",
- "New text file.txt" : "New text file.txt"
+ "New text file.txt" : "New text file.txt",
+ "Select" : "ټاکل"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/ps.json b/apps/files/l10n/ps.json
index 9804f7c7080..d3b4908a9e2 100644
--- a/apps/files/l10n/ps.json
+++ b/apps/files/l10n/ps.json
@@ -31,7 +31,6 @@
"Could not load info for file \"{file}\"" : "د \"{file}\" فایل معلومات نشي پرانيستل کېدای",
"Files" : "فایلونه",
"Details" : "معلومات",
- "Select" : "ټاکل",
"Pending" : "د انتظار په حال کې",
"Unable to determine date" : "نېټه نه معلومېږي",
"This operation is forbidden" : "دا کړنه نشي کېدای",
@@ -132,6 +131,7 @@
"Shared by link" : "په لېنک شريک شوي",
"Deleted shares" : "ړنګ شوي لېنکونه",
"Text file" : "متن فایل",
- "New text file.txt" : "New text file.txt"
+ "New text file.txt" : "New text file.txt",
+ "Select" : "ټاکل"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index b9c330b1e4a..51605749467 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Detalhes",
"Please select tag(s) to add to the selection" : "Selecione a(s) etiquetas(s) para adicionar à seleção ",
"Apply tag(s) to selection" : "Aplicar as etiqueta(s) a seleção",
- "Select" : "Selecionar",
"Pending" : "Pendente",
"Unable to determine date" : "Impossível determinar a data",
"This operation is forbidden" : "Esta operação é proibida",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Compartilhamentos apagados",
"Pending shares" : "Compartilhamentos pendentes",
"Text file" : "Arquivo texto",
- "New text file.txt" : "Novo arquivo.txt"
+ "New text file.txt" : "Novo arquivo.txt",
+ "Select" : "Selecionar"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index b7a501550c7..baca6f80d94 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -39,7 +39,6 @@
"Details" : "Detalhes",
"Please select tag(s) to add to the selection" : "Selecione a(s) etiquetas(s) para adicionar à seleção ",
"Apply tag(s) to selection" : "Aplicar as etiqueta(s) a seleção",
- "Select" : "Selecionar",
"Pending" : "Pendente",
"Unable to determine date" : "Impossível determinar a data",
"This operation is forbidden" : "Esta operação é proibida",
@@ -208,6 +207,7 @@
"Deleted shares" : "Compartilhamentos apagados",
"Pending shares" : "Compartilhamentos pendentes",
"Text file" : "Arquivo texto",
- "New text file.txt" : "Novo arquivo.txt"
+ "New text file.txt" : "Novo arquivo.txt",
+ "Select" : "Selecionar"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index 47f4e0971a3..5f27879aa45 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -38,7 +38,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Não foi possível carregar informações do ficheiro \"{file}\"",
"Files" : "Ficheiros",
"Details" : "Detalhes",
- "Select" : "Selecionar",
"Pending" : "Pendente",
"Unable to determine date" : "Não é possível determinar a data",
"This operation is forbidden" : "Esta operação é proibida",
@@ -154,6 +153,7 @@ OC.L10N.register(
"Shared with you" : "Partilhado consigo ",
"Shared by link" : "Partilhado por hiperligação",
"Text file" : "Ficheiro de Texto",
- "New text file.txt" : "Novo texto ficheiro.txt"
+ "New text file.txt" : "Novo texto ficheiro.txt",
+ "Select" : "Selecionar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 2fa1c5a8380..66f4d1fa4d6 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -36,7 +36,6 @@
"Could not load info for file \"{file}\"" : "Não foi possível carregar informações do ficheiro \"{file}\"",
"Files" : "Ficheiros",
"Details" : "Detalhes",
- "Select" : "Selecionar",
"Pending" : "Pendente",
"Unable to determine date" : "Não é possível determinar a data",
"This operation is forbidden" : "Esta operação é proibida",
@@ -152,6 +151,7 @@
"Shared with you" : "Partilhado consigo ",
"Shared by link" : "Partilhado por hiperligação",
"Text file" : "Ficheiro de Texto",
- "New text file.txt" : "Novo texto ficheiro.txt"
+ "New text file.txt" : "Novo texto ficheiro.txt",
+ "Select" : "Selecionar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index d4474320d5d..8e9580a41a3 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -38,7 +38,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Nu s-a putut încărca informația pentru fișierul \"{file}\"",
"Files" : "Fișiere",
"Details" : "Detalii",
- "Select" : "Alege",
"Pending" : "În așteptare",
"Unable to determine date" : "Nu s-a putut determina data",
"This operation is forbidden" : "Operațiunea este interzisă",
@@ -165,6 +164,7 @@ OC.L10N.register(
"Deleted shares" : "Partajări șterse",
"Pending shares" : "Partajări in asteptare",
"Text file" : "Fișier text",
- "New text file.txt" : "Fișier nou.txt"
+ "New text file.txt" : "Fișier nou.txt",
+ "Select" : "Alege"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index 391c61e11c8..63aa8d1bba6 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -36,7 +36,6 @@
"Could not load info for file \"{file}\"" : "Nu s-a putut încărca informația pentru fișierul \"{file}\"",
"Files" : "Fișiere",
"Details" : "Detalii",
- "Select" : "Alege",
"Pending" : "În așteptare",
"Unable to determine date" : "Nu s-a putut determina data",
"This operation is forbidden" : "Operațiunea este interzisă",
@@ -163,6 +162,7 @@
"Deleted shares" : "Partajări șterse",
"Pending shares" : "Partajări in asteptare",
"Text file" : "Fișier text",
- "New text file.txt" : "Fișier nou.txt"
+ "New text file.txt" : "Fișier nou.txt",
+ "Select" : "Alege"
},"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/files/l10n/ru.js b/apps/files/l10n/ru.js
index 2dfacbbba18..42f26eca1a1 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Подробно",
"Please select tag(s) to add to the selection" : "Выберите метки для назначения выбранным объектам",
"Apply tag(s) to selection" : "Назначить метки выбранным объектам",
- "Select" : "Выбрать",
"Pending" : "Ожидается",
"Unable to determine date" : "Невозможно определить дату",
"This operation is forbidden" : "Операция запрещена",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Удалённые общие ресурсы",
"Pending shares" : "Ожидающие общие ресурсы",
"Text file" : "Текстовый файл",
- "New text file.txt" : "Новый текстовый файл.txt"
+ "New text file.txt" : "Новый текстовый файл.txt",
+ "Select" : "Выбрать"
},
"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 705a69ba8cd..1c270a94490 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -39,7 +39,6 @@
"Details" : "Подробно",
"Please select tag(s) to add to the selection" : "Выберите метки для назначения выбранным объектам",
"Apply tag(s) to selection" : "Назначить метки выбранным объектам",
- "Select" : "Выбрать",
"Pending" : "Ожидается",
"Unable to determine date" : "Невозможно определить дату",
"This operation is forbidden" : "Операция запрещена",
@@ -208,6 +207,7 @@
"Deleted shares" : "Удалённые общие ресурсы",
"Pending shares" : "Ожидающие общие ресурсы",
"Text file" : "Текстовый файл",
- "New text file.txt" : "Новый текстовый файл.txt"
+ "New text file.txt" : "Новый текстовый файл.txt",
+ "Select" : "Выбрать"
},"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/sc.js b/apps/files/l10n/sc.js
index 781fd2deb36..265f25038c2 100644
--- a/apps/files/l10n/sc.js
+++ b/apps/files/l10n/sc.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Detàllios",
"Please select tag(s) to add to the selection" : "Seletziona eticheta(s) pro agiùnghere a sa seletzione",
"Apply tag(s) to selection" : "Àplica eticheta(s) a sa seletzione",
- "Select" : "Seletziona",
"Pending" : "In suspesu",
"Unable to determine date" : "Non faghet a determinare sa data",
"This operation is forbidden" : "Custa operatzione no est permìtida",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Cumpartziduras cantzelladas",
"Pending shares" : "Cumpartziduras in suspesu",
"Text file" : "Archìviu de testu",
- "New text file.txt" : "Archìviu de testu .txt nou"
+ "New text file.txt" : "Archìviu de testu .txt nou",
+ "Select" : "Seletziona"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sc.json b/apps/files/l10n/sc.json
index caff85beb38..14e8a71768c 100644
--- a/apps/files/l10n/sc.json
+++ b/apps/files/l10n/sc.json
@@ -39,7 +39,6 @@
"Details" : "Detàllios",
"Please select tag(s) to add to the selection" : "Seletziona eticheta(s) pro agiùnghere a sa seletzione",
"Apply tag(s) to selection" : "Àplica eticheta(s) a sa seletzione",
- "Select" : "Seletziona",
"Pending" : "In suspesu",
"Unable to determine date" : "Non faghet a determinare sa data",
"This operation is forbidden" : "Custa operatzione no est permìtida",
@@ -208,6 +207,7 @@
"Deleted shares" : "Cumpartziduras cantzelladas",
"Pending shares" : "Cumpartziduras in suspesu",
"Text file" : "Archìviu de testu",
- "New text file.txt" : "Archìviu de testu .txt nou"
+ "New text file.txt" : "Archìviu de testu .txt nou",
+ "Select" : "Seletziona"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js
index 4b702024506..7e758e6ced1 100644
--- a/apps/files/l10n/sk.js
+++ b/apps/files/l10n/sk.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Podrobnosti",
"Please select tag(s) to add to the selection" : "Prosím vyberte štítok(štítky) pre pridanie do výberu",
"Apply tag(s) to selection" : "Aplikovať štítok(štítky) do výberu",
- "Select" : "Vybrať",
"Pending" : "Čaká",
"Unable to determine date" : "Nemožno určiť dátum",
"This operation is forbidden" : "Táto operácia je zakázaná",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Vymazané zdieľania",
"Pending shares" : "Čakajúce prístupy",
"Text file" : "Textový súbor",
- "New text file.txt" : "Nový text file.txt"
+ "New text file.txt" : "Nový text file.txt",
+ "Select" : "Vybrať"
},
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json
index b90a83a3822..0bfe8f47afe 100644
--- a/apps/files/l10n/sk.json
+++ b/apps/files/l10n/sk.json
@@ -39,7 +39,6 @@
"Details" : "Podrobnosti",
"Please select tag(s) to add to the selection" : "Prosím vyberte štítok(štítky) pre pridanie do výberu",
"Apply tag(s) to selection" : "Aplikovať štítok(štítky) do výberu",
- "Select" : "Vybrať",
"Pending" : "Čaká",
"Unable to determine date" : "Nemožno určiť dátum",
"This operation is forbidden" : "Táto operácia je zakázaná",
@@ -208,6 +207,7 @@
"Deleted shares" : "Vymazané zdieľania",
"Pending shares" : "Čakajúce prístupy",
"Text file" : "Textový súbor",
- "New text file.txt" : "Nový text file.txt"
+ "New text file.txt" : "Nový text file.txt",
+ "Select" : "Vybrať"
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index 176c94da796..8bc236f8bab 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -39,7 +39,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Ni mogoče naložiti podatkov za datoteko »{file}«.",
"Files" : "Datoteke",
"Details" : "Podrobnosti",
- "Select" : "Izbor",
"Pending" : "Na čakanju ...",
"Unable to determine date" : "Ni mogoče določiti datuma",
"This operation is forbidden" : "To dejanje ni dovoljeno!",
@@ -208,6 +207,7 @@ OC.L10N.register(
"Deleted shares" : "Izbrisana mesta souporabe",
"Pending shares" : "Predmeti za souporabo na čakanju",
"Text file" : "Besedilna datoteka",
- "New text file.txt" : "nova_datoteka.txt"
+ "New text file.txt" : "nova_datoteka.txt",
+ "Select" : "Izbor"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index 26b7f2551cc..1a342981c71 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -37,7 +37,6 @@
"Could not load info for file \"{file}\"" : "Ni mogoče naložiti podatkov za datoteko »{file}«.",
"Files" : "Datoteke",
"Details" : "Podrobnosti",
- "Select" : "Izbor",
"Pending" : "Na čakanju ...",
"Unable to determine date" : "Ni mogoče določiti datuma",
"This operation is forbidden" : "To dejanje ni dovoljeno!",
@@ -206,6 +205,7 @@
"Deleted shares" : "Izbrisana mesta souporabe",
"Pending shares" : "Predmeti za souporabo na čakanju",
"Text file" : "Besedilna datoteka",
- "New text file.txt" : "nova_datoteka.txt"
+ "New text file.txt" : "nova_datoteka.txt",
+ "Select" : "Izbor"
},"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/files/l10n/sq.js b/apps/files/l10n/sq.js
index a4c30f4fcd3..1a5450f8113 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -26,7 +26,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Nuk mund të ngarkohet informacioni për skedarin \"{file}\"",
"Files" : "Skedar",
"Details" : "Hollësi",
- "Select" : "Përzgjidhe",
"Pending" : "Në pritje",
"Unable to determine date" : "S’arrihet të përcaktohet data",
"This operation is forbidden" : "Ky veprim është i ndaluar",
@@ -125,6 +124,7 @@ OC.L10N.register(
"Shared by link" : "E ndarë me lidhje",
"Deleted shares" : "Fshi shpërndarjet",
"Text file" : "Kartelë tekst",
- "New text file.txt" : "Kartelë e re file.txt"
+ "New text file.txt" : "Kartelë e re file.txt",
+ "Select" : "Përzgjidhe"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index 8362b8e8930..856b062ec89 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -24,7 +24,6 @@
"Could not load info for file \"{file}\"" : "Nuk mund të ngarkohet informacioni për skedarin \"{file}\"",
"Files" : "Skedar",
"Details" : "Hollësi",
- "Select" : "Përzgjidhe",
"Pending" : "Në pritje",
"Unable to determine date" : "S’arrihet të përcaktohet data",
"This operation is forbidden" : "Ky veprim është i ndaluar",
@@ -123,6 +122,7 @@
"Shared by link" : "E ndarë me lidhje",
"Deleted shares" : "Fshi shpërndarjet",
"Text file" : "Kartelë tekst",
- "New text file.txt" : "Kartelë e re file.txt"
+ "New text file.txt" : "Kartelë e re file.txt",
+ "Select" : "Përzgjidhe"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index 1134d230e27..2f90004f7d4 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -39,7 +39,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Не могу да учитам информације фајла „{file}“",
"Files" : "Фајлови",
"Details" : "Детаљи",
- "Select" : "Изабери",
"Pending" : "На чекању",
"Unable to determine date" : "Не могу да одредим датум",
"This operation is forbidden" : "Ова радња је забрањена",
@@ -187,6 +186,7 @@ OC.L10N.register(
"Deleted shares" : "Обрисана дељења",
"Pending shares" : "Дељења на чекању",
"Text file" : "Tекстуални фајл",
- "New text file.txt" : "Нов текстуални фајл.txt"
+ "New text file.txt" : "Нов текстуални фајл.txt",
+ "Select" : "Изабери"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index 83dfdf1be01..3e18f0b6f86 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -37,7 +37,6 @@
"Could not load info for file \"{file}\"" : "Не могу да учитам информације фајла „{file}“",
"Files" : "Фајлови",
"Details" : "Детаљи",
- "Select" : "Изабери",
"Pending" : "На чекању",
"Unable to determine date" : "Не могу да одредим датум",
"This operation is forbidden" : "Ова радња је забрањена",
@@ -185,6 +184,7 @@
"Deleted shares" : "Обрисана дељења",
"Pending shares" : "Дељења на чекању",
"Text file" : "Tекстуални фајл",
- "New text file.txt" : "Нов текстуални фајл.txt"
+ "New text file.txt" : "Нов текстуални фајл.txt",
+ "Select" : "Изабери"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index b076f46d777..74ea2588e2e 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Detaljer",
"Please select tag(s) to add to the selection" : "Vänligen välj tagg(ar) att lägga till i ditt urval",
"Apply tag(s) to selection" : "Lägg till tagg(ar) i ditt urval",
- "Select" : "Välj",
"Pending" : "Väntar",
"Unable to determine date" : "Misslyckades avgöra datum",
"This operation is forbidden" : "Denna operation är förbjuden",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Borttagna delningar",
"Pending shares" : "Väntande delningar",
"Text file" : "Textfil",
- "New text file.txt" : "Ny textfil.txt"
+ "New text file.txt" : "Ny textfil.txt",
+ "Select" : "Välj"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 4510f48e41f..2dd41afef7e 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -39,7 +39,6 @@
"Details" : "Detaljer",
"Please select tag(s) to add to the selection" : "Vänligen välj tagg(ar) att lägga till i ditt urval",
"Apply tag(s) to selection" : "Lägg till tagg(ar) i ditt urval",
- "Select" : "Välj",
"Pending" : "Väntar",
"Unable to determine date" : "Misslyckades avgöra datum",
"This operation is forbidden" : "Denna operation är förbjuden",
@@ -208,6 +207,7 @@
"Deleted shares" : "Borttagna delningar",
"Pending shares" : "Väntande delningar",
"Text file" : "Textfil",
- "New text file.txt" : "Ny textfil.txt"
+ "New text file.txt" : "Ny textfil.txt",
+ "Select" : "Välj"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/th.js b/apps/files/l10n/th.js
index e629e56d69c..888cc56b8e4 100644
--- a/apps/files/l10n/th.js
+++ b/apps/files/l10n/th.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "รายละเอียด",
"Please select tag(s) to add to the selection" : "กรุณาเลือกแท็กเพื่อเพิ่มเข้าไปในรายการที่เลือก",
"Apply tag(s) to selection" : "นำแท็กไปใช้ในรายการที่เลือก",
- "Select" : "เลือก",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Unable to determine date" : "ไม่สามารถระบุวัน",
"This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "การแชร์ที่ถูกลบ",
"Pending shares" : "การแชร์ที่กำลังดำเนินการ",
"Text file" : "ไฟล์ข้อความ",
- "New text file.txt" : "ไฟล์ข้อความใหม่.txt"
+ "New text file.txt" : "ไฟล์ข้อความใหม่.txt",
+ "Select" : "เลือก"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/th.json b/apps/files/l10n/th.json
index 24630dcaadf..c5abf373411 100644
--- a/apps/files/l10n/th.json
+++ b/apps/files/l10n/th.json
@@ -39,7 +39,6 @@
"Details" : "รายละเอียด",
"Please select tag(s) to add to the selection" : "กรุณาเลือกแท็กเพื่อเพิ่มเข้าไปในรายการที่เลือก",
"Apply tag(s) to selection" : "นำแท็กไปใช้ในรายการที่เลือก",
- "Select" : "เลือก",
"Pending" : "อยู่ระหว่างดำเนินการ",
"Unable to determine date" : "ไม่สามารถระบุวัน",
"This operation is forbidden" : "การดำเนินการนี้ถูกห้าม",
@@ -208,6 +207,7 @@
"Deleted shares" : "การแชร์ที่ถูกลบ",
"Pending shares" : "การแชร์ที่กำลังดำเนินการ",
"Text file" : "ไฟล์ข้อความ",
- "New text file.txt" : "ไฟล์ข้อความใหม่.txt"
+ "New text file.txt" : "ไฟล์ข้อความใหม่.txt",
+ "Select" : "เลือก"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index 4bf1bc31c01..febac659814 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Ayrıntılar",
"Please select tag(s) to add to the selection" : "Seçime eklemek için etiketleri seçin",
"Apply tag(s) to selection" : "Etiketleri seçime uygula",
- "Select" : "Seçin",
"Pending" : "Bekliyor",
"Unable to determine date" : "Tarih belirlenemedi",
"This operation is forbidden" : "Bu işleme izin verilmiyor",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "Silinmiş paylaşımlar",
"Pending shares" : "Bekleyen paylaşımlar",
"Text file" : "Metin dosyası",
- "New text file.txt" : "Yeni metin dosyası.txt"
+ "New text file.txt" : "Yeni metin dosyası.txt",
+ "Select" : "Seçin"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 61b42f4a928..3025bc61f48 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -39,7 +39,6 @@
"Details" : "Ayrıntılar",
"Please select tag(s) to add to the selection" : "Seçime eklemek için etiketleri seçin",
"Apply tag(s) to selection" : "Etiketleri seçime uygula",
- "Select" : "Seçin",
"Pending" : "Bekliyor",
"Unable to determine date" : "Tarih belirlenemedi",
"This operation is forbidden" : "Bu işleme izin verilmiyor",
@@ -208,6 +207,7 @@
"Deleted shares" : "Silinmiş paylaşımlar",
"Pending shares" : "Bekleyen paylaşımlar",
"Text file" : "Metin dosyası",
- "New text file.txt" : "Yeni metin dosyası.txt"
+ "New text file.txt" : "Yeni metin dosyası.txt",
+ "Select" : "Seçin"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index dc10a5b0466..4d42722236f 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} з {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Завантаження цього елемента не підтримується",
"Target folder does not exist any more" : "Тека призначення більше не існує",
+ "Operation is blocked by access control" : "Операцію заблоковано через контроль доступу",
"Error when assembling chunks, status code {status}" : "Помилка під час збірки частин, код помилки {status}",
"Actions" : "Дії",
"Rename" : "Перейменувати",
@@ -37,7 +38,6 @@ OC.L10N.register(
"Could not load info for file \"{file}\"" : "Не вдалося завантажити інформацію для файлу \"{file}\"",
"Files" : "Файли",
"Details" : "Деталі",
- "Select" : "Вибрати",
"Pending" : "Очікування",
"Unable to determine date" : "Неможливо визначити дату",
"This operation is forbidden" : "Ця операція заборонена",
@@ -180,6 +180,7 @@ OC.L10N.register(
"Deleted shares" : "Вилучено зі спільного доступу",
"Pending shares" : "Спільні ресурси в очікуванні",
"Text file" : "Текстовий файл",
- "New text file.txt" : "Новий текстовий файл file.txt"
+ "New text file.txt" : "Новий текстовий файл file.txt",
+ "Select" : "Вибрати"
},
"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);");
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index 8e74ed00209..277ac44c8e6 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -23,6 +23,7 @@
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} з {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Завантаження цього елемента не підтримується",
"Target folder does not exist any more" : "Тека призначення більше не існує",
+ "Operation is blocked by access control" : "Операцію заблоковано через контроль доступу",
"Error when assembling chunks, status code {status}" : "Помилка під час збірки частин, код помилки {status}",
"Actions" : "Дії",
"Rename" : "Перейменувати",
@@ -35,7 +36,6 @@
"Could not load info for file \"{file}\"" : "Не вдалося завантажити інформацію для файлу \"{file}\"",
"Files" : "Файли",
"Details" : "Деталі",
- "Select" : "Вибрати",
"Pending" : "Очікування",
"Unable to determine date" : "Неможливо визначити дату",
"This operation is forbidden" : "Ця операція заборонена",
@@ -178,6 +178,7 @@
"Deleted shares" : "Вилучено зі спільного доступу",
"Pending shares" : "Спільні ресурси в очікуванні",
"Text file" : "Текстовий файл",
- "New text file.txt" : "Новий текстовий файл file.txt"
+ "New text file.txt" : "Новий текстовий файл file.txt",
+ "Select" : "Вибрати"
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (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/vi.js b/apps/files/l10n/vi.js
index a1e5f520488..7a4ebd3a5a0 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "Chi tiết",
"Please select tag(s) to add to the selection" : "Vui lòng chọn (các) thẻ để thêm vào lựa chọn",
"Apply tag(s) to selection" : "Áp dụng (các) thẻ cho lựa chọn",
- "Select" : "Chọn",
"Pending" : "Đang chờ",
"Unable to determine date" : "Không thể xác định ngày",
"This operation is forbidden" : "Thao tác bị cấm",
@@ -209,6 +208,7 @@ OC.L10N.register(
"Deleted shares" : "‎Chia sẻ đã xóa‎",
"Pending shares" : "Chia sẻ đang chờ xử lý‎",
"Text file" : "Tập tin văn bản",
- "New text file.txt" : "‎Tệp văn bản mới.txt‎"
+ "New text file.txt" : "‎Tệp văn bản mới.txt‎",
+ "Select" : "Chọn"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index 3f22db7fb26..32e2a01ea31 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -39,7 +39,6 @@
"Details" : "Chi tiết",
"Please select tag(s) to add to the selection" : "Vui lòng chọn (các) thẻ để thêm vào lựa chọn",
"Apply tag(s) to selection" : "Áp dụng (các) thẻ cho lựa chọn",
- "Select" : "Chọn",
"Pending" : "Đang chờ",
"Unable to determine date" : "Không thể xác định ngày",
"This operation is forbidden" : "Thao tác bị cấm",
@@ -207,6 +206,7 @@
"Deleted shares" : "‎Chia sẻ đã xóa‎",
"Pending shares" : "Chia sẻ đang chờ xử lý‎",
"Text file" : "Tập tin văn bản",
- "New text file.txt" : "‎Tệp văn bản mới.txt‎"
+ "New text file.txt" : "‎Tệp văn bản mới.txt‎",
+ "Select" : "Chọn"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index bfb5b8398da..2a41cdaa6e1 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "详细信息",
"Please select tag(s) to add to the selection" : "请选择要添加到所选项目的标签",
"Apply tag(s) to selection" : "将标签应用到所选项目",
- "Select" : "选择",
"Pending" : "等待",
"Unable to determine date" : "无法确定日期",
"This operation is forbidden" : "该操作被禁止",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "已删除的共享",
"Pending shares" : "待定共享",
"Text file" : "文本文件",
- "New text file.txt" : "新建文本文档.txt"
+ "New text file.txt" : "新建文本文档.txt",
+ "Select" : "选择"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index c04fdd3e767..137073c19b7 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -39,7 +39,6 @@
"Details" : "详细信息",
"Please select tag(s) to add to the selection" : "请选择要添加到所选项目的标签",
"Apply tag(s) to selection" : "将标签应用到所选项目",
- "Select" : "选择",
"Pending" : "等待",
"Unable to determine date" : "无法确定日期",
"This operation is forbidden" : "该操作被禁止",
@@ -208,6 +207,7 @@
"Deleted shares" : "已删除的共享",
"Pending shares" : "待定共享",
"Text file" : "文本文件",
- "New text file.txt" : "新建文本文档.txt"
+ "New text file.txt" : "新建文本文档.txt",
+ "Select" : "选择"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js
index 951449dec30..417ee5b062a 100644
--- a/apps/files/l10n/zh_HK.js
+++ b/apps/files/l10n/zh_HK.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "詳細資料",
"Please select tag(s) to add to the selection" : "請選擇要添加到所選項目中的標籤",
"Apply tag(s) to selection" : "將標籤應用於所選項目",
- "Select" : "選擇",
"Pending" : "待定的",
"Unable to determine date" : "無法確定日期",
"This operation is forbidden" : "此操作被禁止",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "已刪除的分享",
"Pending shares" : "等待分享",
"Text file" : "文字檔",
- "New text file.txt" : "新文字檔.txt"
+ "New text file.txt" : "新文字檔.txt",
+ "Select" : "選擇"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json
index fb9afd58cac..81abaa5633b 100644
--- a/apps/files/l10n/zh_HK.json
+++ b/apps/files/l10n/zh_HK.json
@@ -39,7 +39,6 @@
"Details" : "詳細資料",
"Please select tag(s) to add to the selection" : "請選擇要添加到所選項目中的標籤",
"Apply tag(s) to selection" : "將標籤應用於所選項目",
- "Select" : "選擇",
"Pending" : "待定的",
"Unable to determine date" : "無法確定日期",
"This operation is forbidden" : "此操作被禁止",
@@ -208,6 +207,7 @@
"Deleted shares" : "已刪除的分享",
"Pending shares" : "等待分享",
"Text file" : "文字檔",
- "New text file.txt" : "新文字檔.txt"
+ "New text file.txt" : "新文字檔.txt",
+ "Select" : "選擇"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 244d728fc22..2e8a2c6e833 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -41,7 +41,6 @@ OC.L10N.register(
"Details" : "詳細資料",
"Please select tag(s) to add to the selection" : "請選取要新增到選定項目的標籤",
"Apply tag(s) to selection" : "將標籤套用至選定項目",
- "Select" : "選取",
"Pending" : "等候中",
"Unable to determine date" : "無法確定日期",
"This operation is forbidden" : "此動作被禁止",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Deleted shares" : "已刪除的分享",
"Pending shares" : "等待分享",
"Text file" : "文字檔案",
- "New text file.txt" : "新文字檔案.txt"
+ "New text file.txt" : "新文字檔案.txt",
+ "Select" : "選取"
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 321b9a4683d..8156865457f 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -39,7 +39,6 @@
"Details" : "詳細資料",
"Please select tag(s) to add to the selection" : "請選取要新增到選定項目的標籤",
"Apply tag(s) to selection" : "將標籤套用至選定項目",
- "Select" : "選取",
"Pending" : "等候中",
"Unable to determine date" : "無法確定日期",
"This operation is forbidden" : "此動作被禁止",
@@ -208,6 +207,7 @@
"Deleted shares" : "已刪除的分享",
"Pending shares" : "等待分享",
"Text file" : "文字檔案",
- "New text file.txt" : "新文字檔案.txt"
+ "New text file.txt" : "新文字檔案.txt",
+ "Select" : "選取"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/lib/App.php b/apps/files/lib/App.php
index 386e5a3243a..e172f0ae826 100644
--- a/apps/files/lib/App.php
+++ b/apps/files/lib/App.php
@@ -6,6 +6,7 @@
* @author Joas Schilling <coding@schilljs.com>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Vincent Petry <vincent@nextcloud.com>
+ * @author Carl Schwan <carl@carlschwan.eu>
*
* @license AGPL-3.0
*
@@ -24,37 +25,42 @@
*/
namespace OCA\Files;
+use OC\NavigationManager;
+use OCP\App\IAppManager;
+use OCP\IConfig;
+use OCP\IGroupManager;
+use OCP\INavigationManager;
+use OCP\IURLGenerator;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+use OCP\Server;
+
class App {
- /**
- * @var \OCP\INavigationManager
- */
- private static $navigationManager;
+ private static ?INavigationManager $navigationManager = null;
/**
* Returns the app's navigation manager
- *
- * @return \OCP\INavigationManager
*/
- public static function getNavigationManager() {
+ public static function getNavigationManager(): INavigationManager {
// TODO: move this into a service in the Application class
if (self::$navigationManager === null) {
- self::$navigationManager = new \OC\NavigationManager(
- \OC::$server->getAppManager(),
- \OC::$server->getURLGenerator(),
- \OC::$server->getL10NFactory(),
- \OC::$server->getUserSession(),
- \OC::$server->getGroupManager(),
- \OC::$server->getConfig()
+ self::$navigationManager = new NavigationManager(
+ Server::get(IAppManager::class),
+ Server::get(IUrlGenerator::class),
+ Server::get(IFactory::class),
+ Server::get(IUserSession::class),
+ Server::get(IGroupManager::class),
+ Server::get(IConfig::class)
);
self::$navigationManager->clear(false);
}
return self::$navigationManager;
}
- public static function extendJsConfig($settings) {
+ public static function extendJsConfig($settings): void {
$appConfig = json_decode($settings['array']['oc_appconfig'], true);
- $maxChunkSize = (int)\OC::$server->getConfig()->getAppValue('files', 'max_chunk_size', 10 * 1024 * 1024);
+ $maxChunkSize = (int)Server::get(IConfig::class)->getAppValue('files', 'max_chunk_size', (string)(10 * 1024 * 1024));
$appConfig['files'] = [
'max_chunk_size' => $maxChunkSize
];
diff --git a/apps/files/lib/Collaboration/Resources/Listener.php b/apps/files/lib/Collaboration/Resources/Listener.php
index 5cf84316578..64dd693a4da 100644
--- a/apps/files/lib/Collaboration/Resources/Listener.php
+++ b/apps/files/lib/Collaboration/Resources/Listener.php
@@ -25,6 +25,7 @@ declare(strict_types=1);
*/
namespace OCA\Files\Collaboration\Resources;
+use OCP\Server;
use OCP\Collaboration\Resources\IManager;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
@@ -37,9 +38,9 @@ class Listener {
public static function shareModification(): void {
/** @var IManager $resourceManager */
- $resourceManager = \OC::$server->query(IManager::class);
+ $resourceManager = Server::get(IManager::class);
/** @var ResourceProvider $resourceProvider */
- $resourceProvider = \OC::$server->query(ResourceProvider::class);
+ $resourceProvider = Server::get(ResourceProvider::class);
$resourceManager->invalidateAccessCacheForProvider($resourceProvider);
}
diff --git a/apps/files/lib/Controller/TransferOwnershipController.php b/apps/files/lib/Controller/TransferOwnershipController.php
index fb1a8b33dc1..5abd65444bf 100644
--- a/apps/files/lib/Controller/TransferOwnershipController.php
+++ b/apps/files/lib/Controller/TransferOwnershipController.php
@@ -30,6 +30,7 @@ namespace OCA\Files\Controller;
use OCA\Files\BackgroundJob\TransferOwnership;
use OCA\Files\Db\TransferOwnership as TransferOwnershipEntity;
use OCA\Files\Db\TransferOwnershipMapper;
+use OCP\Files\IHomeStorage;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
@@ -97,7 +98,7 @@ class TransferOwnershipController extends OCSController {
return new DataResponse([], Http::STATUS_BAD_REQUEST);
}
- if ($node->getOwner()->getUID() !== $this->userId) {
+ if ($node->getOwner()->getUID() !== $this->userId || !$node->getStorage()->instanceOfStorage(IHomeStorage::class)) {
return new DataResponse([], Http::STATUS_FORBIDDEN);
}
diff --git a/apps/files/list.php b/apps/files/list.php
index 09dc217139c..c4b93b2e145 100644
--- a/apps/files/list.php
+++ b/apps/files/list.php
@@ -23,12 +23,15 @@
*
*/
use OCP\Share\IManager;
+use OCP\Server;
+use OCP\IConfig;
+use OCP\IUserSession;
-$config = \OC::$server->getConfig();
-$userSession = \OC::$server->getUserSession();
+$config = Server::get(IConfig::class);
+$userSession = Server::get(IUserSession::class);
// TODO: move this to the generated config.js
/** @var IManager $shareManager */
-$shareManager = \OC::$server->get(IManager::class);
+$shareManager = Server::get(IManager::class);
$publicUploadEnabled = $shareManager->shareApiLinkAllowPublicUpload() ? 'yes' : 'no';
$showgridview = $config->getUserValue($userSession->getUser()->getUID(), 'files', 'show_grid', false);
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 4a1cf808f2a..0d95f2694d9 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -5,7 +5,7 @@
<input type="checkbox" class="hidden-visually" id="showgridview"
aria-label="<?php p($l->t('Toggle grid view'))?>"
<?php if ($_['showgridview']) { ?>checked="checked" <?php } ?>/>
- <label id="view-toggle" for="showgridview" class="button <?php p($_['showgridview'] ? 'icon-toggle-filelist' : 'icon-toggle-pictures') ?>"
+ <label id="view-toggle" for="showgridview" tabindex="0" class="button <?php p($_['showgridview'] ? 'icon-toggle-filelist' : 'icon-toggle-pictures') ?>"
title="<?php p($l->t('Toggle grid view'))?>"></label>
<?php foreach ($_['appContents'] as $content) { ?>
diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php
index a88a9550beb..25558bf16f7 100644
--- a/apps/files/templates/list.php
+++ b/apps/files/templates/list.php
@@ -44,13 +44,13 @@
</th>
<th id='headerName' class="hidden column-name">
<div id="headerName-container">
- <a class="name sort columntitle" data-sort="name">
+ <a class="name sort columntitle" onclick="event.preventDefault()" href="#" data-sort="name">
<span><?php p($l->t('Name')); ?></span>
<span class="sort-indicator"></span>
</a>
<span id="selectedActionsList" class="selectedActions">
- <a href="" class="actions-selected">
+ <a href="#" onclick="event.preventDefault()" class="actions-selected">
<span class="icon icon-more"></span>
<span><?php p($l->t('Actions'))?></span>
</a>
@@ -58,10 +58,10 @@
</div>
</th>
<th id="headerSize" class="hidden column-size">
- <a class="size sort columntitle" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
+ <a class="size sort columntitle" href="#" onclick="event.preventDefault()" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
</th>
<th id="headerDate" class="hidden column-mtime">
- <a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span class="sort-indicator"></span></a>
+ <a id="modified" class="columntitle" href="#" onclick="event.preventDefault()" data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span class="sort-indicator"></span></a>
</th>
</tr>
</thead>
@@ -75,7 +75,6 @@
<div class="hiddenuploadfield">
<input type="file" id="file_upload_start" class="hiddenuploadfield" name="files[]" />
</div>
-<div id="editor"></div><!-- FIXME Do not use this div in your app! It is deprecated and will be removed in the future! -->
<div id="uploadsize-message" title="<?php p($l->t('Upload too large'))?>">
<p>
<?php p($l->t('The files you are trying to upload exceed the maximum size for file uploads on this server.'));?>
diff --git a/apps/files/templates/recentlist.php b/apps/files/templates/recentlist.php
index 8a556a6dc1d..3a5049bc2de 100644
--- a/apps/files/templates/recentlist.php
+++ b/apps/files/templates/recentlist.php
@@ -16,20 +16,20 @@
<tr>
<th id='headerName' class="hidden column-name">
<div id="headerName-container">
- <a class="name sort columntitle"
+ <a class="name sort columntitle" href="#" onclick="event.preventDefault()"
data-sort="name"><span><?php p($l->t('Name')); ?></span></a>
</div>
</th>
<th id="headerSize" class="hidden column-size">
- <a class="size sort columntitle"
+ <a class="size sort columntitle" href="#" onclick="event.preventDefault()"
data-sort="size"><span><?php p($l->t('Size')); ?></span></a>
</th>
<th id="headerDate" class="hidden column-mtime">
- <a id="modified" class="columntitle"
+ <a id="modified" class="columntitle" href="#" onclick="event.preventDefault()"
data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span
class="sort-indicator"></span></a>
<span class="selectedActions">
- <a href="" class="delete-selected">
+ <a href="#" onclick="event.preventDefault()" class="delete-selected">
<span class="icon icon-delete"></span>
<span><?php p($l->t('Delete')) ?></span>
</a>
diff --git a/apps/files/templates/simplelist.php b/apps/files/templates/simplelist.php
index 24bd1c8ca2a..917fc307ff8 100644
--- a/apps/files/templates/simplelist.php
+++ b/apps/files/templates/simplelist.php
@@ -18,16 +18,16 @@
<tr>
<th id='headerName' class="hidden column-name">
<div id="headerName-container">
- <a class="name sort columntitle" data-sort="name"><span><?php p($l->t('Name')); ?></span><span class="sort-indicator"></span></a>
+ <a class="name sort columntitle" onclick="event.preventDefault()" href="#" data-sort="name"><span><?php p($l->t('Name')); ?></span><span class="sort-indicator"></span></a>
</div>
</th>
<th id="headerSize" class="hidden column-size">
- <a class="size sort columntitle" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
+ <a class="size sort columntitle" onclick="event.preventDefault()" href="#" data-sort="size"><span><?php p($l->t('Size')); ?></span><span class="sort-indicator"></span></a>
</th>
<th id="headerDate" class="hidden column-mtime">
- <a id="modified" class="columntitle" data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span class="sort-indicator"></span></a>
+ <a id="modified" class="columntitle" onclick="event.preventDefault()" href="#" data-sort="mtime"><span><?php p($l->t('Modified')); ?></span><span class="sort-indicator"></span></a>
<span class="selectedActions">
- <a href="" class="delete-selected">
+ <a onclick="event.preventDefault()" href="#" class="delete-selected">
<img class="svg" alt=""
src="<?php print_unescaped(OCP\Template::image_path("core", "actions/delete.svg")); ?>" />
<?php p($l->t('Delete'))?>
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index d35b3a19b9c..cd797626d2f 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -119,12 +119,12 @@ describe('OCA.Files.FileList tests', function() {
'<thead><tr>' +
'<th id="headerName" class="hidden column-name">' +
'<input type="checkbox" id="select_all_files" class="select-all checkbox">' +
- '<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
+ '<a class="name columntitle" href="#" onclick="event.preventDefault()" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
'<span id="selectedActionsList" class="selectedActions hidden">' +
- '<a href class="actions-selected"><span class="icon icon-more"></span><span>Actions</span></a>' +
+ '<a class="actions-selected" href="#" onclick="event.preventDefault()"><span class="icon icon-more"></span><span>Actions</span></a>' +
'</th>' +
- '<th class="hidden column-size"><a class="columntitle" data-sort="size"><span class="sort-indicator"></span></a></th>' +
- '<th class="hidden column-mtime"><a class="columntitle" data-sort="mtime"><span class="sort-indicator"></span></a></th>' +
+ '<th class="hidden column-size"><a class="columntitle" href="#" onclick="event.preventDefault()" data-sort="size"><span class="sort-indicator"></span></a></th>' +
+ '<th class="hidden column-mtime"><a class="columntitle" href="#" onclick="event.preventDefault()" data-sort="mtime"><span class="sort-indicator"></span></a></th>' +
'</tr></thead>' +
'<tbody id="fileList"></tbody>' +
'<tfoot></tfoot>' +
diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.css
new file mode 100644
index 00000000000..84e382ceb89
--- /dev/null
+++ b/apps/files_external/css/settings.css
@@ -0,0 +1,177 @@
+#files_external {
+ margin-bottom: 0px;
+}
+
+#externalStorage {
+ margin: 15px 0 20px 0;
+}
+#externalStorage tr.externalStorageLoading > td {
+ text-align: center;
+}
+
+#externalStorage td > input, #externalStorage td > select {
+ width: 100%;
+}
+
+#externalStorage td.status {
+ /* overwrite conflicting core styles */
+ display: table-cell;
+ vertical-align: middle;
+}
+
+#externalStorage td.status > span {
+ display: inline-block;
+ height: 28px;
+ width: 28px;
+ vertical-align: text-bottom;
+ border-radius: 50%;
+ cursor: pointer;
+}
+
+#externalStorage td.mountPoint, #externalStorage td.backend, #externalStorage td.authentication, #externalStorage td.configuration {
+ min-width: 160px;
+ width: 15%;
+}
+
+#externalStorage td > img {
+ padding-top: 7px;
+ opacity: 0.5;
+}
+
+#externalStorage td > img:hover {
+ padding-top: 7px;
+ cursor: pointer;
+ opacity: 1;
+}
+
+#addMountPoint > td {
+ border: none;
+}
+
+#addMountPoint > td.applicable {
+ visibility: hidden;
+}
+
+#addMountPoint > td.hidden {
+ visibility: hidden;
+}
+
+#externalStorage td {
+ height: 50px;
+}
+#externalStorage td.mountOptionsToggle, #externalStorage td.remove, #externalStorage td.save {
+ position: relative;
+ padding: 0 !important;
+ width: 44px;
+}
+#externalStorage td.mountOptionsToggle [class^=icon-],
+#externalStorage td.mountOptionsToggle [class*=" icon-"], #externalStorage td.remove [class^=icon-],
+#externalStorage td.remove [class*=" icon-"], #externalStorage td.save [class^=icon-],
+#externalStorage td.save [class*=" icon-"] {
+ opacity: 0.5;
+ padding: 14px;
+ vertical-align: text-bottom;
+ cursor: pointer;
+}
+#externalStorage td.mountOptionsToggle [class^=icon-]:hover,
+#externalStorage td.mountOptionsToggle [class*=" icon-"]:hover, #externalStorage td.remove [class^=icon-]:hover,
+#externalStorage td.remove [class*=" icon-"]:hover, #externalStorage td.save [class^=icon-]:hover,
+#externalStorage td.save [class*=" icon-"]:hover {
+ opacity: 1;
+}
+
+#selectBackend {
+ margin-left: -10px;
+ width: 150px;
+}
+
+#externalStorage td.configuration,
+#externalStorage td.backend {
+ white-space: normal;
+}
+
+#externalStorage td.configuration > * {
+ white-space: nowrap;
+}
+
+#externalStorage td.configuration input.added {
+ margin-right: 6px;
+}
+
+#externalStorage label > input[type=checkbox] {
+ margin-right: 3px;
+}
+
+#externalStorage td.configuration label {
+ width: 100%;
+ display: inline-flex;
+ align-items: center;
+}
+
+#externalStorage td.configuration input.disabled-success {
+ background-color: rgba(134, 255, 110, 0.9);
+}
+
+#externalStorage td.applicable div.chzn-container {
+ position: relative;
+ top: 3px;
+}
+
+#externalStorage .select2-container.applicableUsers {
+ width: 100% !important;
+}
+
+#userMountingBackends {
+ padding-left: 25px;
+}
+
+.files-external-select2 .select2-results .select2-result-label {
+ height: 32px;
+ padding: 3px;
+}
+
+.files-external-select2 .select2-results .select2-result-label > span {
+ display: block;
+ position: relative;
+}
+
+.files-external-select2 .select2-results .select2-result-label .avatardiv {
+ display: inline-block;
+}
+
+.files-external-select2 .select2-results .select2-result-label .avatardiv + span {
+ position: absolute;
+ top: 5px;
+ margin-left: 10px;
+}
+
+.files-external-select2 .select2-results .select2-result-label .avatardiv[data-type=group] + span {
+ vertical-align: top;
+ top: 6px;
+ position: absolute;
+ max-width: 80%;
+ left: 30px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#externalStorage .select2-container .select2-search-choice {
+ display: flex;
+}
+#externalStorage .select2-container .select2-search-choice .select2-search-choice-close {
+ display: block;
+ left: auto;
+ position: relative;
+ width: 20px;
+}
+
+#externalStorage .mountOptionsToggle .dropdown {
+ width: auto;
+}
+
+.nav-icon-external-storage {
+ background-image: var(--icon-external-dark);
+}
+
+/*# sourceMappingURL=settings.css.map */
diff --git a/apps/files_external/css/settings.css.map b/apps/files_external/css/settings.css.map
new file mode 100644
index 00000000000..d084c036f9a
--- /dev/null
+++ b/apps/files_external/css/settings.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["settings.scss"],"names":[],"mappings":"AAAA;EACC;;;AAGD;EACC;;AAEA;EACC;;;AAKD;EACC;;;AAIF;AACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGA;EACC;EACA;;;AAGF;EAA0B;EAAiB;;;AAC3C;EAAgC;EAAiB;EAAgB;;;AACjE;EAAoB;;;AACpB;EAA+B;;;AAC/B;EAA2B;;;AAE3B;EACC;;AACA;EAGC;EACA;EACA;;AACA;AAAA;AAAA;AAAA;EAEC;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;EACC;;;AAMJ;EACC;EACA;;;AAGD;AAAA;EAEC;;;AAED;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAID;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;AACA;EACC;EACA;EACA;EACA;;;AAIF;EACC;;;AAGD;EACC","file":"settings.css"} \ No newline at end of file
diff --git a/apps/files_external/css/settings.scss b/apps/files_external/css/settings.scss
index f11ea06c155..f4d8b677d96 100644
--- a/apps/files_external/css/settings.scss
+++ b/apps/files_external/css/settings.scss
@@ -150,5 +150,5 @@
}
.nav-icon-external-storage {
- @include icon-color('app-dark', 'files_external', $color-black);
+ background-image: var(--icon-external-dark);
}
diff --git a/apps/files_external/lib/Lib/Storage/AmazonS3.php b/apps/files_external/lib/Lib/Storage/AmazonS3.php
index cfd78689fa4..e7a8c5f9329 100644
--- a/apps/files_external/lib/Lib/Storage/AmazonS3.php
+++ b/apps/files_external/lib/Lib/Storage/AmazonS3.php
@@ -53,6 +53,8 @@ use OCP\Files\FileInfo;
use OCP\Files\IMimeTypeDetector;
use OCP\ICacheFactory;
use OCP\IMemcache;
+use OCP\Server;
+use OCP\ICache;
class AmazonS3 extends \OC\Files\Storage\Common {
use S3ConnectionTrait;
@@ -62,23 +64,18 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return false;
}
- /** @var CappedMemoryCache|Result[] */
- private $objectCache;
+ /** @var CappedMemoryCache<array|false> */
+ private CappedMemoryCache $objectCache;
- /** @var CappedMemoryCache|bool[] */
- private $directoryCache;
+ /** @var CappedMemoryCache<bool> */
+ private CappedMemoryCache $directoryCache;
- /** @var CappedMemoryCache|array */
- private $filesCache;
+ /** @var CappedMemoryCache<array> */
+ private CappedMemoryCache $filesCache;
- /** @var IMimeTypeDetector */
- private $mimeDetector;
-
- /** @var bool|null */
- private $versioningEnabled = null;
-
- /** @var IMemcache */
- private $memCache;
+ private IMimeTypeDetector $mimeDetector;
+ private ?bool $versioningEnabled = null;
+ private ICache $memCache;
public function __construct($parameters) {
parent::__construct($parameters);
@@ -87,9 +84,9 @@ class AmazonS3 extends \OC\Files\Storage\Common {
$this->objectCache = new CappedMemoryCache();
$this->directoryCache = new CappedMemoryCache();
$this->filesCache = new CappedMemoryCache();
- $this->mimeDetector = \OC::$server->get(IMimeTypeDetector::class);
+ $this->mimeDetector = Server::get(IMimeTypeDetector::class);
/** @var ICacheFactory $cacheFactory */
- $cacheFactory = \OC::$server->get(ICacheFactory::class);
+ $cacheFactory = Server::get(ICacheFactory::class);
$this->memCache = $cacheFactory->createLocal('s3-external');
}
@@ -145,10 +142,9 @@ class AmazonS3 extends \OC\Files\Storage\Common {
}
/**
- * @param $key
* @return array|false
*/
- private function headObject($key) {
+ private function headObject(string $key) {
if (!isset($this->objectCache[$key])) {
try {
$this->objectCache[$key] = $this->getConnection()->headObject([
@@ -164,6 +160,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
}
if (is_array($this->objectCache[$key]) && !isset($this->objectCache[$key]["Key"])) {
+ /** @psalm-suppress InvalidArgument Psalm doesn't understand nested arrays well */
$this->objectCache[$key]["Key"] = $key;
}
return $this->objectCache[$key];
diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php
index c2555f87b93..bdb9b4f9c8f 100644
--- a/apps/files_external/lib/Lib/Storage/SMB.php
+++ b/apps/files_external/lib/Lib/Storage/SMB.php
@@ -84,10 +84,8 @@ class SMB extends Common implements INotifyStorage {
*/
protected $root;
- /**
- * @var IFileInfo[]
- */
- protected $statCache;
+ /** @var CappedMemoryCache<IFileInfo> */
+ protected CappedMemoryCache $statCache;
/** @var ILogger */
protected $logger;
@@ -527,7 +525,7 @@ class SMB extends Common implements INotifyStorage {
}
try {
- $this->statCache = [];
+ $this->statCache = new CappedMemoryCache();
$content = $this->share->dir($this->buildPath($path));
foreach ($content as $file) {
if ($file->isDirectory()) {
diff --git a/apps/files_external/lib/Listener/StorePasswordListener.php b/apps/files_external/lib/Listener/StorePasswordListener.php
index bd0c4dc1ffd..66232a78a93 100644
--- a/apps/files_external/lib/Listener/StorePasswordListener.php
+++ b/apps/files_external/lib/Listener/StorePasswordListener.php
@@ -50,19 +50,27 @@ class StorePasswordListener implements IEventListener {
return;
}
- $stored = $this->credentialsManager->retrieve($event->getUser()->getUID(), LoginCredentials::CREDENTIALS_IDENTIFIER);
- $update = isset($stored['password']) && $stored['password'] !== $event->getPassword();
- if (!$update && $event instanceof UserLoggedInEvent) {
- $update = isset($stored['user']) && $stored['user'] !== $event->getLoginName();
+ $storedCredentials = $this->credentialsManager->retrieve($event->getUser()->getUID(), LoginCredentials::CREDENTIALS_IDENTIFIER);
+
+ if (!$storedCredentials) {
+ return;
+ }
+
+ $newCredentials = $storedCredentials;
+ $shouldUpdate = false;
+
+ if (isset($storedCredentials['password']) && $storedCredentials['password'] !== $event->getPassword()) {
+ $shouldUpdate = true;
+ $newCredentials['password'] = $event->getPassword();
}
- if ($stored && $update) {
- $credentials = [
- 'user' => $event->getLoginName(),
- 'password' => $event->getPassword()
- ];
+ if (isset($storedCredentials['user']) && $event instanceof UserLoggedInEvent && $storedCredentials['user'] !== $event->getLoginName()) {
+ $shouldUpdate = true;
+ $newCredentials['user'] = $event->getLoginName();
+ }
- $this->credentialsManager->store($event->getUser()->getUID(), LoginCredentials::CREDENTIALS_IDENTIFIER, $credentials);
+ if ($shouldUpdate) {
+ $this->credentialsManager->store($event->getUser()->getUID(), LoginCredentials::CREDENTIALS_IDENTIFIER, $newCredentials);
}
}
}
diff --git a/apps/files_sharing/css/icons.css b/apps/files_sharing/css/icons.css
new file mode 100644
index 00000000000..ff5c5844df6
--- /dev/null
+++ b/apps/files_sharing/css/icons.css
@@ -0,0 +1,94 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @author John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @see core/src/icons.js
+ */
+/**
+ * SVG COLOR API
+ *
+ * @param string $icon the icon filename
+ * @param string $dir the icon folder within /core/img if $core or app name
+ * @param string $color the desired color in hexadecimal
+ * @param int $version the version of the file
+ * @param bool [$core] search icon in core
+ *
+ * @returns A background image with the url to the set to the requested icon.
+ */
+.icon-room {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-app-dark);
+}
+
+.icon-circle {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-circles-dark);
+}
+
+.icon-guests {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-app-dark);
+}
+
+/*# sourceMappingURL=icons.css.map */
diff --git a/apps/files_sharing/css/icons.css.map b/apps/files_sharing/css/icons.css.map
new file mode 100644
index 00000000000..a2766ac03f7
--- /dev/null
+++ b/apps/files_sharing/css/icons.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","icons.scss","../../../core/css/functions.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ADzBA;ACsCC;EAEA;;;ADrCD;ACmCC;EAEA;;;ADlCD;ACgCC;EAEA","file":"icons.css"} \ No newline at end of file
diff --git a/apps/files_sharing/css/icons.scss b/apps/files_sharing/css/icons.scss
index 002235b6e32..529d8bd5100 100644
--- a/apps/files_sharing/css/icons.scss
+++ b/apps/files_sharing/css/icons.scss
@@ -19,14 +19,16 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
+@use 'variables';
+@import 'functions';
// This is the icons used in the sharing ui (multiselect)
.icon-room {
- @include icon-color('app', 'spreed', $color-black);
+ @include icon-color('app', 'spreed', variables.$color-black);
}
.icon-circle {
- @include icon-color('circles', 'circles', $color-black, 3, false);
+ @include icon-color('circles', 'circles', variables.$color-black, 3, false);
}
.icon-guests {
- @include icon-color('app', 'guests', $color-black);
+ @include icon-color('app', 'guests', variables.$color-black);
} \ No newline at end of file
diff --git a/apps/files_sharing/css/mobile.css b/apps/files_sharing/css/mobile.css
new file mode 100644
index 00000000000..63acecb90c8
--- /dev/null
+++ b/apps/files_sharing/css/mobile.css
@@ -0,0 +1,86 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+@media only screen and (max-width: 1024px) {
+ /* make header scroll up for single shares, more view of content on small screens */
+ #header.share-file {
+ position: absolute !important;
+ }
+
+ /* hide size and date columns */
+ table th#headerSize,
+table td.filesize,
+table th#headerDate,
+table td.date {
+ display: none;
+ }
+
+ /* restrict length of displayed filename to prevent overflow */
+ table td.filename .nametext {
+ max-width: 75% !important;
+ }
+
+ /* on mobile, show single shared image at full width without margin */
+ #imgframe {
+ width: 100%;
+ padding: 0;
+ margin-bottom: 35px;
+ }
+
+ /* some margin for the file type icon */
+ #imgframe .publicpreview {
+ margin-top: 32px;
+ }
+
+ /* some padding for better clickability */
+ #fileList a.action img {
+ padding: 0 6px 0 12px;
+ }
+
+ /* hide text of the actions on mobile */
+ #fileList a.action:not(.menuitem) span {
+ display: none;
+ }
+
+ /* ellipsis on file names */
+ .nametext {
+ width: 60%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ #header .menutoggle {
+ padding-right: 14px;
+ background-position: center;
+ }
+
+ .note {
+ padding: 0 20px;
+ }
+
+ #emptycontent {
+ margin-top: 10vh;
+ }
+}
+
+/*# sourceMappingURL=mobile.css.map */
diff --git a/apps/files_sharing/css/mobile.css.map b/apps/files_sharing/css/mobile.css.map
new file mode 100644
index 00000000000..36f4289e94a
--- /dev/null
+++ b/apps/files_sharing/css/mobile.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","mobile.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACEA;AAEA;EACA;IACC;;;AAGD;EACA;AAAA;AAAA;AAAA;IAIC;;;AAGD;EACA;IACC;;;AAGD;EACA;IACC;IACA;IACA;;;AAED;EACA;IACC;;;AAGD;EACA;IACC;;;AAED;EACA;IACC;;;AAGD;EACA;IACC;IACA;IACA;IACA;;;EAGD;IACI;IACA;;;EAEJ;IACC;;;EAGD;IACC","file":"mobile.css"} \ No newline at end of file
diff --git a/apps/files_sharing/css/mobile.scss b/apps/files_sharing/css/mobile.scss
index 0202fdd08d1..38a7a9cd711 100644
--- a/apps/files_sharing/css/mobile.scss
+++ b/apps/files_sharing/css/mobile.scss
@@ -1,4 +1,6 @@
-@media only screen and (max-width: $breakpoint-mobile) {
+@use 'variables';
+
+@media only screen and (max-width: variables.$breakpoint-mobile) {
/* make header scroll up for single shares, more view of content on small screens */
#header.share-file {
diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css
new file mode 100644
index 00000000000..21dd876905c
--- /dev/null
+++ b/apps/files_sharing/css/public.css
@@ -0,0 +1,237 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#preview {
+ text-align: center;
+}
+
+#preview .notCreatable {
+ display: none;
+}
+
+#noPreview {
+ display: none;
+ padding-top: 80px;
+}
+
+#imgframe {
+ height: 75%;
+ padding-bottom: 32px;
+ padding-top: 32px;
+ width: 80%;
+ margin: 0 auto;
+}
+
+#imgframe img {
+ max-height: 100% !important;
+ max-width: 100% !important;
+}
+
+#imgframe audio {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+#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;
+}
+
+#imgframe .ellipsis {
+ font-size: 1.2em;
+}
+
+/* fix multiselect bar offset on shared page */
+thead {
+ left: 0 !important;
+}
+
+#data-upload-form {
+ position: relative;
+ right: 0;
+ height: 32px;
+ overflow: hidden;
+ padding: 0;
+ float: right;
+ display: inline;
+ margin: 0;
+}
+
+/* keep long file names in one line to not overflow download button on mobile */
+.directDownload #downloadFile {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 90%;
+ display: inline-block;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 16px;
+}
+
+.download-size {
+ opacity: 0.5;
+}
+
+/* header buttons */
+#details {
+ display: inline-flex;
+}
+
+#details button,
+#details input,
+#details .button {
+ margin: 0 5px;
+ line-height: normal;
+}
+
+#details button:hover,
+#details input:hover,
+#details .button:hover {
+ /* No */
+ border-color: rgba(0, 0, 0, 0.3) !important;
+}
+
+#public-upload .avatardiv {
+ margin: 0 auto;
+}
+
+#emptycontent.has-note {
+ margin-top: 5vh;
+}
+
+#public-upload #emptycontent h2 {
+ margin: 10px 0 5px 0;
+}
+
+#public-upload #emptycontent h2 + p {
+ margin-bottom: 30px;
+}
+
+#public-upload #emptycontent .icon-folder {
+ height: 16px;
+ width: 16px;
+ background-size: 16px;
+ display: inline-block;
+ vertical-align: text-top;
+ margin-bottom: 0;
+ margin-right: 5px;
+ opacity: 1;
+}
+
+#public-upload #emptycontent #displayavatar .icon-folder {
+ height: 48px;
+ width: 48px;
+ background-size: 48px;
+}
+
+#public-upload #emptycontent .button {
+ display: inline-block;
+ height: auto;
+ width: auto;
+ background-size: 16px;
+ background-position: 16px;
+ opacity: 0.7;
+ font-size: 20px;
+ line-height: initial;
+ margin: 20px;
+ padding: 10px 20px;
+ padding-left: 42px;
+}
+
+#public-upload #emptycontent ul {
+ width: 230px;
+ margin: 5px auto 5vh;
+ text-align: left;
+}
+
+#public-upload #emptycontent li {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ padding: 7px 0;
+}
+
+#public-upload #emptycontent li img {
+ margin-right: 5px;
+ position: relative;
+ top: 2px;
+}
+
+#drop-upload-progress-indicator span.icon-loading-small {
+ padding-left: 18px;
+ margin-right: 7px;
+}
+
+#drop-uploaded-files li #drop-upload-name {
+ float: left;
+ max-width: 180px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#drop-uploaded-files li #drop-upload-status {
+ float: right;
+}
+
+.disclaimer,
+.note {
+ margin: 0 auto 30px;
+ max-width: 400px;
+ text-align: left;
+}
+
+#note-content {
+ padding: 5px;
+ display: inline-block;
+ width: 350px;
+}
+#note-content .content {
+ overflow: auto;
+ max-height: 200px;
+}
+
+#show-terms-dialog {
+ cursor: pointer;
+ font-weight: bold;
+}
+
+@media only screen and (min-width: 1025px) {
+ #body-public .header-right #header-actions-menu > ul > li#download {
+ display: none;
+ }
+}
+@media only screen and (max-width: 1024px) {
+ #body-public .header-right #header-primary-action {
+ display: none;
+ }
+}
+
+/*# sourceMappingURL=public.css.map */
diff --git a/apps/files_sharing/css/public.css.map b/apps/files_sharing/css/public.css.map
new file mode 100644
index 00000000000..c100a63b6d8
--- /dev/null
+++ b/apps/files_sharing/css/public.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","public.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACEA;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAID;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;;;AAED;AAAA;AAAA;EAGC;EACA;;;AAED;AAAA;AAAA;AAGC;EACA;;;AAGD;EACC;;;AAIA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AACA;EACC;EACA;;;AAIF;EACC;EACA;;;AAKD;EAII;IACC;;;AAQL;EAGG;IACC","file":"public.css"} \ No newline at end of file
diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss
index aadf7d41037..a3754b7be9f 100644
--- a/apps/files_sharing/css/public.scss
+++ b/apps/files_sharing/css/public.scss
@@ -1,3 +1,5 @@
+@use 'variables';
+
#preview {
text-align: center;
}
@@ -204,7 +206,7 @@ thead {
// hide the download entry on the menu
// on public share when NOT on mobile
-@media only screen and (min-width: $breakpoint-mobile + 1) {
+@media only screen and (min-width: variables.$breakpoint-mobile + 1) {
#body-public {
.header-right {
#header-actions-menu {
@@ -217,7 +219,7 @@ thead {
}
// hide the primary on public share on mobile
-@media only screen and (max-width: $breakpoint-mobile) {
+@media only screen and (max-width: variables.$breakpoint-mobile) {
#body-public {
.header-right {
#header-primary-action {
diff --git a/apps/files_sharing/css/publicView.css b/apps/files_sharing/css/publicView.css
new file mode 100644
index 00000000000..c10620e59bf
--- /dev/null
+++ b/apps/files_sharing/css/publicView.css
@@ -0,0 +1,320 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#preview {
+ text-align: center;
+}
+
+#preview .notCreatable {
+ display: none;
+}
+
+#noPreview {
+ display: none;
+ padding-top: 80px;
+}
+
+#imgframe {
+ height: 75%;
+ padding-bottom: 32px;
+ padding-top: 32px;
+ width: 80%;
+ margin: 0 auto;
+}
+
+#imgframe img {
+ max-height: 100% !important;
+ max-width: 100% !important;
+}
+
+#imgframe audio {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+#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;
+}
+
+#imgframe .ellipsis {
+ font-size: 1.2em;
+}
+
+/* fix multiselect bar offset on shared page */
+thead {
+ left: 0 !important;
+}
+
+#data-upload-form {
+ position: relative;
+ right: 0;
+ height: 32px;
+ overflow: hidden;
+ padding: 0;
+ float: right;
+ display: inline;
+ margin: 0;
+}
+
+/* keep long file names in one line to not overflow download button on mobile */
+.directDownload #downloadFile {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 90%;
+ display: inline-block;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 16px;
+}
+
+.download-size {
+ opacity: 0.5;
+}
+
+/* header buttons */
+#details {
+ display: inline-flex;
+}
+
+#details button,
+#details input,
+#details .button {
+ margin: 0 5px;
+ line-height: normal;
+}
+
+#details button:hover,
+#details input:hover,
+#details .button:hover {
+ /* No */
+ border-color: rgba(0, 0, 0, 0.3) !important;
+}
+
+#public-upload .avatardiv {
+ margin: 0 auto;
+}
+
+#emptycontent.has-note {
+ margin-top: 5vh;
+}
+
+#public-upload #emptycontent h2 {
+ margin: 10px 0 5px 0;
+}
+
+#public-upload #emptycontent h2 + p {
+ margin-bottom: 30px;
+}
+
+#public-upload #emptycontent .icon-folder {
+ height: 16px;
+ width: 16px;
+ background-size: 16px;
+ display: inline-block;
+ vertical-align: text-top;
+ margin-bottom: 0;
+ margin-right: 5px;
+ opacity: 1;
+}
+
+#public-upload #emptycontent #displayavatar .icon-folder {
+ height: 48px;
+ width: 48px;
+ background-size: 48px;
+}
+
+#public-upload #emptycontent .button {
+ display: inline-block;
+ height: auto;
+ width: auto;
+ background-size: 16px;
+ background-position: 16px;
+ opacity: 0.7;
+ font-size: 20px;
+ line-height: initial;
+ margin: 20px;
+ padding: 10px 20px;
+ padding-left: 42px;
+}
+
+#public-upload #emptycontent ul {
+ width: 230px;
+ margin: 5px auto 5vh;
+ text-align: left;
+}
+
+#public-upload #emptycontent li {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ padding: 7px 0;
+}
+
+#public-upload #emptycontent li img {
+ margin-right: 5px;
+ position: relative;
+ top: 2px;
+}
+
+#drop-upload-progress-indicator span.icon-loading-small {
+ padding-left: 18px;
+ margin-right: 7px;
+}
+
+#drop-uploaded-files li #drop-upload-name {
+ float: left;
+ max-width: 180px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#drop-uploaded-files li #drop-upload-status {
+ float: right;
+}
+
+.disclaimer,
+.note {
+ margin: 0 auto 30px;
+ max-width: 400px;
+ text-align: left;
+}
+
+#note-content {
+ padding: 5px;
+ display: inline-block;
+ width: 350px;
+}
+#note-content .content {
+ overflow: auto;
+ max-height: 200px;
+}
+
+#show-terms-dialog {
+ cursor: pointer;
+ font-weight: bold;
+}
+
+@media only screen and (min-width: 1025px) {
+ #body-public .header-right #header-actions-menu > ul > li#download {
+ display: none;
+ }
+}
+@media only screen and (max-width: 1024px) {
+ #body-public .header-right #header-primary-action {
+ display: none;
+ }
+}
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+@media only screen and (max-width: 1024px) {
+ /* make header scroll up for single shares, more view of content on small screens */
+ #header.share-file {
+ position: absolute !important;
+ }
+
+ /* hide size and date columns */
+ table th#headerSize,
+table td.filesize,
+table th#headerDate,
+table td.date {
+ display: none;
+ }
+
+ /* restrict length of displayed filename to prevent overflow */
+ table td.filename .nametext {
+ max-width: 75% !important;
+ }
+
+ /* on mobile, show single shared image at full width without margin */
+ #imgframe {
+ width: 100%;
+ padding: 0;
+ margin-bottom: 35px;
+ }
+
+ /* some margin for the file type icon */
+ #imgframe .publicpreview {
+ margin-top: 32px;
+ }
+
+ /* some padding for better clickability */
+ #fileList a.action img {
+ padding: 0 6px 0 12px;
+ }
+
+ /* hide text of the actions on mobile */
+ #fileList a.action:not(.menuitem) span {
+ display: none;
+ }
+
+ /* ellipsis on file names */
+ .nametext {
+ width: 60%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ #header .menutoggle {
+ padding-right: 14px;
+ background-position: center;
+ }
+
+ .note {
+ padding: 0 20px;
+ }
+
+ #emptycontent {
+ margin-top: 10vh;
+ }
+}
+
+/*# sourceMappingURL=publicView.css.map */
diff --git a/apps/files_sharing/css/publicView.css.map b/apps/files_sharing/css/publicView.css.map
new file mode 100644
index 00000000000..e49de3e17ba
--- /dev/null
+++ b/apps/files_sharing/css/publicView.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","public.scss","mobile.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACEA;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAID;EACC;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;EACC;;;AAED;AAAA;AAAA;EAGC;EACA;;;AAED;AAAA;AAAA;AAGC;EACA;;;AAGD;EACC;;;AAIA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AAAA;EAEC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AACA;EACC;EACA;;;AAIF;EACC;EACA;;;AAKD;EAII;IACC;;;AAQL;EAGG;IACC;;;ADjOJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AEEA;AAEA;EACA;IACC;;;AAGD;EACA;AAAA;AAAA;AAAA;IAIC;;;AAGD;EACA;IACC;;;AAGD;EACA;IACC;IACA;IACA;;;AAED;EACA;IACC;;;AAGD;EACA;IACC;;;AAED;EACA;IACC;;;AAGD;EACA;IACC;IACA;IACA;IACA;;;EAGD;IACI;IACA;;;EAEJ;IACC;;;EAGD;IACC","file":"publicView.css"} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js
index 205d25bba6d..ea93581dc6d 100644
--- a/apps/files_sharing/l10n/fi.js
+++ b/apps/files_sharing/l10n/fi.js
@@ -135,6 +135,7 @@ OC.L10N.register(
"Accept user and group shares by default" : "Hyväksy käyttäjä- ja ryhmäjaot oletuksena",
"Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
"Reset" : "Palauta",
+ "Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
"Choose a default folder for accepted shares" : "Valitse oletuskansio hyväksytyille jaoille",
"Invalid path selected" : "Virheellinen polku valittu",
"Unknown error" : "Tuntematon virhe",
diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json
index 106c342d3b3..6d2add5ccd7 100644
--- a/apps/files_sharing/l10n/fi.json
+++ b/apps/files_sharing/l10n/fi.json
@@ -133,6 +133,7 @@
"Accept user and group shares by default" : "Hyväksy käyttäjä- ja ryhmäjaot oletuksena",
"Set default folder for accepted shares" : "Aseta oletuskansio hyväksytyille jaoille",
"Reset" : "Palauta",
+ "Reset folder to system default" : "Palauta kansio järjestelmän oletukseksi",
"Choose a default folder for accepted shares" : "Valitse oletuskansio hyväksytyille jaoille",
"Invalid path selected" : "Virheellinen polku valittu",
"Unknown error" : "Tuntematon virhe",
diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js
index 8752d5ff60d..295a90be3c1 100644
--- a/apps/files_sharing/l10n/sk.js
+++ b/apps/files_sharing/l10n/sk.js
@@ -101,6 +101,7 @@ OC.L10N.register(
"Wrong share ID, share doesn't exist" : "Neplatné ID sprístupnenia, sprístupnenie neexistuje",
"Could not delete share" : "Nie je možné zmazať sprístupnenie",
"Please specify a file or folder path" : "Zvoľte prosím súbor alebo cestu k priečinku",
+ "Wrong path, file/folder does not exist" : "Neplatná cesta, súbor alebo priečinok neexistuje",
"Could not create share" : "Nie je možné sprístupniť",
"Invalid permissions" : "Neplatné oprávnenia",
"Please specify a valid user" : "Zvoľte prosím platného používateľa",
@@ -123,6 +124,7 @@ OC.L10N.register(
"Could not lock path" : "Nie je možné uzamknúť cestu",
"Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk nie je zapnutý.",
"shared by %s" : "Sprístupnil %s",
"Download all files" : "Stiahnuť všetky súbory",
diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json
index 7ad5d80987f..29a44653668 100644
--- a/apps/files_sharing/l10n/sk.json
+++ b/apps/files_sharing/l10n/sk.json
@@ -99,6 +99,7 @@
"Wrong share ID, share doesn't exist" : "Neplatné ID sprístupnenia, sprístupnenie neexistuje",
"Could not delete share" : "Nie je možné zmazať sprístupnenie",
"Please specify a file or folder path" : "Zvoľte prosím súbor alebo cestu k priečinku",
+ "Wrong path, file/folder does not exist" : "Neplatná cesta, súbor alebo priečinok neexistuje",
"Could not create share" : "Nie je možné sprístupniť",
"Invalid permissions" : "Neplatné oprávnenia",
"Please specify a valid user" : "Zvoľte prosím platného používateľa",
@@ -121,6 +122,7 @@
"Could not lock path" : "Nie je možné uzamknúť cestu",
"Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE",
+ "Share must have READ permission if UPDATE or DELETE permission is set" : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.",
"\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk nie je zapnutý.",
"shared by %s" : "Sprístupnil %s",
"Download all files" : "Stiahnuť všetky súbory",
diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php
index bfb40387622..d27f9e5e0da 100644
--- a/apps/files_sharing/lib/MountProvider.php
+++ b/apps/files_sharing/lib/MountProvider.php
@@ -109,6 +109,7 @@ class MountProvider implements IMountProvider {
$view = new View('/' . $user->getUID() . '/files');
$ownerViews = [];
$sharingDisabledForUser = $this->shareManager->sharingDisabledForUser($user->getUID());
+ /** @var CappedMemoryCache<bool> $folderExistCache */
$foldersExistCache = new CappedMemoryCache();
foreach ($superShares as $share) {
try {
diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php
index 398da5eaf23..95ff66c4b71 100644
--- a/apps/files_sharing/lib/SharedMount.php
+++ b/apps/files_sharing/lib/SharedMount.php
@@ -96,6 +96,7 @@ class SharedMount extends MountPoint implements MoveableMount {
*
* @param \OCP\Share\IShare $share
* @param SharedMount[] $mountpoints
+ * @param CappedMemoryCache<bool> $folderExistCache
* @return string
*/
private function verifyMountPoint(
diff --git a/apps/files_sharing/src/components/SharingInput.vue b/apps/files_sharing/src/components/SharingInput.vue
index 02c1f27f173..9cb40697636 100644
--- a/apps/files_sharing/src/components/SharingInput.vue
+++ b/apps/files_sharing/src/components/SharingInput.vue
@@ -528,7 +528,7 @@ export default {
.multiselect__option {
span[lookup] {
.avatardiv {
- background-image: var(--icon-search-fff);
+ background-image: var(--icon-search-white);
background-repeat: no-repeat;
background-position: center;
background-color: var(--color-text-maxcontrast) !important;
diff --git a/apps/files_trashbin/l10n/ja.js b/apps/files_trashbin/l10n/ja.js
index 74ad9016862..2c1b13d68f7 100644
--- a/apps/files_trashbin/l10n/ja.js
+++ b/apps/files_trashbin/l10n/ja.js
@@ -3,10 +3,16 @@ OC.L10N.register(
{
"Deleted files" : "ゴミ箱",
"restored" : "復元済",
+ "Deleted files and folders in the trash bin" : "ゴミ箱内の削除されたファイルやフォルダー",
"This application enables users to restore files that were deleted from the system." : "このアプリケーションを使用すると、ユーザーはシステムから削除されたファイルを復元できます。",
"This application enables users to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the users file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent a user from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "このアプリケーションを使用すると、システムから削除されたファイルを復元できます。削除されたファイルのリストがWebインターフェイスに表示され、削除されたファイルをユーザーのファイルディレクトリに復元するか、システムから完全に削除するかを選択できます。バージョン管理アプリが有効になっている場合、ファイルを復元すると、関連するファイルバージョンも復元されます。共有から削除されたファイルは、共有されなくなりますが、同じ方法で復元できます。デフォルトでは、ファイルは30日間ごみ箱に残ります。\nディスク領域圧迫を防ぐため、 「削除済みファイル」 アプリでは、削除済みファイルに現在使用可能な割当て容量の50%を超える容量は使用されません。削除されたファイルがこの制限を超えると、この制限を下回るまで最も古いファイルが削除されます。詳細については、削除済みファイルのマニュアルを参照してください。",
"Restore" : "復元",
"Delete permanently" : "完全に削除する",
+ "Error while restoring file from trash bin" : "ごみ箱からファイルを復元中にエラーが発生しました",
+ "Error while removing file from trash bin" : "ごみ箱からファイルを削除中にエラーが発生しました",
+ "Error while restoring files from trash bin" : "ごみ箱からファイルを復元中にエラーが発生しました",
+ "Error while emptying trash bin" : "ごみ箱を空にする際にエラーが発生しました",
+ "Error while removing files from trash bin" : "ごみ箱からファイルを削除中にエラーが発生しました",
"This operation is forbidden" : "この操作は禁止されています",
"This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
"No deleted files" : "削除されたファイルはありません",
diff --git a/apps/files_trashbin/l10n/ja.json b/apps/files_trashbin/l10n/ja.json
index 0d1026b8c82..9916975843f 100644
--- a/apps/files_trashbin/l10n/ja.json
+++ b/apps/files_trashbin/l10n/ja.json
@@ -1,10 +1,16 @@
{ "translations": {
"Deleted files" : "ゴミ箱",
"restored" : "復元済",
+ "Deleted files and folders in the trash bin" : "ゴミ箱内の削除されたファイルやフォルダー",
"This application enables users to restore files that were deleted from the system." : "このアプリケーションを使用すると、ユーザーはシステムから削除されたファイルを復元できます。",
"This application enables users to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to the users file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.\nTo prevent a user from running out of disk space, the Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, the app deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation." : "このアプリケーションを使用すると、システムから削除されたファイルを復元できます。削除されたファイルのリストがWebインターフェイスに表示され、削除されたファイルをユーザーのファイルディレクトリに復元するか、システムから完全に削除するかを選択できます。バージョン管理アプリが有効になっている場合、ファイルを復元すると、関連するファイルバージョンも復元されます。共有から削除されたファイルは、共有されなくなりますが、同じ方法で復元できます。デフォルトでは、ファイルは30日間ごみ箱に残ります。\nディスク領域圧迫を防ぐため、 「削除済みファイル」 アプリでは、削除済みファイルに現在使用可能な割当て容量の50%を超える容量は使用されません。削除されたファイルがこの制限を超えると、この制限を下回るまで最も古いファイルが削除されます。詳細については、削除済みファイルのマニュアルを参照してください。",
"Restore" : "復元",
"Delete permanently" : "完全に削除する",
+ "Error while restoring file from trash bin" : "ごみ箱からファイルを復元中にエラーが発生しました",
+ "Error while removing file from trash bin" : "ごみ箱からファイルを削除中にエラーが発生しました",
+ "Error while restoring files from trash bin" : "ごみ箱からファイルを復元中にエラーが発生しました",
+ "Error while emptying trash bin" : "ごみ箱を空にする際にエラーが発生しました",
+ "Error while removing files from trash bin" : "ごみ箱からファイルを削除中にエラーが発生しました",
"This operation is forbidden" : "この操作は禁止されています",
"This directory is unavailable, please check the logs or contact the administrator" : "このディレクトリは利用できません。ログを確認するか管理者に問い合わせてください。",
"No deleted files" : "削除されたファイルはありません",
diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php
index 4631f9e9d5b..72072a2588c 100644
--- a/apps/files_trashbin/lib/Trashbin.php
+++ b/apps/files_trashbin/lib/Trashbin.php
@@ -801,7 +801,7 @@ class Trashbin {
$availableSpace = $quota;
}
- return $availableSpace;
+ return (int)$availableSpace;
}
/**
diff --git a/apps/oauth2/lib/Db/Client.php b/apps/oauth2/lib/Db/Client.php
index f0cac4bed33..78f3d966928 100644
--- a/apps/oauth2/lib/Db/Client.php
+++ b/apps/oauth2/lib/Db/Client.php
@@ -47,8 +47,8 @@ class Client extends Entity {
public function __construct() {
$this->addType('id', 'int');
$this->addType('name', 'string');
- $this->addType('redirect_uri', 'string');
- $this->addType('client_identifier', 'string');
+ $this->addType('redirectUri', 'string');
+ $this->addType('clientIdentifier', 'string');
$this->addType('secret', 'string');
}
}
diff --git a/apps/settings/css/settings.css b/apps/settings/css/settings.css
new file mode 100644
index 00000000000..fe9288ef82e
--- /dev/null
+++ b/apps/settings/css/settings.css
@@ -0,0 +1,1607 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
+ This file is licensed under the Affero General Public License version 3 or later.
+ See the COPYING-README file. */
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @see core/src/icons.js
+ */
+/**
+ * SVG COLOR API
+ *
+ * @param string $icon the icon filename
+ * @param string $dir the icon folder within /core/img if $core or app name
+ * @param string $color the desired color in hexadecimal
+ * @param int $version the version of the file
+ * @param bool [$core] search icon in core
+ *
+ * @returns A background image with the url to the set to the requested icon.
+ */
+input#openid, input#webdav {
+ width: 20em;
+}
+
+/* PERSONAL */
+.clear {
+ clear: both;
+}
+
+/* icons for sidebar */
+.nav-icon-personal-settings {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-personal-dark);
+}
+
+.nav-icon-security {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-toggle-filelist-dark);
+}
+
+.nav-icon-clientsbox {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-change-dark);
+}
+
+.nav-icon-federated-cloud {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-share-dark);
+}
+
+.nav-icon-second-factor-backup-codes, .nav-icon-ssl-root-certificate {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-password-dark);
+}
+
+#avatarform .avatardiv {
+ margin: 10px auto;
+}
+#avatarform .warning {
+ width: 100%;
+}
+#avatarform .jcrop-keymgr {
+ display: none !important;
+}
+
+#displayavatar {
+ text-align: center;
+}
+
+#uploadavatarbutton, #selectavatar, #removeavatar {
+ padding: 21px;
+}
+
+#selectavatar, #removeavatar {
+ vertical-align: top;
+}
+
+.jcrop-holder {
+ z-index: 500;
+}
+
+#cropper {
+ float: left;
+ z-index: 500;
+ /* float cropper above settings page to prevent unexpected flowing from dynamically sized element */
+ position: fixed;
+ background-color: rgba(0, 0, 0, 0.2);
+ box-sizing: border-box;
+ top: 45px;
+ left: 0;
+ width: 100%;
+ height: calc(100% - 45px);
+}
+#cropper .inner-container {
+ z-index: 2001;
+ /* above the top bar if needed */
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ background: #fff;
+ color: #333;
+ border-radius: var(--border-radius-large);
+ box-shadow: 0 0 10px var(--color-box-shadow);
+ padding: 15px;
+}
+#cropper .inner-container .jcrop-holder,
+#cropper .inner-container .jcrop-holder img,
+#cropper .inner-container img.jcrop-preview {
+ border-radius: var(--border-radius);
+}
+#cropper .inner-container .button {
+ margin-top: 15px;
+}
+#cropper .inner-container .primary {
+ float: right;
+}
+
+#personal-settings-avatar-container {
+ display: inline-grid;
+ grid-template-columns: 1fr;
+ grid-template-rows: 2fr 1fr 2fr;
+ vertical-align: top;
+}
+
+.profile-settings-container {
+ display: inline-grid;
+ grid-template-columns: 1fr;
+ grid-template-rows: 1fr 1fr 1fr 2fr;
+}
+.profile-settings-container #locale h3 {
+ height: 32px;
+}
+
+.personal-show-container {
+ width: 100%;
+}
+
+.personal-settings-setting-box .section {
+ padding: 10px 30px;
+}
+.personal-settings-setting-box .section h3 {
+ margin-bottom: 0;
+}
+.personal-settings-setting-box .section input[type=text], .personal-settings-setting-box .section input[type=email], .personal-settings-setting-box .section input[type=tel], .personal-settings-setting-box .section input[type=url] {
+ width: 100%;
+}
+
+select#timezone, select#languageinput, select#localeinput {
+ width: 100%;
+}
+
+#personal-settings {
+ display: grid;
+ padding: 20px;
+ max-width: 1500px;
+ grid-template-columns: 1fr 2fr 1fr;
+}
+#personal-settings .section {
+ padding: 10px 10px;
+ border: 0;
+}
+#personal-settings .section h2 {
+ margin-bottom: 12px;
+}
+#personal-settings .personal-info {
+ margin-right: 10%;
+ margin-bottom: 12px;
+ margin-top: 12px;
+}
+#personal-settings .personal-info[class^=icon-], #personal-settings .personal-info[class*=" icon-"] {
+ background-position: 0px 2px;
+ padding-left: 30px;
+ opacity: 0.7;
+}
+
+.development-notice {
+ text-align: center;
+}
+.development-notice a:not(.link-button) {
+ text-decoration: underline;
+}
+.development-notice a:not(.link-button):hover {
+ background-color: var(--color-primary-element-lighter);
+}
+
+.link-button {
+ display: inline-block;
+ margin: 16px;
+ padding: 14px 20px;
+ background-color: var(--color-primary);
+ color: #fff;
+ border-radius: var(--border-radius-pill);
+ border: 1px solid var(--color-primary);
+ box-shadow: 0 2px 9px var(--color-box-shadow);
+}
+.link-button:active, .link-button:hover, .link-button:focus {
+ color: var(--color-primary);
+ background-color: var(--color-primary-text);
+ border-color: var(--color-primary) !important;
+}
+.link-button.icon-file {
+ padding-left: 48px;
+ background-position: 24px;
+}
+
+@media (min-width: 1200px) and (max-width: 1400px) {
+ #personal-settings {
+ display: grid;
+ grid-template-columns: 1fr 2fr;
+ }
+ #personal-settings #personal-settings-avatar-container {
+ grid-template-columns: 1fr;
+ grid-template-rows: 1fr;
+ }
+ #personal-settings .personal-settings-container {
+ grid-template-columns: 1fr 1fr;
+ grid-template-rows: 1fr 1fr 1fr 1fr;
+ }
+ #personal-settings .profile-settings-container {
+ grid-template-columns: 1fr 1fr;
+ grid-template-rows: 1fr;
+ grid-column: 2;
+ }
+}
+@media (max-width: 1200px) {
+ #personal-settings {
+ display: grid;
+ grid-template-columns: 1fr;
+ }
+ #personal-settings #personal-settings-avatar-container {
+ grid-template-rows: 1fr;
+ }
+ #personal-settings .personal-settings-container {
+ grid-template-columns: 1fr 1fr;
+ grid-template-rows: 1fr 1fr 1fr 1fr;
+ }
+ #personal-settings .profile-settings-container {
+ grid-template-columns: 1fr 1fr;
+ grid-template-rows: 1fr;
+ }
+}
+@media (max-width: 560px) {
+ #personal-settings {
+ display: grid;
+ grid-template-columns: 1fr;
+ }
+ #personal-settings #personal-settings-avatar-container {
+ grid-template-rows: 1fr;
+ }
+ #personal-settings .personal-settings-container {
+ grid-template-columns: 1fr;
+ grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr;
+ }
+ #personal-settings .profile-settings-container {
+ grid-template-columns: 1fr;
+ grid-template-rows: 1fr 1fr;
+ }
+}
+.personal-settings-container {
+ display: inline-grid;
+ grid-template-columns: 1fr 1fr;
+ grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
+}
+.personal-settings-container:after {
+ clear: both;
+}
+.personal-settings-container > div h3 {
+ position: relative;
+ display: inline-flex;
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ width: 100%;
+}
+.personal-settings-container > div h3 > label {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+.personal-settings-container > div > form span[class^=icon-checkmark], .personal-settings-container > div > form span[class^=icon-error] {
+ position: relative;
+ right: 8px;
+ top: -28px;
+ pointer-events: none;
+ float: right;
+}
+.personal-settings-container .verify {
+ position: relative;
+ left: 100%;
+ top: 0;
+ height: 0;
+}
+.personal-settings-container .verify img {
+ padding: 12px 7px 6px;
+}
+.personal-settings-container .verify-action {
+ cursor: pointer;
+}
+.personal-settings-container input:disabled {
+ background-color: white;
+ color: black;
+ border: none;
+ opacity: 100;
+}
+
+#body-settings #quota {
+ cursor: default;
+ position: relative;
+}
+#body-settings #quota progress {
+ height: 6px;
+}
+#body-settings #quota progress::-moz-progress-bar {
+ border-radius: 3px 0 0 3px;
+}
+#body-settings #quota progress::-webkit-progress-value {
+ border-radius: 3px 0 0 3px;
+}
+#body-settings #quota div {
+ font-weight: normal;
+ white-space: nowrap;
+}
+
+/* verify accounts */
+/* only show pointer cursor when popup will be there */
+.verification-dialog {
+ display: none;
+ right: -9px;
+ top: 40px;
+ width: 275px;
+}
+.verification-dialog p {
+ padding: 10px;
+}
+.verification-dialog .verificationCode {
+ font-family: monospace;
+ display: block;
+ overflow-wrap: break-word;
+}
+
+.federation-menu {
+ position: relative;
+ cursor: pointer;
+ width: 44px;
+ height: 44px;
+ padding: 10px;
+ margin: -12px 0 0 8px;
+ background: none;
+ border: none;
+}
+.federation-menu:hover, .federation-menu:focus {
+ background-color: var(--color-background-hover);
+ border-radius: var(--border-radius-pill);
+}
+.federation-menu:hover .icon-federation-menu, .federation-menu:focus .icon-federation-menu {
+ opacity: 0.8;
+}
+.federation-menu .icon-federation-menu {
+ padding-left: 16px;
+ background-size: 16px;
+ background-position: left center;
+ opacity: 0.3;
+ cursor: inherit;
+}
+.federation-menu .icon-federation-menu .icon-triangle-s {
+ display: inline-block;
+ vertical-align: middle;
+ cursor: inherit;
+}
+.federation-menu .federationScopeMenu {
+ top: 44px;
+}
+.federation-menu .federationScopeMenu.popovermenu .menuitem {
+ font-size: 12.8px;
+ line-height: 1.6em;
+}
+.federation-menu .federationScopeMenu.popovermenu .menuitem .menuitem-text-detail {
+ opacity: 0.75;
+}
+.federation-menu .federationScopeMenu.popovermenu .menuitem.active {
+ box-shadow: inset 2px 0 var(--color-primary);
+}
+.federation-menu .federationScopeMenu.popovermenu .menuitem.active .menuitem-text {
+ font-weight: bold;
+}
+.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled {
+ opacity: 0.5;
+ cursor: default;
+}
+.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled * {
+ cursor: default;
+}
+
+#groups-groups {
+ padding-top: 5px;
+}
+
+.clientsbox img {
+ height: 60px;
+}
+
+#sslCertificate tr.expired {
+ background-color: rgba(255, 0, 0, 0.5);
+}
+#sslCertificate td {
+ padding: 5px;
+}
+
+#displaynameerror,
+#displaynamechanged {
+ display: none;
+}
+
+input#identity {
+ width: 20em;
+}
+
+#showWizard {
+ display: inline-block;
+}
+
+.msg.success {
+ color: #fff;
+ background-color: #47a447;
+ padding: 3px;
+}
+.msg.error {
+ color: #fff;
+ background-color: #d2322d;
+ padding: 3px;
+}
+
+table.nostyle label {
+ margin-right: 2em;
+}
+table.nostyle td {
+ padding: 0.2em 0;
+}
+
+#security-password #passwordform {
+ display: flex;
+ flex-wrap: wrap;
+}
+#security-password #passwordform #pass1, #security-password #passwordform .personal-show-container, #security-password #passwordform #passwordbutton {
+ flex-shrink: 1;
+ width: 200px;
+ min-width: 150px;
+}
+#security-password #passwordform #pass2 {
+ width: 100%;
+}
+#security-password #passwordform .password-state {
+ display: inline-block;
+}
+#security-password #passwordform .strengthify-wrapper {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ border-radius: 0 0 2px 2px;
+ margin-top: -6px;
+ overflow: hidden;
+ height: 3px;
+}
+
+/* Two-Factor Authentication (2FA) */
+#two-factor-auth h3 {
+ margin-top: 24px;
+}
+#two-factor-auth li > div {
+ margin-left: 20px;
+}
+#two-factor-auth .two-factor-provider-settings-icon {
+ width: 16px;
+ height: 16px;
+ vertical-align: sub;
+}
+
+.social-button {
+ padding-left: 0 !important;
+ margin-left: -10px;
+}
+.social-button a {
+ display: inline-block;
+}
+.social-button img {
+ padding: 10px;
+}
+
+/* USERS */
+.isgroup .groupname {
+ width: 85%;
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.isgroup.active .groupname {
+ width: 65%;
+}
+
+li.active .delete,
+li.active .rename {
+ display: block;
+}
+
+.app-navigation-entry-utils .delete,
+.app-navigation-entry-utils .rename {
+ display: none;
+}
+
+#usersearchform {
+ position: absolute;
+ top: 2px;
+ right: 0;
+}
+#usersearchform input {
+ width: 150px;
+}
+#usersearchform label {
+ font-weight: bold;
+}
+
+/* display table at full width */
+table.grid {
+ width: 100%;
+}
+table.grid th {
+ height: 2em;
+ color: #999;
+ border-bottom: 1px solid var(--color-border);
+ padding: 0 0.5em;
+ padding-left: 0.8em;
+ text-align: left;
+ font-weight: normal;
+}
+table.grid td {
+ border-bottom: 1px solid var(--color-border);
+ padding: 0 0.5em;
+ padding-left: 0.8em;
+ text-align: left;
+ font-weight: normal;
+}
+
+td.name, th.name {
+ padding-left: 0.8em;
+ min-width: 5em;
+ max-width: 12em;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+td.password, th.password {
+ padding-left: 0.8em;
+}
+td.password > img, th.password > img {
+ visibility: hidden;
+}
+td.displayName > img, th.displayName > img {
+ visibility: hidden;
+}
+td.password, td.mailAddress, th.password, th.mailAddress {
+ min-width: 5em;
+ max-width: 12em;
+ cursor: pointer;
+}
+td.password span, td.mailAddress span, th.password span, th.mailAddress span {
+ width: 90%;
+ display: inline-block;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+td.mailAddress, th.mailAddress {
+ cursor: pointer;
+}
+td.password > span, th.password > span {
+ margin-right: 1.2em;
+ color: #C7C7C7;
+}
+
+span.usersLastLoginTooltip {
+ white-space: nowrap;
+}
+
+/* APPS */
+#app-content > svg.app-filter {
+ float: left;
+ height: 0;
+ width: 0;
+}
+
+#app-category-app-bundles {
+ margin-bottom: 20px;
+}
+
+.appinfo {
+ margin: 1em 40px;
+}
+
+#app-navigation {
+ /* Navigation icons */
+}
+#app-navigation img {
+ margin-bottom: -3px;
+ margin-right: 6px;
+ width: 16px;
+}
+#app-navigation li span.no-icon {
+ padding-left: 32px;
+}
+#app-navigation ul li.active > span.utils .delete, #app-navigation ul li.active > span.utils .rename {
+ display: block;
+}
+#app-navigation .appwarning {
+ background: #fcc;
+}
+#app-navigation.appwarning:hover {
+ background: #fbb;
+}
+#app-navigation .app-external {
+ color: var(--color-text-maxcontrast);
+}
+
+span.version {
+ margin-left: 1em;
+ margin-right: 1em;
+ color: var(--color-text-maxcontrast);
+}
+
+.app-version {
+ color: var(--color-text-maxcontrast);
+}
+
+.app-level span {
+ color: var(--color-text-maxcontrast);
+ background-color: transparent;
+ border: 1px solid var(--color-text-maxcontrast);
+ border-radius: var(--border-radius);
+ padding: 3px 6px;
+}
+.app-level a {
+ padding: 10px;
+ margin: -6px;
+ white-space: nowrap;
+}
+.app-level .official {
+ background-position: left center;
+ background-position: 5px center;
+ padding-left: 25px;
+}
+.app-level .supported {
+ border-color: var(--color-success);
+ background-position: left center;
+ background-position: 5px center;
+ padding-left: 25px;
+ color: var(--color-success);
+}
+
+.app-score {
+ position: relative;
+ top: 4px;
+ opacity: 0.5;
+}
+
+.app-settings-content #searchresults {
+ display: none;
+}
+
+#apps-list.store .section {
+ border: 0;
+}
+#apps-list.store .app-name {
+ display: block;
+ margin: 5px 0;
+}
+#apps-list.store .app-name, #apps-list.store .app-image * {
+ cursor: pointer;
+}
+#apps-list.store .app-summary {
+ opacity: 0.7;
+}
+#apps-list.store .app-image-icon .icon-settings-dark {
+ width: 100%;
+ height: 150px;
+ background-size: 45px;
+ opacity: 0.5;
+}
+#apps-list.store .app-score-image {
+ height: 14px;
+}
+#apps-list.store .actions {
+ margin-top: 10px;
+}
+
+#app-sidebar #app-details-view h2 .icon-settings-dark,
+#app-sidebar #app-details-view h2 svg {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ margin-right: 10px;
+ opacity: 0.7;
+}
+#app-sidebar #app-details-view .app-level {
+ clear: right;
+ width: 100%;
+}
+#app-sidebar #app-details-view .app-level .supported,
+#app-sidebar #app-details-view .app-level .official {
+ vertical-align: top;
+}
+#app-sidebar #app-details-view .app-level .app-score-image {
+ float: right;
+}
+#app-sidebar #app-details-view .app-author, #app-sidebar #app-details-view .app-licence {
+ color: var(--color-text-maxcontrast);
+}
+#app-sidebar #app-details-view .app-dependencies {
+ margin: 10px 0;
+}
+#app-sidebar #app-details-view .app-description p {
+ margin: 10px 0;
+}
+#app-sidebar #app-details-view .close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 14px;
+ opacity: 0.5;
+ z-index: 1;
+ width: 44px;
+ height: 44px;
+}
+#app-sidebar #app-details-view .actions {
+ display: flex;
+ align-items: center;
+}
+#app-sidebar #app-details-view .actions .app-groups {
+ padding: 5px;
+}
+#app-sidebar #app-details-view .appslink {
+ text-decoration: underline;
+ margin-right: 5px;
+}
+#app-sidebar #app-details-view .app-level,
+#app-sidebar #app-details-view .actions,
+#app-sidebar #app-details-view .documentation,
+#app-sidebar #app-details-view .app-dependencies,
+#app-sidebar #app-details-view .app-description {
+ margin: 20px 0;
+}
+
+@media only screen and (min-width: 1601px) {
+ .store .section {
+ width: 25%;
+ }
+
+ .with-app-sidebar .store .section {
+ width: 33%;
+ }
+}
+@media only screen and (max-width: 1600px) {
+ .store .section {
+ width: 25%;
+ }
+
+ .with-app-sidebar .store .section {
+ width: 33%;
+ }
+}
+@media only screen and (max-width: 1400px) {
+ .store .section {
+ width: 33%;
+ }
+
+ .with-app-sidebar .store .section {
+ width: 50%;
+ }
+}
+@media only screen and (max-width: 900px) {
+ .store .section {
+ width: 50%;
+ }
+
+ .with-app-sidebar .store .section {
+ width: 100%;
+ }
+}
+@media only screen and (max-width: 1024px) {
+ .store .section {
+ width: 50%;
+ }
+}
+@media only screen and (max-width: 480px) {
+ .store .section {
+ width: 100%;
+ }
+}
+/* hide app version and level on narrower screens */
+@media only screen and (max-width: 900px) {
+ .apps-list.installed .app-version, .apps-list.installed .app-level {
+ display: none !important;
+ }
+}
+@media only screen and (max-width: 500px) {
+ .apps-list.installed .app-groups {
+ display: none !important;
+ }
+}
+#version.section {
+ border-bottom: none;
+}
+
+.section {
+ margin-bottom: 0;
+ /* section divider lines, none needed for last one */
+ /* correctly display help icons next to headings */
+}
+.section:not(:last-child) {
+ border-bottom: 1px solid var(--color-border);
+}
+.section h2 {
+ margin-bottom: 22px;
+}
+.section h2 .icon-info {
+ padding: 6px 20px;
+ vertical-align: text-bottom;
+ display: inline-block;
+}
+
+.followupsection {
+ display: block;
+ padding: 0 30px 30px 30px;
+ color: #555;
+}
+
+.app-image {
+ position: relative;
+ height: 150px;
+ opacity: 1;
+ overflow: hidden;
+}
+
+.app-name, .app-version, .app-score, .app-level {
+ display: inline-block;
+}
+
+.app-description-toggle-show, .app-description-toggle-hide {
+ clear: both;
+ padding: 7px 0;
+ cursor: pointer;
+ opacity: 0.5;
+}
+
+.app-description-container {
+ clear: both;
+ position: relative;
+ top: 7px;
+}
+
+.app-description {
+ clear: both;
+}
+
+#app-category-1 {
+ margin-bottom: 18px;
+}
+
+/* capitalize 'Other' category */
+#app-category-925 {
+ text-transform: capitalize;
+}
+
+.app-dependencies {
+ color: #ce3702;
+}
+
+.missing-dependencies {
+ list-style: initial;
+ list-style-type: initial;
+ list-style-position: inside;
+}
+
+.apps-list {
+ display: flex;
+ flex-wrap: wrap;
+ align-content: flex-start;
+ /* Bundle header */
+}
+.apps-list .section {
+ cursor: pointer;
+}
+.apps-list .app-list-move {
+ transition: transform 1s;
+}
+.apps-list #app-list-update-all {
+ margin-left: 10px;
+}
+.apps-list .toolbar {
+ height: 60px;
+ padding: 8px;
+ padding-left: 60px;
+ width: 100%;
+ background-color: var(--color-main-background);
+ position: fixed;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+}
+.apps-list.installed {
+ margin-bottom: 100px;
+}
+.apps-list.installed .apps-list-container {
+ display: table;
+ width: 100%;
+ height: auto;
+ margin-top: 60px;
+}
+.apps-list.installed .section {
+ display: table-row;
+ padding: 0;
+ margin: 0;
+}
+.apps-list.installed .section > * {
+ display: table-cell;
+ height: initial;
+ vertical-align: middle;
+ float: none;
+ border-bottom: 1px solid var(--color-border);
+ padding: 6px;
+ box-sizing: border-box;
+}
+.apps-list.installed .section.selected {
+ background-color: var(--color-background-dark);
+}
+.apps-list.installed .groups-enable {
+ margin-top: 0;
+}
+.apps-list.installed .groups-enable label {
+ margin-right: 3px;
+}
+.apps-list.installed .app-image {
+ width: 44px;
+ height: auto;
+ text-align: right;
+}
+.apps-list.installed .app-image-icon svg,
+.apps-list.installed .app-image-icon .icon-settings-dark {
+ margin-top: 5px;
+ width: 20px;
+ height: 20px;
+ opacity: 0.5;
+ background-size: cover;
+ display: inline-block;
+}
+.apps-list.installed .actions {
+ text-align: right;
+}
+.apps-list.installed .actions .icon-loading-small {
+ display: inline-block;
+ top: 4px;
+ margin-right: 10px;
+}
+.apps-list:not(.installed) .app-image-icon svg {
+ position: absolute;
+ bottom: 43px;
+ /* position halfway vertically */
+ width: 64px;
+ height: 64px;
+ opacity: 0.1;
+}
+.apps-list.hidden {
+ display: none;
+}
+.apps-list .section {
+ position: relative;
+ flex: 0 0 auto;
+}
+.apps-list .section h2.app-name {
+ display: block;
+ margin: 8px 0;
+}
+.apps-list .section:hover {
+ background-color: var(--color-background-dark);
+}
+.apps-list .app-description p {
+ margin: 10px 0;
+}
+.apps-list .app-description ul {
+ list-style: disc;
+}
+.apps-list .app-description ol {
+ list-style: decimal;
+}
+.apps-list .app-description ol ol, .apps-list .app-description ol ul {
+ padding-left: 15px;
+}
+.apps-list .app-description > ul, .apps-list .app-description > ol {
+ margin-left: 19px;
+}
+.apps-list .app-description ul ol, .apps-list .app-description ul ul {
+ padding-left: 15px;
+}
+.apps-list .apps-header {
+ display: table-row;
+ position: relative;
+}
+.apps-list .apps-header div {
+ display: table-cell;
+ height: 70px;
+}
+.apps-list .apps-header h2 {
+ display: table-cell;
+ position: absolute;
+ padding-left: 6px;
+ padding-top: 15px;
+}
+.apps-list .apps-header h2 .enable {
+ position: relative;
+ top: -1px;
+ margin-left: 12px;
+}
+.apps-list .apps-header h2 + .section {
+ margin-top: 50px;
+}
+
+#apps-list-search .section h2 {
+ margin-bottom: 0;
+}
+
+/* LOG */
+#log {
+ white-space: normal;
+ margin-bottom: 14px;
+}
+
+#lessLog {
+ display: none;
+}
+
+table.grid td.date {
+ white-space: nowrap;
+}
+
+#log-section p {
+ margin-top: 20px;
+}
+
+#security-warning-state-ok span,
+#security-warning-state-warning span,
+#security-warning-state-failure span,
+#security-warning-state-loading span {
+ vertical-align: middle;
+}
+#security-warning-state-ok span.message,
+#security-warning-state-warning span.message,
+#security-warning-state-failure span.message,
+#security-warning-state-loading span.message {
+ padding: 12px;
+}
+#security-warning-state-ok span.icon,
+#security-warning-state-warning span.icon,
+#security-warning-state-failure span.icon,
+#security-warning-state-loading span.icon {
+ width: 32px;
+ height: 32px;
+ background-position: center center;
+ display: inline-block;
+ border-radius: 50%;
+}
+#security-warning-state-ok span.icon-checkmark-white,
+#security-warning-state-warning span.icon-checkmark-white,
+#security-warning-state-failure span.icon-checkmark-white,
+#security-warning-state-loading span.icon-checkmark-white {
+ background-color: var(--color-success);
+}
+#security-warning-state-ok span.icon-error-white,
+#security-warning-state-warning span.icon-error-white,
+#security-warning-state-failure span.icon-error-white,
+#security-warning-state-loading span.icon-error-white {
+ background-color: var(--color-warning);
+}
+#security-warning-state-ok span.icon-close-white,
+#security-warning-state-warning span.icon-close-white,
+#security-warning-state-failure span.icon-close-white,
+#security-warning-state-loading span.icon-close-white {
+ background-color: var(--color-error);
+}
+
+#shareAPI p {
+ padding-bottom: 0.8em;
+}
+#shareAPI input#shareapiExpireAfterNDays {
+ width: 40px;
+}
+#shareAPI .indent {
+ padding-left: 28px;
+}
+#shareAPI .double-indent {
+ padding-left: 56px;
+}
+#shareAPI .nocheckbox {
+ padding-left: 20px;
+}
+
+#shareApiDefaultPermissionsSection label {
+ margin-right: 20px;
+}
+
+#fileSharingSettings h3 {
+ display: inline-block;
+}
+
+#publicShareDisclaimerText {
+ width: calc(100% - 23px);
+ /* 20 px left margin, 3 px right margin */
+ max-width: 600px;
+ height: 150px;
+ margin-left: 20px;
+ box-sizing: border-box;
+}
+
+/* correctly display help icons next to headings */
+.icon-info {
+ padding: 11px 20px;
+ vertical-align: text-bottom;
+ opacity: 0.5;
+}
+
+#two-factor-auth h2,
+#shareAPI h2,
+#encryptionAPI h2,
+#mail_general_settings h2 {
+ display: inline-block;
+}
+
+#encryptionAPI li {
+ list-style-type: initial;
+ margin-left: 20px;
+ padding: 5px 0;
+}
+
+.mail_settings p label:first-child {
+ display: inline-block;
+ width: 300px;
+ text-align: right;
+}
+.mail_settings p select:nth-child(2),
+.mail_settings p input:not([type=button]) {
+ width: 143px;
+}
+
+#mail_smtpport {
+ width: 40px;
+}
+
+.cronlog {
+ margin-left: 10px;
+}
+
+.status {
+ display: inline-block;
+ height: 16px;
+ width: 16px;
+ vertical-align: text-bottom;
+}
+.status.success {
+ border-radius: 50%;
+}
+
+#selectGroups select {
+ box-sizing: border-box;
+ display: inline-block;
+ height: 36px;
+ padding: 7px 10px;
+}
+
+#log .log-message {
+ word-break: break-all;
+ min-width: 180px;
+}
+
+span.success {
+ background-color: var(--color-success);
+ border-radius: var(--border-radius);
+}
+span.error {
+ background-color: var(--color-error);
+}
+span.indeterminate {
+ background-color: var(--color-warning);
+ border-radius: 40% 0;
+}
+
+/* OPERA hack for strengthify*/
+doesnotexist:-o-prefocus, .strengthify-wrapper {
+ left: 185px;
+ width: 129px;
+}
+
+.trusted-domain-warning {
+ color: #fff;
+ padding: 5px;
+ background: #ce3702;
+ border-radius: 5px;
+ font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
+}
+
+#postsetupchecks ul {
+ margin-left: 44px;
+ list-style: disc;
+}
+#postsetupchecks ul li {
+ margin: 10px 0;
+}
+#postsetupchecks ul ul {
+ list-style: circle;
+}
+#postsetupchecks .loading {
+ height: 50px;
+ background-position: left center;
+}
+#postsetupchecks .errors, #postsetupchecks .errors a {
+ color: var(--color-error);
+}
+#postsetupchecks .warnings, #postsetupchecks .warnings a {
+ color: var(--color-warning);
+}
+#postsetupchecks .hint {
+ margin: 20px 0;
+}
+
+#security-warning a {
+ text-decoration: underline;
+}
+#security-warning .extra-top-margin {
+ margin-top: 12px;
+}
+
+#admin-tips li {
+ list-style: initial;
+}
+#admin-tips li a {
+ display: inline-block;
+ padding: 3px 0;
+}
+
+#selectEncryptionModules {
+ margin-left: 30px;
+ padding: 10px;
+}
+
+#encryptionModules {
+ padding: 10px;
+}
+
+#warning {
+ color: red;
+}
+
+.settings-hint {
+ margin-top: -12px;
+ margin-bottom: 12px;
+ opacity: 0.7;
+}
+
+/* USERS LIST -------------------------------------------------------------- */
+#body-settings {
+ overflow-x: scroll;
+ min-height: 100%;
+ height: auto;
+}
+#body-settings #app-content.user-list-grid {
+ display: grid;
+ grid-column-gap: 20px;
+ grid-auto-rows: minmax(60px, max-content);
+}
+#body-settings #app-content.user-list-grid .row {
+ display: flex;
+ display: grid;
+ min-height: 60px;
+ grid-row-start: span 1;
+ grid-gap: 3px;
+ align-items: center;
+ /* let's define the column until storage path,
+ what follows will be manually defined */
+ grid-template-columns: 44px minmax(190px, 1fr) minmax(160px, 1fr) minmax(160px, 1fr) minmax(240px, 1fr) minmax(240px, 1fr) repeat(auto-fit, minmax(160px, 1fr));
+ border-bottom: var(--color-border) 1px solid;
+ /* grid col width */
+ /* various */
+}
+#body-settings #app-content.user-list-grid .row.disabled {
+ opacity: 0.5;
+}
+#body-settings #app-content.user-list-grid .row .name,
+#body-settings #app-content.user-list-grid .row .password,
+#body-settings #app-content.user-list-grid .row .mailAddress,
+#body-settings #app-content.user-list-grid .row .languages,
+#body-settings #app-content.user-list-grid .row .storageLocation,
+#body-settings #app-content.user-list-grid .row .userBackend,
+#body-settings #app-content.user-list-grid .row .lastLogin {
+ min-width: 160px;
+}
+#body-settings #app-content.user-list-grid .row .name doesnotexist:-o-prefocus, #body-settings #app-content.user-list-grid .row .name .strengthify-wrapper,
+#body-settings #app-content.user-list-grid .row .password doesnotexist:-o-prefocus,
+#body-settings #app-content.user-list-grid .row .password .strengthify-wrapper,
+#body-settings #app-content.user-list-grid .row .mailAddress doesnotexist:-o-prefocus,
+#body-settings #app-content.user-list-grid .row .mailAddress .strengthify-wrapper,
+#body-settings #app-content.user-list-grid .row .languages doesnotexist:-o-prefocus,
+#body-settings #app-content.user-list-grid .row .languages .strengthify-wrapper,
+#body-settings #app-content.user-list-grid .row .storageLocation doesnotexist:-o-prefocus,
+#body-settings #app-content.user-list-grid .row .storageLocation .strengthify-wrapper,
+#body-settings #app-content.user-list-grid .row .userBackend doesnotexist:-o-prefocus,
+#body-settings #app-content.user-list-grid .row .userBackend .strengthify-wrapper,
+#body-settings #app-content.user-list-grid .row .lastLogin doesnotexist:-o-prefocus,
+#body-settings #app-content.user-list-grid .row .lastLogin .strengthify-wrapper {
+ color: var(--color-text-dark);
+ vertical-align: baseline;
+ text-overflow: ellipsis;
+}
+#body-settings #app-content.user-list-grid .row:not(.row--editable).name, #body-settings #app-content.user-list-grid .row:not(.row--editable).password, #body-settings #app-content.user-list-grid .row:not(.row--editable).displayName, #body-settings #app-content.user-list-grid .row:not(.row--editable).mailAddress, #body-settings #app-content.user-list-grid .row:not(.row--editable).userBackend, #body-settings #app-content.user-list-grid .row:not(.row--editable).languages {
+ overflow: hidden;
+}
+#body-settings #app-content.user-list-grid .row .groups,
+#body-settings #app-content.user-list-grid .row .subadmins,
+#body-settings #app-content.user-list-grid .row .quota {
+ min-width: 160px;
+}
+#body-settings #app-content.user-list-grid .row .groups .multiselect,
+#body-settings #app-content.user-list-grid .row .subadmins .multiselect,
+#body-settings #app-content.user-list-grid .row .quota .multiselect {
+ width: 100%;
+ color: var(--color-text-dark);
+ vertical-align: baseline;
+}
+#body-settings #app-content.user-list-grid .row .obfuscated {
+ width: 400px;
+ opacity: 0.7;
+}
+#body-settings #app-content.user-list-grid .row .userActions {
+ display: flex;
+ justify-content: flex-end;
+ position: sticky;
+ right: 0px;
+ min-width: 88px;
+ background-color: var(--color-main-background);
+}
+#body-settings #app-content.user-list-grid .row .subtitle {
+ color: var(--color-text-maxcontrast);
+ vertical-align: baseline;
+}
+#body-settings #app-content.user-list-grid .row#grid-header {
+ position: sticky;
+ align-self: normal;
+ background-color: var(--color-main-background);
+ z-index: 100;
+ /* above multiselect */
+ top: 50px;
+}
+#body-settings #app-content.user-list-grid .row#grid-header.sticky {
+ box-shadow: 0 -2px 10px 1px var(--color-box-shadow);
+}
+#body-settings #app-content.user-list-grid .row#grid-header {
+ color: var(--color-text-maxcontrast);
+ border-bottom-width: thin;
+}
+#body-settings #app-content.user-list-grid .row#grid-header #headerDisplayName,
+#body-settings #app-content.user-list-grid .row#grid-header #headerPassword,
+#body-settings #app-content.user-list-grid .row#grid-header #headerAddress,
+#body-settings #app-content.user-list-grid .row#grid-header #headerGroups,
+#body-settings #app-content.user-list-grid .row#grid-header #headerSubAdmins,
+#body-settings #app-content.user-list-grid .row#grid-header #theHeaderUserBackend,
+#body-settings #app-content.user-list-grid .row#grid-header #theHeaderLastLogin,
+#body-settings #app-content.user-list-grid .row#grid-header #headerQuota,
+#body-settings #app-content.user-list-grid .row#grid-header #theHeaderStorageLocation,
+#body-settings #app-content.user-list-grid .row#grid-header #headerLanguages {
+ /* Line up header text with column content for when there’s inputs */
+ padding-left: 7px;
+ text-transform: none;
+ color: var(--color-text-maxcontrast);
+ vertical-align: baseline;
+}
+#body-settings #app-content.user-list-grid .row:hover input:not([type=submit]):not(:focus):not(:active) {
+ border-color: var(--color-border) !important;
+}
+#body-settings #app-content.user-list-grid .row:hover:not(#grid-header) {
+ box-shadow: 5px 0 0 var(--color-primary-element) inset;
+}
+#body-settings #app-content.user-list-grid .row > form {
+ width: 100%;
+}
+#body-settings #app-content.user-list-grid .row > div,
+#body-settings #app-content.user-list-grid .row > .displayName > form,
+#body-settings #app-content.user-list-grid .row > form {
+ grid-row: 1;
+ display: inline-flex;
+ color: var(--color-text-lighter);
+ flex-grow: 1;
+ /* inputs like mail, username, password */
+ /* Fill the grid cell */
+}
+#body-settings #app-content.user-list-grid .row > div > input:not(:focus):not(:active),
+#body-settings #app-content.user-list-grid .row > .displayName > form > input:not(:focus):not(:active),
+#body-settings #app-content.user-list-grid .row > form > input:not(:focus):not(:active) {
+ border-color: transparent;
+ cursor: pointer;
+}
+#body-settings #app-content.user-list-grid .row > div > input:focus + .icon-confirm, #body-settings #app-content.user-list-grid .row > div > input:active + .icon-confirm,
+#body-settings #app-content.user-list-grid .row > .displayName > form > input:focus + .icon-confirm,
+#body-settings #app-content.user-list-grid .row > .displayName > form > input:active + .icon-confirm,
+#body-settings #app-content.user-list-grid .row > form > input:focus + .icon-confirm,
+#body-settings #app-content.user-list-grid .row > form > input:active + .icon-confirm {
+ display: block !important;
+}
+#body-settings #app-content.user-list-grid .row > div:not(.userActions) > input:not([type=submit]),
+#body-settings #app-content.user-list-grid .row > .displayName > form:not(.userActions) > input:not([type=submit]),
+#body-settings #app-content.user-list-grid .row > form:not(.userActions) > input:not([type=submit]) {
+ width: 100%;
+ min-width: 0;
+}
+#body-settings #app-content.user-list-grid .row > div.name,
+#body-settings #app-content.user-list-grid .row > .displayName > form.name,
+#body-settings #app-content.user-list-grid .row > form.name {
+ word-break: break-all;
+}
+#body-settings #app-content.user-list-grid .row > div.displayName > input, #body-settings #app-content.user-list-grid .row > div.mailAddress > input,
+#body-settings #app-content.user-list-grid .row > .displayName > form.displayName > input,
+#body-settings #app-content.user-list-grid .row > .displayName > form.mailAddress > input,
+#body-settings #app-content.user-list-grid .row > form.displayName > input,
+#body-settings #app-content.user-list-grid .row > form.mailAddress > input {
+ text-overflow: ellipsis;
+ flex-grow: 1;
+}
+#body-settings #app-content.user-list-grid .row > div.name, #body-settings #app-content.user-list-grid .row > div.userBackend,
+#body-settings #app-content.user-list-grid .row > .displayName > form.name,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userBackend,
+#body-settings #app-content.user-list-grid .row > form.name,
+#body-settings #app-content.user-list-grid .row > form.userBackend {
+ /* better multi-line visual */
+ line-height: 1.3em;
+ max-height: 100%;
+ overflow: hidden;
+ /* not supported by all browsers
+ so we keep the overflow hidden
+ as a fallback */
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+}
+#body-settings #app-content.user-list-grid .row > div.quota,
+#body-settings #app-content.user-list-grid .row > .displayName > form.quota,
+#body-settings #app-content.user-list-grid .row > form.quota {
+ display: flex;
+ justify-content: left;
+ white-space: nowrap;
+ position: relative;
+}
+#body-settings #app-content.user-list-grid .row > div.quota progress,
+#body-settings #app-content.user-list-grid .row > .displayName > form.quota progress,
+#body-settings #app-content.user-list-grid .row > form.quota progress {
+ width: 150px;
+ margin-top: 35px;
+ height: 3px;
+}
+#body-settings #app-content.user-list-grid .row > div .icon-confirm,
+#body-settings #app-content.user-list-grid .row > .displayName > form .icon-confirm,
+#body-settings #app-content.user-list-grid .row > form .icon-confirm {
+ flex: 0 0 auto;
+ cursor: pointer;
+}
+#body-settings #app-content.user-list-grid .row > div .icon-confirm:not(:active),
+#body-settings #app-content.user-list-grid .row > .displayName > form .icon-confirm:not(:active),
+#body-settings #app-content.user-list-grid .row > form .icon-confirm:not(:active) {
+ display: none;
+}
+#body-settings #app-content.user-list-grid .row > div.avatar,
+#body-settings #app-content.user-list-grid .row > .displayName > form.avatar,
+#body-settings #app-content.user-list-grid .row > form.avatar {
+ height: 32px;
+ width: 32px;
+ margin: 6px;
+}
+#body-settings #app-content.user-list-grid .row > div.avatar img,
+#body-settings #app-content.user-list-grid .row > .displayName > form.avatar img,
+#body-settings #app-content.user-list-grid .row > form.avatar img {
+ display: block;
+}
+#body-settings #app-content.user-list-grid .row > div.userActions,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions,
+#body-settings #app-content.user-list-grid .row > form.userActions {
+ display: flex;
+ justify-content: flex-end;
+}
+#body-settings #app-content.user-list-grid .row > div.userActions #newsubmit,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions #newsubmit,
+#body-settings #app-content.user-list-grid .row > form.userActions #newsubmit {
+ width: 100%;
+}
+#body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions,
+#body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions {
+ position: relative;
+ display: flex;
+ align-items: center;
+ background-color: var(--color-main-background);
+}
+#body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more,
+#body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more {
+ width: 44px;
+ height: 44px;
+ opacity: 0.5;
+ cursor: pointer;
+}
+#body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more:focus, #body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more:hover, #body-settings #app-content.user-list-grid .row > div.userActions .toggleUserActions .icon-more:active,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more:focus,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more:hover,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions .toggleUserActions .icon-more:active,
+#body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more:focus,
+#body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more:hover,
+#body-settings #app-content.user-list-grid .row > form.userActions .toggleUserActions .icon-more:active {
+ opacity: 0.7;
+ background-color: var(--color-background-dark);
+}
+#body-settings #app-content.user-list-grid .row > div.userActions .feedback,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions .feedback,
+#body-settings #app-content.user-list-grid .row > form.userActions .feedback {
+ display: flex;
+ align-items: center;
+ white-space: nowrap;
+ transition: opacity 200ms ease-in-out;
+}
+#body-settings #app-content.user-list-grid .row > div.userActions .feedback .icon-checkmark,
+#body-settings #app-content.user-list-grid .row > .displayName > form.userActions .feedback .icon-checkmark,
+#body-settings #app-content.user-list-grid .row > form.userActions .feedback .icon-checkmark {
+ opacity: 0.5;
+ margin-right: 5px;
+}
+#body-settings #app-content.user-list-grid .row > div .multiselect.multiselect-vue,
+#body-settings #app-content.user-list-grid .row > .displayName > form .multiselect.multiselect-vue,
+#body-settings #app-content.user-list-grid .row > form .multiselect.multiselect-vue {
+ width: 100%;
+}
+#body-settings #app-content.user-list-grid .infinite-loading-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ grid-row-start: span 4;
+}
+#body-settings #app-content.user-list-grid .users-list-end {
+ opacity: 0.5;
+ user-select: none;
+}
+
+.animated {
+ animation: blink-animation 1s steps(5, start) 4;
+}
+
+@keyframes blink-animation {
+ to {
+ opacity: 0.6;
+ }
+}
+@-webkit-keyframes blink-animation {
+ to {
+ opacity: 1;
+ }
+}
+
+/*# sourceMappingURL=settings.css.map */
diff --git a/apps/settings/css/settings.css.map b/apps/settings/css/settings.css.map
new file mode 100644
index 00000000000..48fd1fa3328
--- /dev/null
+++ b/apps/settings/css/settings.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","settings.scss","../../../core/css/functions.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AD3CC;EACC;;;AAIF;AACA;EACC;;;AAGD;AACA;AC6CC;EAEA;;;AD3CD;ACyCC;EAEA;;;ADvCD;ACqCC;EAEA;;;ADnCD;ACiCC;EAEA;;;AD/BD;AC6BC;EAEA;;;AD1BA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAED;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAGC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAGC;EACC;;;AAKH;EACC;;;AAIA;EACC;;AAEA;EACC;;AAIA;EACC;;;AAOH;EAGC;;;AAIF;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AAMF;EACC;;AACA;EACC;;AACA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGC;EACA;EACA;;AAGD;EACC;EACA;;;AAMF;EACC;IACC;IACA;;EAEA;IACC;IACA;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;;;AAKH;EACC;IACC;IACA;;EAEA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;;;AAKH;EACC;IACC;IACA;;EAEA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;;;AAKH;EACC;EACA;EACA;;AAEA;EACC;;AAIA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAKD;EACC;EACA;EACA;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;;;AAKF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;;;AAKF;AACA;AACA;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAIF;EACC;;AAGC;EAEC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;AAIF;EACC;EAEA;;AAEA;EACC;;;AAQN;EACC;;;AAGD;EACC;;;AAIA;EACC;;AAGD;EACC;;;AAIF;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;;;AAIA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AAMD;EACC;;AAGD;EACC;;;AAKD;EACC;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKH;AAGC;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;;;AAIF;EACC;EACA;;AACA;EACC;;AAGD;EACC;;;AAIF;AAGC;EACC;EACA;EACA;EACA;;AAGD;EACC;;;AAKD;AAAA;EAEC;;;AAKD;AAAA;EAEC;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;;AAIF;AACA;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAKD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC;;AAIF;EACC;;AAGD;EAEC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;AAIF;EACC;;AAGD;EACC;EACA;;;AAIF;EACC;;;AAGD;AACA;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACC;;AACA;EACC;EACA;EACA;;AAGD;EACC;;AAIA;EACC;;AAIF;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;;;AAIA;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;AAIA;EACC;;;AAMD;EACC;;AAGD;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;;AAMA;AAAA;EAEC;EACA;EACA;EACA;EACA;;AAIF;EACC;EACA;;AAEA;AAAA;EAEC;;AAGD;EACC;;AAIF;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;;AAIF;EACC;IACC;;;EAED;IACC;;;AAIF;EACC;IACC;;;EAED;IACC;;;AAIF;EACC;IACC;;;EAED;IACC;;;AAIF;EACC;IACC;;;EAED;IACC;;;AAIF;EACC;IACC;;;AAIF;EACC;IACC;;;AAIF;AACA;EAEE;IACC;;;AAKH;EACC;IACC;;;AAIF;EACC;;;AAGD;EACC;AACA;AAKA;;AAJA;EACC;;AAID;EACC;;AAEA;EACC;EACA;EACA;;;AAKH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAEA;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EAwGC;EACA;EACA;AAkDA;;AAxJA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC,QAfgB;EAgBhB,SAjBiB;EAmBjB,cAlBgB;EAmBhB;EACA;EACA;EACA;EACA;EACA;;AAGD;EAQC;;AAPA;EACC;EACA;EACA;EACA,YAhCe;;AAqChB;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAKF;EACC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAEA;EACC;EACA;EACA;;AAKH;EACC;EACA;AACA;EACA;EACA;EACA;;AAOD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;AAKD;EACC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AAKD;EACC;;AAKD;EACC;;AAMH;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;;;AAQF;EACC;;;AAKH;AACA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAOA;AAAA;AAAA;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EACC;;;AAMF;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;AACA;EACA;EACA;EACA;EACA;;;AAGD;AAEA;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;EAIC;;;AAGD;EACC;EACA;EACA;;;AAIA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAIA;EACC;EACA;;AAGD;EACC;;AAGD;EACC;EACA;;;AAKF;AACA;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAIA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKD;EACC;;AAGD;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAID;AACA;EAGC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EAGC;EACA;EACA,YAhBgB;EAiBhB;EACA;EACA;AACA;AAAA;EAEA,uBACE;EAOF;AAMA;AA0DA;;AA9DA;EACC;;AAID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC,WA3CkB;;AA6ClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAID;EAMC;;AAIF;AAAA;AAAA;EAGC,WAjEkB;;AAmElB;AAAA;AAAA;EACC;EACA;EACA;;AAIF;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAID;EACC;EACA;EACA;EACA;AAAc;EACd,KDt8CY;;ACw8CZ;EACC;;AAIF;EACC;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUC;EACA;EACA;EACA;EACA;;AAKD;EACC;;AAGD;EACC;;AAIF;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;AAaA;AA2GA;;AAtHA;AAAA;AAAA;EACC;EACA;;AAIA;AAAA;AAAA;AAAA;AAAA;EACC;;AAKF;AAAA;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;EACC;;AAKA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;AAEC;EACA;EACA;EACA;AACA;AAAA;AAAA;EAGA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EACC;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EACC;EACA;EACA;;AAIF;AAAA;AAAA;EACC;EACA;;AAEA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;EACC;EACA;EACA;;AAEA;AAAA;AAAA;EACC;;AAIF;AAAA;AAAA;EACC;EACA;;AAEA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;EACC;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EACC;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;AAKH;AAAA;AAAA;EACC;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EACC;EACA;;AAMH;AAAA;AAAA;EACC;;AAKH;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;;;AAKH;EACI;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE","file":"settings.css"} \ No newline at end of file
diff --git a/apps/settings/css/settings.scss b/apps/settings/css/settings.scss
index e2b9099f5d3..485266a07b5 100644
--- a/apps/settings/css/settings.scss
+++ b/apps/settings/css/settings.scss
@@ -1,6 +1,8 @@
/* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
This file is licensed under the Affero General Public License version 3 or later.
See the COPYING-README file. */
+@use 'variables';
+@import 'functions';
input {
&#openid, &#webdav {
@@ -15,23 +17,23 @@ input {
/* icons for sidebar */
.nav-icon-personal-settings {
- @include icon-color('personal', 'settings', $color-black);
+ @include icon-color('personal', 'settings', variables.$color-black);
}
.nav-icon-security {
- @include icon-color('toggle-filelist', 'settings', $color-black);
+ @include icon-color('toggle-filelist', 'settings', variables.$color-black);
}
.nav-icon-clientsbox {
- @include icon-color('change', 'settings', $color-black);
+ @include icon-color('change', 'settings', variables.$color-black);
}
.nav-icon-federated-cloud {
- @include icon-color('share', 'settings', $color-black);
+ @include icon-color('share', 'settings', variables.$color-black);
}
.nav-icon-second-factor-backup-codes, .nav-icon-ssl-root-certificate {
- @include icon-color('password', 'settings', $color-black);
+ @include icon-color('password', 'settings', variables.$color-black);
}
#avatarform {
@@ -183,6 +185,12 @@ select {
// Button for 'Reasons to use Nextcloud in your organization'
.development-notice {
text-align: center;
+ a:not(.link-button) {
+ text-decoration: underline;
+ &:hover {
+ background-color: var(--color-primary-element-lighter);
+ }
+ }
}
.link-button {
@@ -554,6 +562,9 @@ table.nostyle {
.social-button {
padding-left: 0 !important;
margin-left: -10px;
+ a {
+ display: inline-block;
+ }
img {
padding: 10px;
@@ -916,7 +927,7 @@ span.version {
}
}
-@media only screen and (max-width: $breakpoint-mobile) {
+@media only screen and (max-width: variables.$breakpoint-mobile) {
.store .section {
width: 50%;
}
@@ -1572,7 +1583,7 @@ doesnotexist:-o-prefocus, .strengthify-wrapper {
align-self: normal;
background-color: var(--color-main-background);
z-index: 100; /* above multiselect */
- top: $header-height;
+ top: variables.$header-height;
&.sticky {
box-shadow: 0 -2px 10px 1px var(--color-box-shadow);
diff --git a/apps/settings/l10n/bg.js b/apps/settings/l10n/bg.js
index 9bf38a87310..8c1b430fed6 100644
--- a/apps/settings/l10n/bg.js
+++ b/apps/settings/l10n/bg.js
@@ -461,8 +461,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "Разрешаване на автоматично довършване на име на потребител на потребители въз основа на интегриране на телефонен номер",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ако автоматичното довършване „същата група“ и „интегриране на телефонен номер“ са активирани, съвпадението в едното е достатъчно, за да се покаже на потребителя.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Разрешаване на автоматично довършване при въвеждане на пълното име или имейл адрес (като игнорирате липсващото съвпадение в телефонния указател и сте в същата група)",
- "Match username when restricting to full match" : "Подбор на име на потребител при прилагане на ограничаване до пълно съвпадение",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Игнорирайте второто показвано име в скоби, ако има такова (пример: „Първото показвано име (второ игнорирано показвано име)“)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Показване на текст за отказ от отговорност на страницата за качване на публична връзка (показва се само когато списъкът с файлове е скрит)",
"This text will be shown on the public link upload page when the file list is hidden." : "Този текст ще се показва на страницата за качване на публична връзка, когато списъкът с файлове е скрит.",
"Default share permissions" : "Права за споделяне по подразбиране",
diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json
index 21502c883c1..7b30fd59f22 100644
--- a/apps/settings/l10n/bg.json
+++ b/apps/settings/l10n/bg.json
@@ -459,8 +459,6 @@
"Allow username autocompletion to users based on phone number integration" : "Разрешаване на автоматично довършване на име на потребител на потребители въз основа на интегриране на телефонен номер",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ако автоматичното довършване „същата група“ и „интегриране на телефонен номер“ са активирани, съвпадението в едното е достатъчно, за да се покаже на потребителя.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Разрешаване на автоматично довършване при въвеждане на пълното име или имейл адрес (като игнорирате липсващото съвпадение в телефонния указател и сте в същата група)",
- "Match username when restricting to full match" : "Подбор на име на потребител при прилагане на ограничаване до пълно съвпадение",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Игнорирайте второто показвано име в скоби, ако има такова (пример: „Първото показвано име (второ игнорирано показвано име)“)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Показване на текст за отказ от отговорност на страницата за качване на публична връзка (показва се само когато списъкът с файлове е скрит)",
"This text will be shown on the public link upload page when the file list is hidden." : "Този текст ще се показва на страницата за качване на публична връзка, когато списъкът с файлове е скрит.",
"Default share permissions" : "Права за споделяне по подразбиране",
diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js
index e3e015bb872..3b3d765cc18 100644
--- a/apps/settings/l10n/cs.js
+++ b/apps/settings/l10n/cs.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "Aplikaci se nepodařilo odebrat.",
"Couldn't update app." : "Aplikaci se nedaří aktualizovat.",
"Wrong password" : "Nesprávné heslo",
+ "Unable to change personal password" : "Osobní heslo se nedaří změnit",
"Saved" : "Uloženo",
"No user supplied" : "Nebyl uveden uživatel",
"Authentication error" : "Chyba přihlášení",
@@ -467,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "Umožnit doplňování uživatelského jména uživatelům na základě začlenění telefonním číslem",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "V případě, že jsou zapnuté automatická dokončování „stejná skupina“ a „začlenění telefonním číslem“, postačí pro zobrazení uživatele shoda s jedním z toho.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Povolit automatické dokončování při zadávání celého jména nebo e-mailové adresy (při ignorování chybějící shody s telefonním seznamem a toho, že je ve stejné skupině)",
- "Match username when restricting to full match" : "Při omezení na úplnou shodu hledat tuto uživatelském jménu",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Ignorovat druhé zobrazované jméno v závorkách (pokud zde je). Příklad: „První zobrazované jméno (druhé – ignorované – zobrazované jméno)“",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zobrazit text zřeknutí se odpovědnosti na stránce pro nahrání veřejného odkazu. (zobrazit pouze pokud je seznam souborů skrytý)",
"This text will be shown on the public link upload page when the file list is hidden." : "Tento text bude zobrazen on stránce pro nahrání veřejného odkazu, pokud bude seznam souborů skrytý.",
"Default share permissions" : "Výchozí oprávnění sdílení",
diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json
index 9ab39d1e422..48a92c36332 100644
--- a/apps/settings/l10n/cs.json
+++ b/apps/settings/l10n/cs.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "Aplikaci se nepodařilo odebrat.",
"Couldn't update app." : "Aplikaci se nedaří aktualizovat.",
"Wrong password" : "Nesprávné heslo",
+ "Unable to change personal password" : "Osobní heslo se nedaří změnit",
"Saved" : "Uloženo",
"No user supplied" : "Nebyl uveden uživatel",
"Authentication error" : "Chyba přihlášení",
@@ -465,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "Umožnit doplňování uživatelského jména uživatelům na základě začlenění telefonním číslem",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "V případě, že jsou zapnuté automatická dokončování „stejná skupina“ a „začlenění telefonním číslem“, postačí pro zobrazení uživatele shoda s jedním z toho.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Povolit automatické dokončování při zadávání celého jména nebo e-mailové adresy (při ignorování chybějící shody s telefonním seznamem a toho, že je ve stejné skupině)",
- "Match username when restricting to full match" : "Při omezení na úplnou shodu hledat tuto uživatelském jménu",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Ignorovat druhé zobrazované jméno v závorkách (pokud zde je). Příklad: „První zobrazované jméno (druhé – ignorované – zobrazované jméno)“",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zobrazit text zřeknutí se odpovědnosti na stránce pro nahrání veřejného odkazu. (zobrazit pouze pokud je seznam souborů skrytý)",
"This text will be shown on the public link upload page when the file list is hidden." : "Tento text bude zobrazen on stránce pro nahrání veřejného odkazu, pokud bude seznam souborů skrytý.",
"Default share permissions" : "Výchozí oprávnění sdílení",
diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js
index e0ecdc76449..3dd038c943a 100644
--- a/apps/settings/l10n/de.js
+++ b/apps/settings/l10n/de.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Wrong password" : "Falsches Passwort",
+ "Unable to change personal password" : "Das persönliche Passwort konnte nicht geändert werden",
"Saved" : "Gespeichert",
"No user supplied" : "Kein Benutzer angegeben",
"Authentication error" : "Authentifizierungsfehler",
@@ -457,8 +458,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "Automatische Vervollständigung des Benutzernamens für Benutzer basierend auf der Rufnummernintegration zulassen",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Wenn die Autovervollständigung \"gleiche Gruppe\" und \"Rufnummernintegration\" aktiviert ist, reicht eine Übereinstimmung in einem der beiden Bereiche aus, um den Benutzer anzuzeigen.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Ermöglicht die automatische Vervollständigung, wenn der vollständigen Namen oder die E-Mail-Adresse eingeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und bei gleicher Gruppenzugehörigkeit)",
- "Match username when restricting to full match" : "Übereinstimmung mit dem Benutzernamen bei Einschränkung auf vollständige Übereinstimmung",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Den zweiten Anzeigenamen in Klammern ignorieren, falls vorhanden (Beispiel: \"Erster Anzeigename (zweiter ignorierter Anzeigename)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zeige Haftungsausschluss auf der öffentlichen Upload-Seite (Wird nur gezeigt wenn die Dateiliste nicht angezeigt wird.) ",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
"Default share permissions" : "Standardberechtigungen für das Teilen",
diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json
index a6e51187cc2..df21ac989f3 100644
--- a/apps/settings/l10n/de.json
+++ b/apps/settings/l10n/de.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Wrong password" : "Falsches Passwort",
+ "Unable to change personal password" : "Das persönliche Passwort konnte nicht geändert werden",
"Saved" : "Gespeichert",
"No user supplied" : "Kein Benutzer angegeben",
"Authentication error" : "Authentifizierungsfehler",
@@ -455,8 +456,6 @@
"Allow username autocompletion to users based on phone number integration" : "Automatische Vervollständigung des Benutzernamens für Benutzer basierend auf der Rufnummernintegration zulassen",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Wenn die Autovervollständigung \"gleiche Gruppe\" und \"Rufnummernintegration\" aktiviert ist, reicht eine Übereinstimmung in einem der beiden Bereiche aus, um den Benutzer anzuzeigen.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Ermöglicht die automatische Vervollständigung, wenn der vollständigen Namen oder die E-Mail-Adresse eingeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und bei gleicher Gruppenzugehörigkeit)",
- "Match username when restricting to full match" : "Übereinstimmung mit dem Benutzernamen bei Einschränkung auf vollständige Übereinstimmung",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Den zweiten Anzeigenamen in Klammern ignorieren, falls vorhanden (Beispiel: \"Erster Anzeigename (zweiter ignorierter Anzeigename)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zeige Haftungsausschluss auf der öffentlichen Upload-Seite (Wird nur gezeigt wenn die Dateiliste nicht angezeigt wird.) ",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
"Default share permissions" : "Standardberechtigungen für das Teilen",
diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js
index 5fa955c4fb8..bcf23f7a337 100644
--- a/apps/settings/l10n/de_DE.js
+++ b/apps/settings/l10n/de_DE.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Wrong password" : "Falsches Passwort",
+ "Unable to change personal password" : "Das persönliche Passwort konnte nicht geändert werden",
"Saved" : "Gespeichert",
"No user supplied" : "Kein Benutzer angegeben",
"Authentication error" : "Authentifizierungsfehler",
@@ -467,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "Automatische Vervollständigung des Benutzernamens für Benutzer basierend auf der Rufnummernintegration zulassen",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Wenn die Autovervollständigung \"gleiche Gruppe\" und \"Rufnummernintegration\" aktiviert ist, reicht eine Übereinstimmung in einem der beiden Bereiche aus, um den Benutzer anzuzeigen.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Ermöglicht die automatische Vervollständigung, wenn der volle Namen oder E-Mail-Adresse eingegeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und gleiche Gruppenzugehörigkeit)",
- "Match username when restricting to full match" : "Übereinstimmung mit dem Benutzernamen bei Einschränkung auf vollständige Übereinstimmung",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Den zweiten Anzeigenamen in Klammern ignorieren, falls vorhanden (Beispiel: \"Erster Anzeigename (zweiter ignorierter Anzeigename)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zeige Haftungsausschluss auf der öffentlichen Upload-Seite (Wird nur gezeigt wenn die Dateiliste nicht angezeigt wird.) ",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
"Default share permissions" : "Standardberechtigungen für das Teilen",
diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json
index 4ffb4897823..cd866d9788e 100644
--- a/apps/settings/l10n/de_DE.json
+++ b/apps/settings/l10n/de_DE.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Wrong password" : "Falsches Passwort",
+ "Unable to change personal password" : "Das persönliche Passwort konnte nicht geändert werden",
"Saved" : "Gespeichert",
"No user supplied" : "Kein Benutzer angegeben",
"Authentication error" : "Authentifizierungsfehler",
@@ -465,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "Automatische Vervollständigung des Benutzernamens für Benutzer basierend auf der Rufnummernintegration zulassen",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Wenn die Autovervollständigung \"gleiche Gruppe\" und \"Rufnummernintegration\" aktiviert ist, reicht eine Übereinstimmung in einem der beiden Bereiche aus, um den Benutzer anzuzeigen.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Ermöglicht die automatische Vervollständigung, wenn der volle Namen oder E-Mail-Adresse eingegeben wird (ignoriert fehlende Telefonbuchübereinstimmungen und gleiche Gruppenzugehörigkeit)",
- "Match username when restricting to full match" : "Übereinstimmung mit dem Benutzernamen bei Einschränkung auf vollständige Übereinstimmung",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Den zweiten Anzeigenamen in Klammern ignorieren, falls vorhanden (Beispiel: \"Erster Anzeigename (zweiter ignorierter Anzeigename)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Zeige Haftungsausschluss auf der öffentlichen Upload-Seite (Wird nur gezeigt wenn die Dateiliste nicht angezeigt wird.) ",
"This text will be shown on the public link upload page when the file list is hidden." : "Dieser Text wird auf der öffentlichen Upload-Seite angezeigt wenn die Dateiliste nicht angezeigt wird.",
"Default share permissions" : "Standardberechtigungen für das Teilen",
diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js
index bd7e3a9dd2a..38d37e4fa8a 100644
--- a/apps/settings/l10n/hu.js
+++ b/apps/settings/l10n/hu.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "Az alkalmazás eltávolítása nem sikerült.",
"Couldn't update app." : "Az alkalmazás frissítése nem sikerült.",
"Wrong password" : "Hibás jelszó",
+ "Unable to change personal password" : "Nem lehet megváltoztatni a személyes jelszót",
"Saved" : "Mentve",
"No user supplied" : "Nincs megadva felhasználó",
"Authentication error" : "Hitelesítései hiba",
@@ -467,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "A felhasználónév automatikus kiegészítésének engedélyezése a felhasználók számára a telefonszám integráció alapján ",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ha az „ugyanazon csoport” és a „telefonszám integráció” engedélyezett, akkor bármelyik egyezés elegendő a felhasználó megjelenítéséhez. ",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Az automatikus kiegészítés engedélyezése a teljes név vagy e-mail-cím megadásakor (figyelmen kívül hagyva a hiányzó telefonkönyves egyezést és az ugyanabba a csoportba tartozást)",
- "Match username when restricting to full match" : "Keresés a felhasználónévre, ha pontos egyezésre van korlátozva",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "A zárójelben lévő második megjelenítendő név mellőzése, ha van ilyen (például: „Első megjelenítendő név (második megjelenítendő név)”)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Nyilatkozat szövegének megjelenítése a nyilvános feltöltési oldalon (csak akkor jelenik meg, ha fájllista rejtett)",
"This text will be shown on the public link upload page when the file list is hidden." : "Ez a szöveg jelenik meg a nyilvános feltöltési oldalon, ha a fájllista rejtett.",
"Default share permissions" : "Alapértelmezett megosztási jogosultságok",
diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json
index 9d6e3e59fbf..0128efdfc19 100644
--- a/apps/settings/l10n/hu.json
+++ b/apps/settings/l10n/hu.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "Az alkalmazás eltávolítása nem sikerült.",
"Couldn't update app." : "Az alkalmazás frissítése nem sikerült.",
"Wrong password" : "Hibás jelszó",
+ "Unable to change personal password" : "Nem lehet megváltoztatni a személyes jelszót",
"Saved" : "Mentve",
"No user supplied" : "Nincs megadva felhasználó",
"Authentication error" : "Hitelesítései hiba",
@@ -465,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "A felhasználónév automatikus kiegészítésének engedélyezése a felhasználók számára a telefonszám integráció alapján ",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ha az „ugyanazon csoport” és a „telefonszám integráció” engedélyezett, akkor bármelyik egyezés elegendő a felhasználó megjelenítéséhez. ",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Az automatikus kiegészítés engedélyezése a teljes név vagy e-mail-cím megadásakor (figyelmen kívül hagyva a hiányzó telefonkönyves egyezést és az ugyanabba a csoportba tartozást)",
- "Match username when restricting to full match" : "Keresés a felhasználónévre, ha pontos egyezésre van korlátozva",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "A zárójelben lévő második megjelenítendő név mellőzése, ha van ilyen (például: „Első megjelenítendő név (második megjelenítendő név)”)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Nyilatkozat szövegének megjelenítése a nyilvános feltöltési oldalon (csak akkor jelenik meg, ha fájllista rejtett)",
"This text will be shown on the public link upload page when the file list is hidden." : "Ez a szöveg jelenik meg a nyilvános feltöltési oldalon, ha a fájllista rejtett.",
"Default share permissions" : "Alapértelmezett megosztási jogosultságok",
diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js
index cec03fe182a..265445e3314 100644
--- a/apps/settings/l10n/id.js
+++ b/apps/settings/l10n/id.js
@@ -2,8 +2,11 @@ OC.L10N.register(
"settings",
{
"Private" : "Pribadi",
+ "Only visible to people matched via phone number integration through Talk on mobile" : "Hanya dapat dilihat oleh orang yang cocok melalui integrasi nomor telepon melalui Talk di ponsel",
"Local" : "Lokal",
"Federated" : "Federated",
+ "Only synchronize to trusted servers" : "Hanya sinkronkan ke server tepercaya",
+ "Published" : "Diterbitkan",
"Verify" : "Verifikasi",
"Verifying …" : "Sedang memferivikasi …",
"Unable to change password" : "Tidak dapat mengubah kata sandi",
@@ -33,10 +36,12 @@ OC.L10N.register(
"{actor} changed your password" : "{actor} mengganti kata sandi anda",
"You changed your password" : "Anda mengganti kata sandi",
"Your password was reset by an administrator" : "Kata sandi anda telah diatur ulang oleh administrator",
+ "Your password was reset" : "Kata sandi Anda telah disetel ulang",
"{actor} changed your email address" : "{actor} mengubah alamat surel anda",
"You changed your email address" : "Anda mengubah alamat surel sendiri",
"Your email address was changed by an administrator" : "Alamat surel Anda telah diubah oleh administrator",
"You created app password \"{token}\"" : "Anda telah membuat kata sandi aplikasi \"{token}\"",
+ "An administrator created app password \"{token}\"" : "Administrator membuat sandi aplikasi \"{token}\"",
"You deleted app password \"{token}\"" : "Anda menghapus kata sandi aplikasi \"{token}\"",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Anda mengubah kata sandi aplikasi \"{token}\" ke \"{newToken}\"",
"You granted filesystem access to app password \"{token}\"" : "Anda mengijinkan mengakses berkas sistem ke kata sandi aplikasi \"{token}\"",
@@ -50,6 +55,7 @@ OC.L10N.register(
"Couldn't remove app." : "Tidak dapat menghapus aplikasi.",
"Couldn't update app." : "Tidak dapat memperbarui aplikasi.",
"Wrong password" : "Kata sandi salah",
+ "Unable to change personal password" : "Tidak dapat mengubah kata sandi pribadi",
"Saved" : "Disimpan",
"No user supplied" : "Tidak ada pengguna yang diberikan",
"Authentication error" : "Terjadi kesalahan saat otentikasi",
@@ -58,6 +64,8 @@ OC.L10N.register(
"Backend doesn't support password change, but the user's encryption key was updated." : "Backend tidak mendukung perubahan kata sandi, namun kunci enkripsi pengguna telah diperbarui.",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL menggunakan versi %1$s yang usang(%2$s). Mohon perbarui sistem operasi Anda atau fitur sejenisnya termasuk %3$s tidak akan bekerja secara penuh.",
+ "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Modul PHP OPcache tidak dimuat. Untuk kinerja yang lebih baik, disarankan untuk memuatnya ke dalam instalasi PHP Anda.",
+ "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache dinonaktifkan. Untuk kinerja yang lebih baik, disarankan untuk menerapkan <code>opcache.enable=1</code> ke konfigurasi PHP Anda.",
"Invalid SMTP password." : "Kata sandi SMTP tidak valid.",
"Email setting test" : "Uji pengaturan surel",
"Well done, %s!" : "Bagus, %s!",
@@ -96,6 +104,8 @@ OC.L10N.register(
"Personal" : "Personal",
"Administration" : "Administrasi",
"Additional settings" : "Setelan tambahan",
+ "Admin privileges" : "Hak istimewa admin",
+ "Groupware" : "Peralatan Grup",
"Overview" : "Ringkasan",
"Basic settings" : "Setelan dasar",
"Sharing" : "Berbagi",
@@ -107,6 +117,7 @@ OC.L10N.register(
"Change" : "Ubah",
"Delete" : "Hapus",
"Unlimited" : "Tak terbatas",
+ "Nextcloud settings" : "Pengaturan Nextcloud",
"None" : "Tidak ada",
"Limit to groups" : "Batasi ke grup",
"Excluded groups" : "Grup yang dikecualikan",
@@ -134,6 +145,7 @@ OC.L10N.register(
"No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini",
"Disable all" : "Matikan semua",
"Enable all" : "Hidupkan semua",
+ "_Update_::_Update all_" : ["Perbarui semua"],
"Marked for remote wipe" : "Tandai untuk penghapusan remote",
"Device settings" : "Pengaturan perangkat",
"Allow filesystem access" : "Ijinkan akses berkas sistem",
@@ -154,6 +166,8 @@ OC.L10N.register(
"Last activity" : "Aktivitas terakhir",
"Devices & sessions" : "Perangkat & sesi",
"Web, desktop and mobile clients currently logged in to your account." : "Klien web, desktop dan mobile yang sedang login di akun Anda.",
+ "Do you really want to wipe your data from this device?" : "Yakin ingin menghapus data Anda dari perangkat ini?",
+ "Confirm wipe" : "Konfirmasi penghapusan",
"Error while creating device token" : "Terjadi kesalahan saat membuat token perangkat",
"Error while updating device token scope" : "Galat saat memperbarui bidang token perangkat",
"Error while updating device token name" : "Galat saat memperbarui nama token perangkat",
@@ -170,10 +184,18 @@ OC.L10N.register(
"Copied!" : "Tersalin!",
"Copy" : "Salin",
"Could not copy app password. Please copy it manually." : "Tidak dapat menyalin kata sandi aplikasi. Mohon salin secara manual.",
+ "Profile" : "Profil",
+ "Enable or disable profile by default for new users." : "Aktifkan atau nonaktifkan profil secara default untuk pengguna baru.",
"Enable" : "Aktifkan",
+ "Unable to update profile default setting" : "Tidak dapat memperbarui pengaturan bawaan profil",
+ "Rename group" : "Ganti nama grup",
"Remove group" : "Hapus grup",
"You are about to remove the group {group}. The users will NOT be deleted." : "Anda akan menghapus grup {group}. Pengguna di dalamnya TIDAK akan dihapus.",
"Please confirm the group removal " : "Mohon konfirmasi penghapusan grup",
+ "Your biography" : "Biografi Anda",
+ "Unable to update biography" : "Tidak dapat memperbarui biografi",
+ "Your full name" : "Nama lengkap Anda",
+ "Unable to update full name" : "Tidak dapat memperbarui nama lengkap",
"Your email address" : "Alamat surel Anda",
"No email address set" : "Alamat surel tidak diatur",
"Language" : "Bahasa",
@@ -311,6 +333,7 @@ OC.L10N.register(
"Follow us on Mastodon" : "Ikuti kami di Mastodon",
"Check out our blog" : "Cek blog kami",
"Subscribe to our newsletter" : "Berlangganan surat berita kami",
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Rilis komunitas Nextcloud ini tidak didukung dan pemberitahuan instan tidak tersedia.",
"Profile picture" : "Foto profil",
"Upload new" : "Unggah baru",
"Select from Files" : "Pilih dari berkas",
diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json
index 9fa6e2274bc..4a506a5cf90 100644
--- a/apps/settings/l10n/id.json
+++ b/apps/settings/l10n/id.json
@@ -1,7 +1,10 @@
{ "translations": {
"Private" : "Pribadi",
+ "Only visible to people matched via phone number integration through Talk on mobile" : "Hanya dapat dilihat oleh orang yang cocok melalui integrasi nomor telepon melalui Talk di ponsel",
"Local" : "Lokal",
"Federated" : "Federated",
+ "Only synchronize to trusted servers" : "Hanya sinkronkan ke server tepercaya",
+ "Published" : "Diterbitkan",
"Verify" : "Verifikasi",
"Verifying …" : "Sedang memferivikasi …",
"Unable to change password" : "Tidak dapat mengubah kata sandi",
@@ -31,10 +34,12 @@
"{actor} changed your password" : "{actor} mengganti kata sandi anda",
"You changed your password" : "Anda mengganti kata sandi",
"Your password was reset by an administrator" : "Kata sandi anda telah diatur ulang oleh administrator",
+ "Your password was reset" : "Kata sandi Anda telah disetel ulang",
"{actor} changed your email address" : "{actor} mengubah alamat surel anda",
"You changed your email address" : "Anda mengubah alamat surel sendiri",
"Your email address was changed by an administrator" : "Alamat surel Anda telah diubah oleh administrator",
"You created app password \"{token}\"" : "Anda telah membuat kata sandi aplikasi \"{token}\"",
+ "An administrator created app password \"{token}\"" : "Administrator membuat sandi aplikasi \"{token}\"",
"You deleted app password \"{token}\"" : "Anda menghapus kata sandi aplikasi \"{token}\"",
"You renamed app password \"{token}\" to \"{newToken}\"" : "Anda mengubah kata sandi aplikasi \"{token}\" ke \"{newToken}\"",
"You granted filesystem access to app password \"{token}\"" : "Anda mengijinkan mengakses berkas sistem ke kata sandi aplikasi \"{token}\"",
@@ -48,6 +53,7 @@
"Couldn't remove app." : "Tidak dapat menghapus aplikasi.",
"Couldn't update app." : "Tidak dapat memperbarui aplikasi.",
"Wrong password" : "Kata sandi salah",
+ "Unable to change personal password" : "Tidak dapat mengubah kata sandi pribadi",
"Saved" : "Disimpan",
"No user supplied" : "Tidak ada pengguna yang diberikan",
"Authentication error" : "Terjadi kesalahan saat otentikasi",
@@ -56,6 +62,8 @@
"Backend doesn't support password change, but the user's encryption key was updated." : "Backend tidak mendukung perubahan kata sandi, namun kunci enkripsi pengguna telah diperbarui.",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
"cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL menggunakan versi %1$s yang usang(%2$s). Mohon perbarui sistem operasi Anda atau fitur sejenisnya termasuk %3$s tidak akan bekerja secara penuh.",
+ "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Modul PHP OPcache tidak dimuat. Untuk kinerja yang lebih baik, disarankan untuk memuatnya ke dalam instalasi PHP Anda.",
+ "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache dinonaktifkan. Untuk kinerja yang lebih baik, disarankan untuk menerapkan <code>opcache.enable=1</code> ke konfigurasi PHP Anda.",
"Invalid SMTP password." : "Kata sandi SMTP tidak valid.",
"Email setting test" : "Uji pengaturan surel",
"Well done, %s!" : "Bagus, %s!",
@@ -94,6 +102,8 @@
"Personal" : "Personal",
"Administration" : "Administrasi",
"Additional settings" : "Setelan tambahan",
+ "Admin privileges" : "Hak istimewa admin",
+ "Groupware" : "Peralatan Grup",
"Overview" : "Ringkasan",
"Basic settings" : "Setelan dasar",
"Sharing" : "Berbagi",
@@ -105,6 +115,7 @@
"Change" : "Ubah",
"Delete" : "Hapus",
"Unlimited" : "Tak terbatas",
+ "Nextcloud settings" : "Pengaturan Nextcloud",
"None" : "Tidak ada",
"Limit to groups" : "Batasi ke grup",
"Excluded groups" : "Grup yang dikecualikan",
@@ -132,6 +143,7 @@
"No apps found for your version" : "Aplikasi tidak ditemukan untuk versi ini",
"Disable all" : "Matikan semua",
"Enable all" : "Hidupkan semua",
+ "_Update_::_Update all_" : ["Perbarui semua"],
"Marked for remote wipe" : "Tandai untuk penghapusan remote",
"Device settings" : "Pengaturan perangkat",
"Allow filesystem access" : "Ijinkan akses berkas sistem",
@@ -152,6 +164,8 @@
"Last activity" : "Aktivitas terakhir",
"Devices & sessions" : "Perangkat & sesi",
"Web, desktop and mobile clients currently logged in to your account." : "Klien web, desktop dan mobile yang sedang login di akun Anda.",
+ "Do you really want to wipe your data from this device?" : "Yakin ingin menghapus data Anda dari perangkat ini?",
+ "Confirm wipe" : "Konfirmasi penghapusan",
"Error while creating device token" : "Terjadi kesalahan saat membuat token perangkat",
"Error while updating device token scope" : "Galat saat memperbarui bidang token perangkat",
"Error while updating device token name" : "Galat saat memperbarui nama token perangkat",
@@ -168,10 +182,18 @@
"Copied!" : "Tersalin!",
"Copy" : "Salin",
"Could not copy app password. Please copy it manually." : "Tidak dapat menyalin kata sandi aplikasi. Mohon salin secara manual.",
+ "Profile" : "Profil",
+ "Enable or disable profile by default for new users." : "Aktifkan atau nonaktifkan profil secara default untuk pengguna baru.",
"Enable" : "Aktifkan",
+ "Unable to update profile default setting" : "Tidak dapat memperbarui pengaturan bawaan profil",
+ "Rename group" : "Ganti nama grup",
"Remove group" : "Hapus grup",
"You are about to remove the group {group}. The users will NOT be deleted." : "Anda akan menghapus grup {group}. Pengguna di dalamnya TIDAK akan dihapus.",
"Please confirm the group removal " : "Mohon konfirmasi penghapusan grup",
+ "Your biography" : "Biografi Anda",
+ "Unable to update biography" : "Tidak dapat memperbarui biografi",
+ "Your full name" : "Nama lengkap Anda",
+ "Unable to update full name" : "Tidak dapat memperbarui nama lengkap",
"Your email address" : "Alamat surel Anda",
"No email address set" : "Alamat surel tidak diatur",
"Language" : "Bahasa",
@@ -309,6 +331,7 @@
"Follow us on Mastodon" : "Ikuti kami di Mastodon",
"Check out our blog" : "Cek blog kami",
"Subscribe to our newsletter" : "Berlangganan surat berita kami",
+ "This community release of Nextcloud is unsupported and instant notifications are unavailable." : "Rilis komunitas Nextcloud ini tidak didukung dan pemberitahuan instan tidak tersedia.",
"Profile picture" : "Foto profil",
"Upload new" : "Unggah baru",
"Select from Files" : "Pilih dari berkas",
diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js
index 4c9f42d1828..f3e85f282c7 100644
--- a/apps/settings/l10n/pl.js
+++ b/apps/settings/l10n/pl.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "Nie można usunąć aplikacji.",
"Couldn't update app." : "Nie można zaktualizować aplikacji.",
"Wrong password" : "Złe hasło",
+ "Unable to change personal password" : "Nie można zmienić osobistego hasła",
"Saved" : "Zapisano",
"No user supplied" : "Brak użytkownika",
"Authentication error" : "Błąd uwierzytelniania",
@@ -467,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "Zezwalaj na automatyczne uzupełnianie nazw użytkowników na podstawie integracji numeru telefonu",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Jeśli automatyczne uzupełnianie \"ta sama grupa\" i \"integracja numeru telefonu\" są włączone, wystarczy dopasowanie w jednej z nich, aby pokazać użytkownikowi.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Zezwalaj na autouzupełnianie podczas wpisywania pełnej nazwy lub adresu e-mail (ignorując brak dopasowania książki telefonicznej i bycie w tej samej grupie)",
- "Match username when restricting to full match" : "Dopasuj nazwę użytkownika przy ograniczeniu do pełnego dopasowania",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Ignoruj drugą wyświetlaną nazwę w nawiasach, jeśli taka istnieje, (przykład: \"Pierwsza wyświetlana nazwa (druga ignorowana wyświetlana nazwa)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Pokaż tekst zastrzeżenia na stronie przesyłania linków publicznych (wyświetlane tylko wtedy, gdy lista plików jest ukryta)",
"This text will be shown on the public link upload page when the file list is hidden." : "Ten tekst zostanie wyświetlony na stronie przesyłania linków publicznych, gdy lista plików jest ukryta.",
"Default share permissions" : "Domyślne uprawnienia dla udostępnień",
diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json
index 50cc8bf6a6e..0bb45d7e30d 100644
--- a/apps/settings/l10n/pl.json
+++ b/apps/settings/l10n/pl.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "Nie można usunąć aplikacji.",
"Couldn't update app." : "Nie można zaktualizować aplikacji.",
"Wrong password" : "Złe hasło",
+ "Unable to change personal password" : "Nie można zmienić osobistego hasła",
"Saved" : "Zapisano",
"No user supplied" : "Brak użytkownika",
"Authentication error" : "Błąd uwierzytelniania",
@@ -465,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "Zezwalaj na automatyczne uzupełnianie nazw użytkowników na podstawie integracji numeru telefonu",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Jeśli automatyczne uzupełnianie \"ta sama grupa\" i \"integracja numeru telefonu\" są włączone, wystarczy dopasowanie w jednej z nich, aby pokazać użytkownikowi.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Zezwalaj na autouzupełnianie podczas wpisywania pełnej nazwy lub adresu e-mail (ignorując brak dopasowania książki telefonicznej i bycie w tej samej grupie)",
- "Match username when restricting to full match" : "Dopasuj nazwę użytkownika przy ograniczeniu do pełnego dopasowania",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Ignoruj drugą wyświetlaną nazwę w nawiasach, jeśli taka istnieje, (przykład: \"Pierwsza wyświetlana nazwa (druga ignorowana wyświetlana nazwa)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Pokaż tekst zastrzeżenia na stronie przesyłania linków publicznych (wyświetlane tylko wtedy, gdy lista plików jest ukryta)",
"This text will be shown on the public link upload page when the file list is hidden." : "Ten tekst zostanie wyświetlony na stronie przesyłania linków publicznych, gdy lista plików jest ukryta.",
"Default share permissions" : "Domyślne uprawnienia dla udostępnień",
diff --git a/apps/settings/l10n/pt_BR.js b/apps/settings/l10n/pt_BR.js
index f3619fc2bf6..feef4fa673e 100644
--- a/apps/settings/l10n/pt_BR.js
+++ b/apps/settings/l10n/pt_BR.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "Não foi possível excluir aplicativos.",
"Couldn't update app." : "Não foi possível atualizar o aplicativo",
"Wrong password" : "Senha incorreta",
+ "Unable to change personal password" : "Não foi possível alterar a senha pessoal",
"Saved" : "Salvo",
"No user supplied" : "Nenhum usuário fornecido",
"Authentication error" : "Erro de autenticação",
@@ -72,6 +73,7 @@ OC.L10N.register(
"OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache está configurado para remover comentários de código. Com o OPcache ativado, <code>opcache.save_comments=1</code> deve ser definido para que o Nextcloud funcione.",
"Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "O Nextcloud não tem permissão para usar a API OPcache. Com o OPcache ativado, é altamente recomendável incluir todos os diretórios do Nextcloud com <code>opcache.restrict_api</code>ou desmarque essa configuração para desabilitar as restrições da API OPcache, para evitar erros durante o núcleo do Nextcloud ou atualizações de aplicativos.",
"Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "O Nextcloud não tem permissão para usar a API OPcache. É altamente recomendável incluir todos os diretórios do Nextcloud com <code>opcache.restrict_api</code> ou desmarque essa configuração para desabilitar as restrições da API OPcache, para evitar erros durante o núcleo do Nextcloud ou atualizações de aplicativos.",
+ "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "O número máximo de chaves do OPcache é quase excedido. Para garantir que todos os scripts possam ser mantidos no cache, é recomendável aplicar <code>opcache.max_accelerated_files</code> à sua configuração PHP com um valor superior a <code>%s</code>.",
"The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "O buffer do OPcache está quase cheio. Para garantir que todos os scripts possam ser mantidos em cache, é recomendável aplicar<code>opcache.memory_consumption</code> to sua configuração PHP com um valor maior que<code>%s</code>.",
"The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "O buffer de strings internas do OPcache está quase cheio. Para garantir que as strings repetidas possam ser efetivamente armazenadas em cache, é recomendável aplicar <code>opcache.interned_strings_buffer</code>para sua configuração PHP com um valor maior que <code>%s</code>.",
"Invalid SMTP password." : "Senha SMTP incorreta.",
@@ -183,6 +185,7 @@ OC.L10N.register(
"Disable all" : "Desativar tudo",
"Enable all" : "Ativar tudo",
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplicativo tem atualização disponível","%n aplicativos tem atualização disponível"],
+ "_Update_::_Update all_" : ["Atualizar","Atualize tudo"],
"Marked for remote wipe" : "Marcado para limpeza remota",
"Device settings" : "Configuração dos dispositivos",
"Allow filesystem access" : "Permitir acesso ao sistema de arquivos",
@@ -432,8 +435,12 @@ OC.L10N.register(
"Some jobs didn’t execute since %s. Please consider switching to system cron." : "Alguns trabalhos não são executados desde %s. Considere mudar para o cron do sistema.",
"Last job ran %s." : "Última tarefa rodou há %s.",
"Background job didn’t run yet!" : "O job em segundo plano ainda não rodou!",
+ "For the server to work properly, it's important to configure background jobs correctly. \"Cron\" is the recommended setting. Please see the documentation for more information." : "Para que o servidor funcione corretamente, é importante configurar corretamente os trabalhos em segundo plano. \"Cron\" é a configuração recomendada. Consulte a documentação para obter mais informações.",
"Pick background job setting" : "Configuração de trabalhos em segundo plano",
+ "Execute one task with each page loaded. Use case: Single user instance." : "Execute uma tarefa com cada página carregada. Caso de uso: instância de usuário único.",
+ "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage)." : "cron.php é registrado em um serviço webcron para chamar cron.php a cada 5 minutos por HTTP. Caso de uso: instância muito pequena (1–5 usuários dependendo do uso).",
"Recommended" : "Recomendado",
+ "Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances." : "Use o serviço cron do sistema para chamar o arquivo cron.php a cada 5 minutos. Recomendado para todas as instâncias.",
"The cron.php needs to be executed by the system user \"%s\"." : "O cron.php precisa ser executado pelo usuário de sistema \"%s\"",
"To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para executar isso, você precisa da extensão PHP POSIX. Veja a {linkstart} documentação do PHP {linkend} para mais detalhes.",
"You need to enable the File sharing App." : "Você precisa habilitar o aplicativo de compartilhamento de arquivos.",
@@ -461,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "Permitir autocompletar o nome do usuário com base na integração do número de telefone",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Se autocompletar \"mesmo grupo\" e \"integração do número de telefone\" estiverem habilitadas, uma correspondência em qualquer um dos dois é suficiente para mostrar o usuário.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permitir preenchimento automático ao inserir o nome completo ou o endereço de e-mail (ignorando a correspondência ausente da agenda telefônica e estando no mesmo grupo)",
- "Match username when restricting to full match" : "Corresponder ao nome de usuário ao restringir a correspondência completa",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Ignore o segundo nome de exibição entre parênteses, se houver (exemplo: \"Primeiro nome de exibição (segundo nome de exibição ignorado)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Exibir o texto de aviso na página de envio do link público (somente mostrado quando a lista de arquivos está oculta).",
"This text will be shown on the public link upload page when the file list is hidden." : "Este texto será mostrado na página de envio do link público quando a lista de arquivos está oculta.",
"Default share permissions" : "Permissões padrão de compartilhamento",
diff --git a/apps/settings/l10n/pt_BR.json b/apps/settings/l10n/pt_BR.json
index 8088ad7f817..4b855b99c48 100644
--- a/apps/settings/l10n/pt_BR.json
+++ b/apps/settings/l10n/pt_BR.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "Não foi possível excluir aplicativos.",
"Couldn't update app." : "Não foi possível atualizar o aplicativo",
"Wrong password" : "Senha incorreta",
+ "Unable to change personal password" : "Não foi possível alterar a senha pessoal",
"Saved" : "Salvo",
"No user supplied" : "Nenhum usuário fornecido",
"Authentication error" : "Erro de autenticação",
@@ -70,6 +71,7 @@
"OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache está configurado para remover comentários de código. Com o OPcache ativado, <code>opcache.save_comments=1</code> deve ser definido para que o Nextcloud funcione.",
"Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "O Nextcloud não tem permissão para usar a API OPcache. Com o OPcache ativado, é altamente recomendável incluir todos os diretórios do Nextcloud com <code>opcache.restrict_api</code>ou desmarque essa configuração para desabilitar as restrições da API OPcache, para evitar erros durante o núcleo do Nextcloud ou atualizações de aplicativos.",
"Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "O Nextcloud não tem permissão para usar a API OPcache. É altamente recomendável incluir todos os diretórios do Nextcloud com <code>opcache.restrict_api</code> ou desmarque essa configuração para desabilitar as restrições da API OPcache, para evitar erros durante o núcleo do Nextcloud ou atualizações de aplicativos.",
+ "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be kept in the cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "O número máximo de chaves do OPcache é quase excedido. Para garantir que todos os scripts possam ser mantidos no cache, é recomendável aplicar <code>opcache.max_accelerated_files</code> à sua configuração PHP com um valor superior a <code>%s</code>.",
"The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "O buffer do OPcache está quase cheio. Para garantir que todos os scripts possam ser mantidos em cache, é recomendável aplicar<code>opcache.memory_consumption</code> to sua configuração PHP com um valor maior que<code>%s</code>.",
"The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "O buffer de strings internas do OPcache está quase cheio. Para garantir que as strings repetidas possam ser efetivamente armazenadas em cache, é recomendável aplicar <code>opcache.interned_strings_buffer</code>para sua configuração PHP com um valor maior que <code>%s</code>.",
"Invalid SMTP password." : "Senha SMTP incorreta.",
@@ -181,6 +183,7 @@
"Disable all" : "Desativar tudo",
"Enable all" : "Ativar tudo",
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplicativo tem atualização disponível","%n aplicativos tem atualização disponível"],
+ "_Update_::_Update all_" : ["Atualizar","Atualize tudo"],
"Marked for remote wipe" : "Marcado para limpeza remota",
"Device settings" : "Configuração dos dispositivos",
"Allow filesystem access" : "Permitir acesso ao sistema de arquivos",
@@ -430,8 +433,12 @@
"Some jobs didn’t execute since %s. Please consider switching to system cron." : "Alguns trabalhos não são executados desde %s. Considere mudar para o cron do sistema.",
"Last job ran %s." : "Última tarefa rodou há %s.",
"Background job didn’t run yet!" : "O job em segundo plano ainda não rodou!",
+ "For the server to work properly, it's important to configure background jobs correctly. \"Cron\" is the recommended setting. Please see the documentation for more information." : "Para que o servidor funcione corretamente, é importante configurar corretamente os trabalhos em segundo plano. \"Cron\" é a configuração recomendada. Consulte a documentação para obter mais informações.",
"Pick background job setting" : "Configuração de trabalhos em segundo plano",
+ "Execute one task with each page loaded. Use case: Single user instance." : "Execute uma tarefa com cada página carregada. Caso de uso: instância de usuário único.",
+ "cron.php is registered at a webcron service to call cron.php every 5 minutes over HTTP. Use case: Very small instance (1–5 users depending on the usage)." : "cron.php é registrado em um serviço webcron para chamar cron.php a cada 5 minutos por HTTP. Caso de uso: instância muito pequena (1–5 usuários dependendo do uso).",
"Recommended" : "Recomendado",
+ "Use system cron service to call the cron.php file every 5 minutes. Recommended for all instances." : "Use o serviço cron do sistema para chamar o arquivo cron.php a cada 5 minutos. Recomendado para todas as instâncias.",
"The cron.php needs to be executed by the system user \"%s\"." : "O cron.php precisa ser executado pelo usuário de sistema \"%s\"",
"To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para executar isso, você precisa da extensão PHP POSIX. Veja a {linkstart} documentação do PHP {linkend} para mais detalhes.",
"You need to enable the File sharing App." : "Você precisa habilitar o aplicativo de compartilhamento de arquivos.",
@@ -459,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "Permitir autocompletar o nome do usuário com base na integração do número de telefone",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Se autocompletar \"mesmo grupo\" e \"integração do número de telefone\" estiverem habilitadas, uma correspondência em qualquer um dos dois é suficiente para mostrar o usuário.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permitir preenchimento automático ao inserir o nome completo ou o endereço de e-mail (ignorando a correspondência ausente da agenda telefônica e estando no mesmo grupo)",
- "Match username when restricting to full match" : "Corresponder ao nome de usuário ao restringir a correspondência completa",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Ignore o segundo nome de exibição entre parênteses, se houver (exemplo: \"Primeiro nome de exibição (segundo nome de exibição ignorado)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Exibir o texto de aviso na página de envio do link público (somente mostrado quando a lista de arquivos está oculta).",
"This text will be shown on the public link upload page when the file list is hidden." : "Este texto será mostrado na página de envio do link público quando a lista de arquivos está oculta.",
"Default share permissions" : "Permissões padrão de compartilhamento",
diff --git a/apps/settings/l10n/sk.js b/apps/settings/l10n/sk.js
index c006457e329..e1fb9aa804e 100644
--- a/apps/settings/l10n/sk.js
+++ b/apps/settings/l10n/sk.js
@@ -67,6 +67,7 @@ OC.L10N.register(
"Federated Cloud Sharing" : "Sprístupnenie prostredníctvom Federated Cloud",
"cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL používa zastaralú %1$s verziu (%2$s). Prosím aktualizujte si operačný systém pretože %3$s nebude fungovať spoľahlivo.",
"Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nepodarilo sa zistiť, či je verzia TLS na cURL zastaraná alebo nie, pretože sa vyskytla chyba počas požiadavky HTTPS na https://nextcloud.com. Ďalšie podrobnosti nájdete v log súbore nextcloud.",
+ "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Modul OPcache PHP nie je načítaný. Pre lepší výkon sa odporúča načítať ho do vašej inštalácie PHP.",
"Invalid SMTP password." : "Nesprávne heslo pre SMTP.",
"Email setting test" : "Test nastavení emailu",
"Well done, %s!" : "Dobrá práca, %s!",
@@ -174,6 +175,7 @@ OC.L10N.register(
"Disable all" : "Zakázať všetko",
"Enable all" : "Povoliť všetko",
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplikácia má dostupnú aktualizáciu","%n aplikácie majú dostupné aktualizácie","%n aplikácie majú dostupné aktualizácie ","%n aplikácií má dostupné aktualizácie"],
+ "_Update_::_Update all_" : ["Aktualizovať všetko","Aktualizovať všetko","Aktualizovať všetko","Aktualizovať všetko"],
"Marked for remote wipe" : "Označené na vymazanie na diaľku",
"Device settings" : "Nastavenia zariadenia",
"Allow filesystem access" : "Povoliť prístup ku súborovému systému",
diff --git a/apps/settings/l10n/sk.json b/apps/settings/l10n/sk.json
index 25085fb5804..1797a5672be 100644
--- a/apps/settings/l10n/sk.json
+++ b/apps/settings/l10n/sk.json
@@ -65,6 +65,7 @@
"Federated Cloud Sharing" : "Sprístupnenie prostredníctvom Federated Cloud",
"cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL používa zastaralú %1$s verziu (%2$s). Prosím aktualizujte si operačný systém pretože %3$s nebude fungovať spoľahlivo.",
"Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nepodarilo sa zistiť, či je verzia TLS na cURL zastaraná alebo nie, pretože sa vyskytla chyba počas požiadavky HTTPS na https://nextcloud.com. Ďalšie podrobnosti nájdete v log súbore nextcloud.",
+ "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Modul OPcache PHP nie je načítaný. Pre lepší výkon sa odporúča načítať ho do vašej inštalácie PHP.",
"Invalid SMTP password." : "Nesprávne heslo pre SMTP.",
"Email setting test" : "Test nastavení emailu",
"Well done, %s!" : "Dobrá práca, %s!",
@@ -172,6 +173,7 @@
"Disable all" : "Zakázať všetko",
"Enable all" : "Povoliť všetko",
"_%n app has an update available_::_%n apps have an update available_" : ["%n aplikácia má dostupnú aktualizáciu","%n aplikácie majú dostupné aktualizácie","%n aplikácie majú dostupné aktualizácie ","%n aplikácií má dostupné aktualizácie"],
+ "_Update_::_Update all_" : ["Aktualizovať všetko","Aktualizovať všetko","Aktualizovať všetko","Aktualizovať všetko"],
"Marked for remote wipe" : "Označené na vymazanie na diaľku",
"Device settings" : "Nastavenia zariadenia",
"Allow filesystem access" : "Povoliť prístup ku súborovému systému",
diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js
index 1608ee4ec67..d62f75f1a00 100644
--- a/apps/settings/l10n/tr.js
+++ b/apps/settings/l10n/tr.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "Uygulama kaldırılamadı.",
"Couldn't update app." : "Uygulama güncellenemedi.",
"Wrong password" : "Parola yanlış",
+ "Unable to change personal password" : "Kişisel parolanız değiştirilemedi",
"Saved" : "Kaydedildi",
"No user supplied" : "Kullanıcı belirtilmemiş",
"Authentication error" : "Kimlik doğrulama sorunu",
@@ -467,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "Telefon numarası bütünleştirmesi eşleşmelerine göre kullanıcı adları otomatik olarak tamamlanabilsin",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "\"Aynı grup\" ve \"telefon numarası bütünleştirmesi\" etkinleştirilmiş ise. Kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Tam ad ya da e-posta adresi yazılırken otomatik olarak tamamlanabilsin (aynı grupta olma ya da telefon defteri eşleşmesi yok sayılarak)",
- "Match username when restricting to full match" : "Tam eşleşme kısıtlamasında kullanıcı adı ile eşleşilsin",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Varsa, parantez içindeki görüntülecek ikinci ad yok sayılsın (örneğin \"Görüntülenecek ilk ad (yok sayılacak görüntülenecek ikinci ad)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Herkese açık bağlantı yükleme sayfasındaki sorumluluk reddi bildirim metni (yalnızca dosya listesi gizli iken görüntülenir)",
"This text will be shown on the public link upload page when the file list is hidden." : "Dosya listesi gizli iken herkese açık bağlantı yükleme sayfasında görüntülenecek sorumluluk reddi bildirimi metni.",
"Default share permissions" : "Varsayılan paylaşım izinleri",
diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json
index 599faf127bd..e689d0e85bd 100644
--- a/apps/settings/l10n/tr.json
+++ b/apps/settings/l10n/tr.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "Uygulama kaldırılamadı.",
"Couldn't update app." : "Uygulama güncellenemedi.",
"Wrong password" : "Parola yanlış",
+ "Unable to change personal password" : "Kişisel parolanız değiştirilemedi",
"Saved" : "Kaydedildi",
"No user supplied" : "Kullanıcı belirtilmemiş",
"Authentication error" : "Kimlik doğrulama sorunu",
@@ -465,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "Telefon numarası bütünleştirmesi eşleşmelerine göre kullanıcı adları otomatik olarak tamamlanabilsin",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "\"Aynı grup\" ve \"telefon numarası bütünleştirmesi\" etkinleştirilmiş ise. Kullanıcının görüntülenmesi için ikisinden birinde eşleşme olması yeterlidir.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Tam ad ya da e-posta adresi yazılırken otomatik olarak tamamlanabilsin (aynı grupta olma ya da telefon defteri eşleşmesi yok sayılarak)",
- "Match username when restricting to full match" : "Tam eşleşme kısıtlamasında kullanıcı adı ile eşleşilsin",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "Varsa, parantez içindeki görüntülecek ikinci ad yok sayılsın (örneğin \"Görüntülenecek ilk ad (yok sayılacak görüntülenecek ikinci ad)\")",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Herkese açık bağlantı yükleme sayfasındaki sorumluluk reddi bildirim metni (yalnızca dosya listesi gizli iken görüntülenir)",
"This text will be shown on the public link upload page when the file list is hidden." : "Dosya listesi gizli iken herkese açık bağlantı yükleme sayfasında görüntülenecek sorumluluk reddi bildirimi metni.",
"Default share permissions" : "Varsayılan paylaşım izinleri",
diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js
index f44428c71e9..5f61a7eb053 100644
--- a/apps/settings/l10n/zh_HK.js
+++ b/apps/settings/l10n/zh_HK.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "無法移除應用程式。",
"Couldn't update app." : "無法更新應用程式。",
"Wrong password" : "密碼錯誤",
+ "Unable to change personal password" : "無法更改個人密碼",
"Saved" : "已儲存",
"No user supplied" : "未提供用戶",
"Authentication error" : "認證錯誤",
@@ -467,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "允許基於電話號碼整合的用戶自動完成用戶名",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "如果啟用了自動完成功能“相同的群組”和“電話號碼整合”,則任何一個匹配都足以向用戶顯示。",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "輸入全名或電郵地址時,允許自動完成(忽略缺少的電話簿匹配項,並且位於同一群組中)",
- "Match username when restricting to full match" : "限制為完全匹配時匹配用戶名",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "忽略括號中的第二個顯示名稱(如有)。示例:“第一個顯示名稱(第二個忽略的顯示名稱)”",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "在公開的檔案連結和上傳頁面顯示免責聲明(僅在檔案列表隱藏的時候才會顯示)",
"This text will be shown on the public link upload page when the file list is hidden." : "這段文字會在公開檔案上傳頁面檔案列表被隱藏的時候顯示。",
"Default share permissions" : "預設分享權限",
diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json
index 30eacd8a36b..0f692836e7e 100644
--- a/apps/settings/l10n/zh_HK.json
+++ b/apps/settings/l10n/zh_HK.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "無法移除應用程式。",
"Couldn't update app." : "無法更新應用程式。",
"Wrong password" : "密碼錯誤",
+ "Unable to change personal password" : "無法更改個人密碼",
"Saved" : "已儲存",
"No user supplied" : "未提供用戶",
"Authentication error" : "認證錯誤",
@@ -465,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "允許基於電話號碼整合的用戶自動完成用戶名",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "如果啟用了自動完成功能“相同的群組”和“電話號碼整合”,則任何一個匹配都足以向用戶顯示。",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "輸入全名或電郵地址時,允許自動完成(忽略缺少的電話簿匹配項,並且位於同一群組中)",
- "Match username when restricting to full match" : "限制為完全匹配時匹配用戶名",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "忽略括號中的第二個顯示名稱(如有)。示例:“第一個顯示名稱(第二個忽略的顯示名稱)”",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "在公開的檔案連結和上傳頁面顯示免責聲明(僅在檔案列表隱藏的時候才會顯示)",
"This text will be shown on the public link upload page when the file list is hidden." : "這段文字會在公開檔案上傳頁面檔案列表被隱藏的時候顯示。",
"Default share permissions" : "預設分享權限",
diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js
index 5bd1dc325b2..cd864695012 100644
--- a/apps/settings/l10n/zh_TW.js
+++ b/apps/settings/l10n/zh_TW.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Couldn't remove app." : "無法移除應用程式。",
"Couldn't update app." : "無法更新應用程式。",
"Wrong password" : "密碼錯誤",
+ "Unable to change personal password" : "無法變更個人密碼",
"Saved" : "已儲存",
"No user supplied" : "未提供使用者",
"Authentication error" : "認證錯誤",
@@ -467,8 +468,6 @@ OC.L10N.register(
"Allow username autocompletion to users based on phone number integration" : "允許以電話號碼整合為基礎的使用者名稱自動完成",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "若同時啟用「同一個群組」與「電話號碼整合」的自動完成,則符合其中一項條件就會顯示使用者。",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "輸入全名或電子郵件地址時,允許自動完成(忽略缺少的通訊錄相符,以及在同一個群組中的)",
- "Match username when restricting to full match" : "限制為完全符合時符合使用者名稱",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "忽略括號中的第二顯示名稱(若有)。範例:「第一個顯示名稱(第二個忽略的顯示名稱)」",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "在公開的檔案連結和上傳頁面顯示免責聲明(僅在檔案列表隱藏的時候才會顯示)",
"This text will be shown on the public link upload page when the file list is hidden." : "這段文字會在公開檔案上傳頁面檔案列表被隱藏的時候顯示。",
"Default share permissions" : "預設分享權限",
diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json
index f1c148e5372..a490bb5b16d 100644
--- a/apps/settings/l10n/zh_TW.json
+++ b/apps/settings/l10n/zh_TW.json
@@ -55,6 +55,7 @@
"Couldn't remove app." : "無法移除應用程式。",
"Couldn't update app." : "無法更新應用程式。",
"Wrong password" : "密碼錯誤",
+ "Unable to change personal password" : "無法變更個人密碼",
"Saved" : "已儲存",
"No user supplied" : "未提供使用者",
"Authentication error" : "認證錯誤",
@@ -465,8 +466,6 @@
"Allow username autocompletion to users based on phone number integration" : "允許以電話號碼整合為基礎的使用者名稱自動完成",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "若同時啟用「同一個群組」與「電話號碼整合」的自動完成,則符合其中一項條件就會顯示使用者。",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "輸入全名或電子郵件地址時,允許自動完成(忽略缺少的通訊錄相符,以及在同一個群組中的)",
- "Match username when restricting to full match" : "限制為完全符合時符合使用者名稱",
- "Ignore second display name in parentheses if any (example: \"First display name (second ignored display name)\")" : "忽略括號中的第二顯示名稱(若有)。範例:「第一個顯示名稱(第二個忽略的顯示名稱)」",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "在公開的檔案連結和上傳頁面顯示免責聲明(僅在檔案列表隱藏的時候才會顯示)",
"This text will be shown on the public link upload page when the file list is hidden." : "這段文字會在公開檔案上傳頁面檔案列表被隱藏的時候顯示。",
"Default share permissions" : "預設分享權限",
diff --git a/apps/settings/lib/Controller/ChangePasswordController.php b/apps/settings/lib/Controller/ChangePasswordController.php
index 8dd1e6ba028..85e4218ebb5 100644
--- a/apps/settings/lib/Controller/ChangePasswordController.php
+++ b/apps/settings/lib/Controller/ChangePasswordController.php
@@ -109,7 +109,10 @@ class ChangePasswordController extends Controller {
try {
if ($newpassword === null || $user->setPassword($newpassword) === false) {
return new JSONResponse([
- 'status' => 'error'
+ 'status' => 'error',
+ 'data' => [
+ 'message' => $this->l->t('Unable to change personal password'),
+ ],
]);
}
// password policy app throws exception
diff --git a/apps/settings/lib/Settings/Admin/Sharing.php b/apps/settings/lib/Settings/Admin/Sharing.php
index 56c89c515a8..ffe1e5acd45 100644
--- a/apps/settings/lib/Settings/Admin/Sharing.php
+++ b/apps/settings/lib/Settings/Admin/Sharing.php
@@ -90,6 +90,7 @@ class Sharing implements IDelegatedSettings {
'restrictUserEnumerationToPhone' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no'),
'restrictUserEnumerationFullMatch' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match', 'yes'),
'restrictUserEnumerationFullMatchUserId' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_userid', 'yes'),
+ 'restrictUserEnumerationFullMatchEmail' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes'),
'restrictUserEnumerationFullMatchIgnoreSecondDisplayName' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name', 'no'),
'enforceLinkPassword' => Util::isPublicLinkPasswordRequired(false),
'passwordExcludedGroups' => $excludedPasswordGroupsList,
diff --git a/apps/settings/lib/SetupChecks/SupportedDatabase.php b/apps/settings/lib/SetupChecks/SupportedDatabase.php
index 089fb69bbc9..302797485d3 100644
--- a/apps/settings/lib/SetupChecks/SupportedDatabase.php
+++ b/apps/settings/lib/SetupChecks/SupportedDatabase.php
@@ -70,12 +70,12 @@ class SupportedDatabase {
if (strpos($version, 'mariadb') !== false) {
if (version_compare($version, '10.2', '<')) {
- $this->description = $this->l10n->t('MariaDB version "%s" is used. Nextcloud 21 will no longer support this version and requires MariaDB 10.2 or higher.', $row['Value']);
+ $this->description = $this->l10n->t('MariaDB version "%s" is used. Nextcloud 21 and higher do not support this version and require MariaDB 10.2 or higher.', $row['Value']);
return;
}
} else {
if (version_compare($version, '8', '<')) {
- $this->description = $this->l10n->t('MySQL version "%s" is used. Nextcloud 21 will no longer support this version and requires MySQL 8.0 or MariaDB 10.2 or higher.', $row['Value']);
+ $this->description = $this->l10n->t('MySQL version "%s" is used. Nextcloud 21 and higher do not support this version and require MySQL 8.0 or MariaDB 10.2 or higher.', $row['Value']);
return;
}
}
@@ -88,7 +88,7 @@ class SupportedDatabase {
$result->execute();
$row = $result->fetch();
if (version_compare($row['server_version'], '9.6', '<')) {
- $this->description = $this->l10n->t('PostgreSQL version "%s" is used. Nextcloud 21 will no longer support this version and requires PostgreSQL 9.6 or higher.', $row['server_version']);
+ $this->description = $this->l10n->t('PostgreSQL version "%s" is used. Nextcloud 21 and higher do not support this version and require PostgreSQL 9.6 or higher.', $row['server_version']);
return;
}
break;
diff --git a/apps/settings/src/admin.js b/apps/settings/src/admin.js
index feb03a865b9..8012dcb8863 100644
--- a/apps/settings/src/admin.js
+++ b/apps/settings/src/admin.js
@@ -157,6 +157,7 @@ window.addEventListener('DOMContentLoaded', () => {
$('#shareapi_restrict_user_enumeration_full_match').on('change', function() {
$('#shareapi_restrict_user_enumeration_full_match_userid_setting').toggleClass('hidden', !this.checked)
+ $('#shareapi_restrict_user_enumeration_full_match_email_setting').toggleClass('hidden', !this.checked)
$('#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting').toggleClass('hidden', !this.checked)
})
diff --git a/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue b/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
index 2f11f493207..ed5d6f8b5d7 100644
--- a/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
+++ b/apps/settings/src/components/PersonalInfo/LanguageSection/Language.vue
@@ -152,7 +152,7 @@ export default {
color: var(--color-main-text);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius);
- background: var(--icon-triangle-s-000) no-repeat right 4px center;
+ background: var(--icon-triangle-s-dark) no-repeat right 4px center;
font-family: var(--font-face);
appearance: none;
cursor: pointer;
diff --git a/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue b/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue
index ef12d511fb9..afd85269720 100644
--- a/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue
+++ b/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue
@@ -162,7 +162,7 @@ export default {
height: 70px;
border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
background-color: var(--color-primary);
- background-image: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-element-light) 100%);
+ background-image: var(--gradient-primary-background);
span {
bottom: 0;
diff --git a/apps/settings/templates/settings/admin/sharing.php b/apps/settings/templates/settings/admin/sharing.php
index 04c7f1aa3ae..67a846bcc0c 100644
--- a/apps/settings/templates/settings/admin/sharing.php
+++ b/apps/settings/templates/settings/admin/sharing.php
@@ -247,24 +247,6 @@
} ?> />
<label for="shareapi_restrict_user_enumeration_full_match"><?php p($l->t('Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)'));?></label><br />
</p>
- <p id="shareapi_restrict_user_enumeration_full_match_userid_setting" class="double-indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['restrictUserEnumerationFullMatch'] === 'no') {
- p('hidden');
-}?>">
- <input type="checkbox" name="shareapi_restrict_user_enumeration_full_match_userid" value="1" id="shareapi_restrict_user_enumeration_full_match_userid" class="checkbox"
- <?php if ($_['restrictUserEnumerationFullMatchUserId'] === 'yes') {
- print_unescaped('checked="checked"');
-} ?> />
- <label for="shareapi_restrict_user_enumeration_full_match_userid"><?php p($l->t('Match username when restricting to full match'));?></label><br />
- </p>
- <p id="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting" class="double-indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['restrictUserEnumerationFullMatch'] === 'no') {
- p('hidden');
-}?>">
- <input type="checkbox" name="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name" value="1" id="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name" class="checkbox"
- <?php if ($_['restrictUserEnumerationFullMatchIgnoreSecondDisplayName'] === 'yes') {
- print_unescaped('checked="checked"');
-} ?> />
- <label for="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name"><?php p($l->t('Ignore second display name in parentheses if any (example: "First display name (second ignored display name)")'));?></label><br />
- </p>
<p>
<input type="checkbox" id="publicShareDisclaimer" class="checkbox noJSAutoUpdate"
diff --git a/apps/settings/tests/Settings/Admin/SharingTest.php b/apps/settings/tests/Settings/Admin/SharingTest.php
index e0693b4f963..4cb94632f02 100644
--- a/apps/settings/tests/Settings/Admin/SharingTest.php
+++ b/apps/settings/tests/Settings/Admin/SharingTest.php
@@ -84,6 +84,7 @@ class SharingTest extends TestCase {
['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
['core', 'shareapi_restrict_user_enumeration_full_match', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_userid', 'yes', 'yes'],
+ ['core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name', 'no', 'no'],
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_default_expire_date', 'no', 'no'],
@@ -119,6 +120,7 @@ class SharingTest extends TestCase {
'restrictUserEnumerationToPhone' => 'no',
'restrictUserEnumerationFullMatch' => 'yes',
'restrictUserEnumerationFullMatchUserId' => 'yes',
+ 'restrictUserEnumerationFullMatchEmail' => 'yes',
'restrictUserEnumerationFullMatchIgnoreSecondDisplayName' => 'no',
'enforceLinkPassword' => false,
'onlyShareWithGroupMembers' => false,
@@ -163,6 +165,7 @@ class SharingTest extends TestCase {
['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
['core', 'shareapi_restrict_user_enumeration_full_match', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_userid', 'yes', 'yes'],
+ ['core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name', 'no', 'no'],
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_default_expire_date', 'no', 'no'],
@@ -198,6 +201,7 @@ class SharingTest extends TestCase {
'restrictUserEnumerationToPhone' => 'no',
'restrictUserEnumerationFullMatch' => 'yes',
'restrictUserEnumerationFullMatchUserId' => 'yes',
+ 'restrictUserEnumerationFullMatchEmail' => 'yes',
'restrictUserEnumerationFullMatchIgnoreSecondDisplayName' => 'no',
'enforceLinkPassword' => false,
'onlyShareWithGroupMembers' => false,
diff --git a/apps/sharebymail/l10n/es.js b/apps/sharebymail/l10n/es.js
index 3d3c771746a..5fe224e57a7 100644
--- a/apps/sharebymail/l10n/es.js
+++ b/apps/sharebymail/l10n/es.js
@@ -27,7 +27,7 @@ OC.L10N.register(
"Share by mail" : "Enviado por correo electrónico",
"Sharing %1$s failed, because this item is already shared with user %2$s" : "Fallo al compartir %1$s porque este objeto ya está compartido con el usuario %2$s",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No te podemos enviar la contraseña auto generada. Por favor, indica una dirección de email válida en tu configuración personal e inténtalo de nuevo.",
- "Failed to send share by email. Got an invalid email address" : "No se ha podido enviar la acción por correo electrónico. La dirección de correo electrónico no es válida",
+ "Failed to send share by email. Got an invalid email address" : "No se ha podido enviar el vínculo por correo electrónico. La dirección de correo electrónico no es válida",
"Failed to send share by email" : "Fallo al enviar compartido por correo electrónico",
"%1$s shared »%2$s« with you" : "%1$s ha compartido «%2$s» contigo",
"%1$s shared »%2$s« with you." : "%1$s ha compartido «%2$s» contigo.",
diff --git a/apps/sharebymail/l10n/es.json b/apps/sharebymail/l10n/es.json
index f2cd4a28f81..ff7b42306da 100644
--- a/apps/sharebymail/l10n/es.json
+++ b/apps/sharebymail/l10n/es.json
@@ -25,7 +25,7 @@
"Share by mail" : "Enviado por correo electrónico",
"Sharing %1$s failed, because this item is already shared with user %2$s" : "Fallo al compartir %1$s porque este objeto ya está compartido con el usuario %2$s",
"We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No te podemos enviar la contraseña auto generada. Por favor, indica una dirección de email válida en tu configuración personal e inténtalo de nuevo.",
- "Failed to send share by email. Got an invalid email address" : "No se ha podido enviar la acción por correo electrónico. La dirección de correo electrónico no es válida",
+ "Failed to send share by email. Got an invalid email address" : "No se ha podido enviar el vínculo por correo electrónico. La dirección de correo electrónico no es válida",
"Failed to send share by email" : "Fallo al enviar compartido por correo electrónico",
"%1$s shared »%2$s« with you" : "%1$s ha compartido «%2$s» contigo",
"%1$s shared »%2$s« with you." : "%1$s ha compartido «%2$s» contigo.",
diff --git a/apps/testing/lib/Locking/FakeDBLockingProvider.php b/apps/testing/lib/Locking/FakeDBLockingProvider.php
index 5f8ea399477..2556ba29a64 100644
--- a/apps/testing/lib/Locking/FakeDBLockingProvider.php
+++ b/apps/testing/lib/Locking/FakeDBLockingProvider.php
@@ -26,32 +26,27 @@ namespace OCA\Testing\Locking;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IDBConnection;
use Psr\Log\LoggerInterface;
+use OC\Lock\DBLockingProvider;
-class FakeDBLockingProvider extends \OC\Lock\DBLockingProvider {
+class FakeDBLockingProvider extends DBLockingProvider {
// Lock for 10 hours just to be sure
public const TTL = 36000;
/**
* Need a new child, because parent::connection is private instead of protected...
- * @var IDBConnection
*/
- protected $db;
+ protected IDBConnection $db;
public function __construct(
IDBConnection $connection,
- LoggerInterface $logger,
ITimeFactory $timeFactory
) {
- parent::__construct($connection, $logger, $timeFactory);
+ parent::__construct($connection, $timeFactory);
$this->db = $connection;
}
-
- /**
- * @param string $path
- * @param int $type self::LOCK_SHARED or self::LOCK_EXCLUSIVE
- */
- public function releaseLock(string $path, int $type) {
+ /** @inheritDoc */
+ public function releaseLock(string $path, int $type): void {
// we DONT keep shared locks till the end of the request
if ($type === self::LOCK_SHARED) {
$this->db->executeUpdate(
diff --git a/apps/theming/css/default.css b/apps/theming/css/default.css
index a2b4b4c7b60..e2d641f530e 100644
--- a/apps/theming/css/default.css
+++ b/apps/theming/css/default.css
@@ -13,12 +13,13 @@
--color-primary-hover: #329bd3;
--color-primary-light: #e5f2f9;
--color-primary-light-text: #0082c9;
- --color-primary-light-hover: #1e2b32;
+ --color-primary-light-hover: #dbe7ee;
--color-primary-text-dark: #ededed;
--color-primary-element: #0082c9;
--color-primary-element-hover: #198ece;
--color-primary-element-light: #17adff;
--color-primary-element-lighter: #d8ecf6;
+ --gradient-primary-background: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-element-light) 100%);
--color-main-text: #222222;
--color-text-maxcontrast: #767676;
--color-text-light: #222222;
diff --git a/apps/theming/css/settings-admin.css b/apps/theming/css/settings-admin.css
new file mode 100644
index 00000000000..96be6dd862b
--- /dev/null
+++ b/apps/theming/css/settings-admin.css
@@ -0,0 +1,132 @@
+#theming input {
+ width: 230px;
+}
+#theming input:focus,
+#theming input:active {
+ padding-right: 30px;
+}
+#theming .fileupload {
+ display: none;
+}
+#theming div > label {
+ position: relative;
+}
+#theming .theme-undo {
+ position: absolute;
+ top: -7px;
+ right: 4px;
+ cursor: pointer;
+ opacity: 0.3;
+ padding: 7px;
+ vertical-align: top;
+ display: inline-block;
+ visibility: hidden;
+ height: 32px;
+ width: 32px;
+}
+#theming form.uploadButton {
+ width: 411px;
+}
+#theming form .theme-undo,
+#theming .theme-remove-bg {
+ cursor: pointer;
+ opacity: 0.3;
+ padding: 7px;
+ vertical-align: top;
+ display: inline-block;
+ float: right;
+ position: relative;
+ top: 4px;
+ right: 0px;
+ visibility: visible;
+ height: 32px;
+ width: 32px;
+}
+#theming input[type=text]:hover + .theme-undo,
+#theming input[type=text] + .theme-undo:hover,
+#theming input[type=text]:focus + .theme-undo,
+#theming input[type=text]:active + .theme-undo,
+#theming input[type=url]:hover + .theme-undo,
+#theming input[type=url] + .theme-undo:hover,
+#theming input[type=url]:focus + .theme-undo,
+#theming input[type=url]:active + .theme-undo {
+ visibility: visible;
+}
+#theming label span {
+ display: inline-block;
+ min-width: 175px;
+ padding: 8px 0px;
+ vertical-align: top;
+}
+#theming .icon-upload,
+#theming .uploadButton .icon-loading-small {
+ padding: 8px 20px;
+ width: 20px;
+ margin: 2px 0px;
+ min-height: 32px;
+ display: inline-block;
+}
+#theming #theming_settings_status {
+ height: 26px;
+ margin: 10px;
+}
+#theming #theming_settings_loading {
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 10px;
+}
+#theming #theming_settings_msg {
+ vertical-align: middle;
+ border-radius: 3px;
+}
+#theming #theming-preview {
+ width: 230px;
+ height: 140px;
+ background-size: cover;
+ background-position: center center;
+ text-align: center;
+ margin-left: 178px;
+ margin-top: 10px;
+ margin-bottom: 20px;
+ cursor: pointer;
+ background-color: var(--color-primary);
+ background-image: var(--image-background, var(--image-background-plain, url("../../../core/img/background.svg"), linear-gradient(40deg, #0082c9 0%, #30b6ff 100%)));
+}
+#theming #theming-preview #theming-preview-logo {
+ cursor: pointer;
+ width: 20%;
+ height: 20%;
+ margin-top: 20px;
+ display: inline-block;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: contain;
+ background-image: var(--image-logo, url("../../../core/img/logo/logo.svg"));
+}
+#theming .theming-hints {
+ margin-top: 20px;
+}
+#theming .image-preview {
+ display: inline-block;
+ width: 80px;
+ height: 36px;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: contain;
+}
+#theming #theming-preview-logoheader {
+ background-image: var(--image-logoheader);
+}
+#theming #theming-preview-favicon {
+ background-image: var(--image-favicon);
+}
+
+/* transition effects for theming value changes */
+#header {
+ transition: background-color 500ms linear;
+}
+#header svg, #header img {
+ transition: 500ms filter linear;
+}
+
+/*# sourceMappingURL=settings-admin.css.map */
diff --git a/apps/theming/css/settings-admin.css.map b/apps/theming/css/settings-admin.css.map
new file mode 100644
index 00000000000..b5e657a4e30
--- /dev/null
+++ b/apps/theming/css/settings-admin.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["settings-admin.scss"],"names":[],"mappings":"AACI;EACI;;AAGJ;AAAA;EAEI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;;AAEJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGP;EAEO;;AAGP;EACO;;;AAIR;AACA;EACI;;AACA;EACI","file":"settings-admin.css"} \ No newline at end of file
diff --git a/apps/theming/css/theming.css b/apps/theming/css/theming.css
new file mode 100644
index 00000000000..2d43b528a95
--- /dev/null
+++ b/apps/theming/css/theming.css
@@ -0,0 +1,17 @@
+/* Error: Undefined variable.
+ * ,
+ * 38 | $invert: luma($color-primary) > 0.6;
+ * | ^^^^^^^^^^^^^^
+ * '
+ * apps/theming/css/theming.scss 38:15 root stylesheet */
+
+body::before {
+ font-family: "Source Code Pro", "SF Mono", Monaco, Inconsolata, "Fira Mono",
+ "Droid Sans Mono", monospace, monospace;
+ white-space: pre;
+ display: block;
+ padding: 1em;
+ margin-bottom: 1em;
+ border-bottom: 2px solid black;
+ content: "Error: Undefined variable.\a \2577 \a 38 \2502 $invert: luma($color-primary) > 0.6;\a \2502 ^^^^^^^^^^^^^^\a \2575 \a apps/theming/css/theming.scss 38:15 root stylesheet";
+}
diff --git a/apps/theming/css/theming.scss b/apps/theming/css/theming.scss
deleted file mode 100644
index a5b55a5a738..00000000000
--- a/apps/theming/css/theming.scss
+++ /dev/null
@@ -1,285 +0,0 @@
-/** Calculate luma as it is also used in OCA\Theming\Util::calculateLuma */
-@function luma($c) {
- $-local-red: red(rgba($c, 1.0));
- $-local-green: green(rgba($c, 1.0));
- $-local-blue: blue(rgba($c, 1.0));
-
- @return (0.2126 * $-local-red + 0.7152 * $-local-green + 0.0722 * $-local-blue) / 255;
-}
-
-@mixin faded-background {
- background-color: $color-primary;
-
- @if ($color-primary == #0082C9) {
- background-image: linear-gradient(40deg, $color-primary 0%, lighten($color-primary, 20%) 100%);
- } @else {
- /** This will be overwritten by the faded-background-image mixin if needed */
- background-image: none;
- }
-}
-
-@mixin faded-background-image {
- @include faded-background;
- background-size: contain;
-
- @if ($color-primary == #0082C9) {
- background-image: $image-login-background, linear-gradient(40deg, $color-primary 0%, lighten($color-primary, 20%) 100%);
- }
-
- @if($has-custom-background == true) {
- background-size: cover;
- background-repeat: no-repeat;
- background-image: $image-login-background;
- }
-}
-
-$has-custom-background: variable_exists('theming-background-mime') and $theming-background-mime != '';
-$has-custom-logo: variable_exists('theming-logo-mime') and $theming-logo-mime != '';
-$invert: luma($color-primary) > 0.6;
-
-@if ($has-custom-logo == false) {
- @if ($invert) {
- $image-logo: url(icon-color-path('logo', 'logo', #000000, 1, true));
- } @else {
- $image-logo: url(icon-color-path('logo', 'logo', #ffffff, 1, true));
- }
-}
-
-@if ($invert) {
- // too bright, use dark text to mix the primary
- $color-primary-light: mix($color-primary, $color-main-text, 10%);
-
- #appmenu:not(.inverted) svg {
- filter: invert(1);
- }
- #appmenu.inverted svg {
- filter: none;
- }
- .searchbox input[type="search"] {
- background-repeat: no-repeat;
- background-position: 6px center;
- background-color: transparent;
- @include icon-color('search', 'actions', $color-black, 1, true);
- }
- #contactsmenu .icon-contacts {
- @include icon-color('contacts', 'places', $color-black, 1, true);
- }
- #settings .icon-settings-white {
- @include icon-color('settings', 'actions', $color-black, 1, true);
- }
- #appmenu .icon-more-white {
- @include icon-color('more', 'actions', $color-black, 1, true);
- }
-} @else {
- #appmenu:not(.inverted) svg {
- filter: none;
- }
- #appmenu.inverted svg {
- filter: invert(1);
- }
-}
-
-/* Colorized svg images */
-.icon-file, .icon-filetype-text {
- background-image: url(./img/core/filetypes/text.svg?v=#{$theming-cachebuster});
-}
-
-.icon-folder, .icon-filetype-folder {
- background-image: url(./img/core/filetypes/folder.svg?v=#{$theming-cachebuster});
-}
-
-.icon-filetype-folder-drag-accept {
- background-image: url(./img/core/filetypes/folder-drag-accept.svg?v=#{$theming-cachebuster}) !important;
-}
-
-#theming-preview-logo,
-#header .logo {
- background-image: $image-logo;
-}
-
-#body-user,
-#body-settings,
-#body-public {
- #header,
- .profile__header,
- .preview-card__header {
- @include faded-background;
- }
-}
-
-#body-login,
-#firstrunwizard .firstrunwizard-header,
-#theming-preview {
- @include faded-background-image;
-}
-
-/* override styles for login screen in guest.css */
-@if ($has-custom-logo) {
- // custom logo
- #theming-preview-logo,
- #header .logo {
- background-size: contain;
- }
-
- #body-login #header .logo {
- margin-bottom: 22px;
- }
-} @else {
- // default logo
- @if ($invert) {
- #theming-preview-logo,
- #header .logo {
- opacity: .6;
- }
- }
-}
-
-@if variable_exists('theming-logoheader-mime') and $theming-logoheader-mime != '' {
- #theming .advanced-option-logoheader .image-preview,
- body:not(#body-login) #header .logo {
- background-image: $image-logoheader;
- }
-} @else {
- #theming .advanced-option-favicon .image-preview {
- background-image: none;
- }
-}
-
-input.primary {
- background-color: $color-primary-element;
- border: 1px solid $color-primary-text;
- color: $color-primary-text;
-}
-
-#body-login {
- input.primary:enabled:hover,
- input.primary:enabled:focus,
- button.primary:enabled:hover,
- button.primary:enabled:focus,
- a.primary:enabled:hover,
- a.primary:enabled:focus {
- color: $color-primary-text;
- background-image: linear-gradient(40deg, $color-primary 0%, lighten($color-primary, 20%) 100%);
- }
-}
-
-@if ($invert) {
- #body-login {
- .body-login-container {
- background-color: transparentize(nc-lighten($color-primary, 30%), 0.2);
- color: $color-primary-text !important;
-
- h2 {
- color: $color-primary-text;
- }
- .icon-search.icon-white {
- // CSS variable is not used here since it is on the public page layout,
- // where the dark theme doesn't apply at the moment
- background-image: url('../../../core/img/actions/search.svg');
- }
- }
-
- input {
- border: 1px solid nc-lighten($color-primary-text, 50%);
- }
- input.primary,
- button.primary {
- background-color: $color-primary;
- color: $color-primary-text;
- }
- :not(div.alternative-logins) > a,
- label,
- footer p,
- .alternative-logins legend,
- .lost-password-container #lost-password,
- .warning, .update, .error {
- color: $color-primary-text !important;
- }
- input[type='checkbox'].checkbox--white + label:before {
- border-color: nc-darken($color-primary-element, 40%) !important;
- }
- input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before,
- input[type='checkbox'].checkbox--white:focus + label:before {
- border-color: nc-darken($color-primary-element, 30%) !important;
- }
- input[type='checkbox'].checkbox--white:checked + label:before {
- border-color: nc-darken($color-primary-element, 30%) !important;
- background-color: nc-darken($color-primary-element, 30%) !important;
- @include icon-color('checkbox-mark', 'actions', $color-white, 1, true);
- }
- #submit-wrapper .icon-confirm-white {
- background-image: url('../../../core/img/actions/confirm.svg');
- }
-
- .two-factor-provider {
- &:hover, &:focus {
- border-color: $color-primary-text;
- }
- img {
- filter: invert(1);
- }
- }
- }
- #body-public #header .icon-more-white {
- background-image: var(--icon-more-000);
- }
-}
-
-// plain background color for login page
-@if $image-login-plain == 'true' {
- #body-login, #firstrunwizard .firstrunwizard-header, #theming-preview {
- background-image: none !important;
- }
- #body-login {
-
- :not(.alternative-logins) a, label, p {
- color: $color-primary-text;
- }
-
- }
-}
-
-/** Handle primary buttons for bright colors */
-@if (luma($color-primary) > 0.8) {
- :root {
- --color-primary-light-text: var(--color-primary-text);
- }
- select,
- button, .button,
- input:not([type='range']),
- textarea,
- div[contenteditable=true],
- .pager li a {
- &.primary:not(:disabled) {
- background-color: var(--color-background-dark);
- color: var(--color-main-text);
- border-color: var(--color-text-lighter);
-
- &:hover, &:focus, &:active {
- background-color: var(--color-background-darker);
- color: var(--color-main-text);
- border-color: var(--color-text);
- }
- }
- }
-}
-
-@if ($color-primary == #ffffff) {
- /* show grey border below header */
- #body-user #header,
- #body-settings #header,
- #body-public #header {
- border-bottom: 1px solid #ebebeb;
- }
-
- /* show triangle in header in grey */
- #appmenu li a.active:before,
- .header-right #settings #expand:before {
- border-bottom-color:#ebebeb;
- }
-
- /* show border around quota bar in files app */
- .app-files #quota .quota-container {
- border: 1px solid #ebebeb;
- }
-}
diff --git a/apps/theming/l10n/hu.js b/apps/theming/l10n/hu.js
index 78e8c38be51..2d4a488a0e0 100644
--- a/apps/theming/l10n/hu.js
+++ b/apps/theming/l10n/hu.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"Similar to the high contrast mode, but with dark colours." : "Hasonló a magas kontrasztú módhoz, de sötét színekkel.",
"Dark theme" : "Sötét téma",
"Enable dark theme" : "Sötét téma engedélyezése",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Egy szemkímélő sötét téma, amely csökkenti az átlagos fényességet és fényerőt.",
"System default theme" : "Rendszer alapértelmezett témája",
"Enable the system default" : "Rendszer alapértelmezésének engedélyezése",
"Using the default system appearance." : "Az alapértelmezett rendszermegjelenés használata.",
diff --git a/apps/theming/l10n/hu.json b/apps/theming/l10n/hu.json
index cf92f641e5d..ff61b997bc4 100644
--- a/apps/theming/l10n/hu.json
+++ b/apps/theming/l10n/hu.json
@@ -30,6 +30,7 @@
"Similar to the high contrast mode, but with dark colours." : "Hasonló a magas kontrasztú módhoz, de sötét színekkel.",
"Dark theme" : "Sötét téma",
"Enable dark theme" : "Sötét téma engedélyezése",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Egy szemkímélő sötét téma, amely csökkenti az átlagos fényességet és fényerőt.",
"System default theme" : "Rendszer alapértelmezett témája",
"Enable the system default" : "Rendszer alapértelmezésének engedélyezése",
"Using the default system appearance." : "Az alapértelmezett rendszermegjelenés használata.",
diff --git a/apps/theming/l10n/pl.js b/apps/theming/l10n/pl.js
index defd23a3785..90f4cdfe754 100644
--- a/apps/theming/l10n/pl.js
+++ b/apps/theming/l10n/pl.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"Similar to the high contrast mode, but with dark colours." : "Podobny do trybu wysokiego kontrastu, ale z ciemnymi kolorami.",
"Dark theme" : "Ciemny motyw",
"Enable dark theme" : "Włącz ciemny motyw",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Ciemny motyw łagodny dla Twoich oczów, redukując ogólną luminancję i jasność.",
"System default theme" : "Domyślny motyw systemu",
"Enable the system default" : "Włącz domyślne ustawienia systemu",
"Using the default system appearance." : "Korzystanie z domyślnego wyglądu systemu.",
diff --git a/apps/theming/l10n/pl.json b/apps/theming/l10n/pl.json
index 321ae0e54cc..bc78f82c88a 100644
--- a/apps/theming/l10n/pl.json
+++ b/apps/theming/l10n/pl.json
@@ -30,6 +30,7 @@
"Similar to the high contrast mode, but with dark colours." : "Podobny do trybu wysokiego kontrastu, ale z ciemnymi kolorami.",
"Dark theme" : "Ciemny motyw",
"Enable dark theme" : "Włącz ciemny motyw",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Ciemny motyw łagodny dla Twoich oczów, redukując ogólną luminancję i jasność.",
"System default theme" : "Domyślny motyw systemu",
"Enable the system default" : "Włącz domyślne ustawienia systemu",
"Using the default system appearance." : "Korzystanie z domyślnego wyglądu systemu.",
diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js
index e964154cc2a..d0e48386b13 100644
--- a/apps/theming/l10n/pt_BR.js
+++ b/apps/theming/l10n/pt_BR.js
@@ -26,19 +26,31 @@ OC.L10N.register(
"No file uploaded" : "Nenhum arquivo enviado",
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Você já está usando um tema personalizado. As configurações do aplicativo Theming podem ser sobrescritas por isso.",
"Theming" : "Personalização",
+ "Appearance and accessibility" : "Aparência e acessibilidade",
+ "Dark theme with high contrast mode" : "Tema escuro com modo de alto contraste",
+ "Enable dark high contrast mode" : "Ative o modo escuro de alto contraste",
+ "Similar to the high contrast mode, but with dark colours." : "Semelhante ao modo de alto contraste, mas com cores escuras.",
"Dark theme" : "Tema escuro",
"Enable dark theme" : "Enable dark theme",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Um tema escuro para aliviar seus olhos, reduzindo a luminosidade e o brilho gerais.",
+ "System default theme" : "Tema padrão do sistema",
+ "Enable the system default" : "Ativar o padrão do sistema",
+ "Using the default system appearance." : "Usando a aparência padrão do sistema.",
"Dyslexia font" : "Fonte de dislexia",
"Enable dyslexia font" : "Ativar fonte dislexia",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic é um tipo de letra/fonte grátis concebida para atenuar alguns dos erros comuns de leitura causados pela dislexia.",
"High contrast mode" : "Modo de alto contraste",
"Enable high contrast mode" : "Ativar modo de alto contraste",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "O modo de alto contraste facilita a navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
+ "Light theme" : "Tema claro",
+ "Enable the default light theme" : "Ative o tema de luz padrão",
+ "The default light appearance." : "A aparência de luz padrão.",
"Legal notice" : "Aviso legal",
"Privacy policy" : "Política de privacidade",
"Adjust the Nextcloud theme" : "Ajustar o tema do Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e nos certificamos de tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em reportá-lo no {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se à {designteam}nossa equipe de design{linkend}!",
+ "Theme selection is enforced" : "A seleção do tema é aplicada",
"Open documentation" : "Abrir documentação",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Criar e alterar temas torna possível personalizar facilmente o Nextcloud e clientes suportados. Isso será visível para todos os usuários.",
"Name" : "Nome",
diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json
index 09f6fa3560d..f9e09bd00a3 100644
--- a/apps/theming/l10n/pt_BR.json
+++ b/apps/theming/l10n/pt_BR.json
@@ -24,19 +24,31 @@
"No file uploaded" : "Nenhum arquivo enviado",
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Você já está usando um tema personalizado. As configurações do aplicativo Theming podem ser sobrescritas por isso.",
"Theming" : "Personalização",
+ "Appearance and accessibility" : "Aparência e acessibilidade",
+ "Dark theme with high contrast mode" : "Tema escuro com modo de alto contraste",
+ "Enable dark high contrast mode" : "Ative o modo escuro de alto contraste",
+ "Similar to the high contrast mode, but with dark colours." : "Semelhante ao modo de alto contraste, mas com cores escuras.",
"Dark theme" : "Tema escuro",
"Enable dark theme" : "Enable dark theme",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Um tema escuro para aliviar seus olhos, reduzindo a luminosidade e o brilho gerais.",
+ "System default theme" : "Tema padrão do sistema",
+ "Enable the system default" : "Ativar o padrão do sistema",
+ "Using the default system appearance." : "Usando a aparência padrão do sistema.",
"Dyslexia font" : "Fonte de dislexia",
"Enable dyslexia font" : "Ativar fonte dislexia",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic é um tipo de letra/fonte grátis concebida para atenuar alguns dos erros comuns de leitura causados pela dislexia.",
"High contrast mode" : "Modo de alto contraste",
"Enable high contrast mode" : "Ativar modo de alto contraste",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "O modo de alto contraste facilita a navegação. A qualidade visual será reduzida, mas a clareza será aumentada.",
+ "Light theme" : "Tema claro",
+ "Enable the default light theme" : "Ative o tema de luz padrão",
+ "The default light appearance." : "A aparência de luz padrão.",
"Legal notice" : "Aviso legal",
"Privacy policy" : "Política de privacidade",
"Adjust the Nextcloud theme" : "Ajustar o tema do Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "O acesso universal é muito importante para nós. Seguimos os padrões da web e nos certificamos de tornar tudo utilizável também sem mouse e software auxiliar, como leitores de tela. Nosso objetivo é estar em conformidade com as {guidelines}Diretrizes de Acessibilidade para Conteúdo da Web{linkend} 2.1 no nível AA, com o tema de alto contraste, mesmo no nível AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Se você encontrar algum problema, não hesite em reportá-lo no {issuetracker}nosso rastreador de problemas{linkend}. E se você quiser se envolver, junte-se à {designteam}nossa equipe de design{linkend}!",
+ "Theme selection is enforced" : "A seleção do tema é aplicada",
"Open documentation" : "Abrir documentação",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Criar e alterar temas torna possível personalizar facilmente o Nextcloud e clientes suportados. Isso será visível para todos os usuários.",
"Name" : "Nome",
diff --git a/apps/theming/l10n/ru.js b/apps/theming/l10n/ru.js
index 2c25d62955d..a686be8f722 100644
--- a/apps/theming/l10n/ru.js
+++ b/apps/theming/l10n/ru.js
@@ -26,6 +26,7 @@ OC.L10N.register(
"No file uploaded" : "Нет загруженных файлов",
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Вы уже используете настраиваемое оформление, которое может быть перезаписано этим приложением.",
"Theming" : "Внешний вид",
+ "Appearance and accessibility" : "Внешний вид и доступность",
"Dark theme" : "Тёмное оформление",
"Enable dark theme" : "Использовать тёмное оформление",
"Dyslexia font" : "Шрифт Dyslexia",
@@ -54,7 +55,7 @@ OC.L10N.register(
"Remove background image" : "Убрать фоновое изображение ",
"Advanced options" : "Дополнительные параметры",
"Legal notice link" : "Ссылка на официальное уведомление",
- "Privacy policy link" : "Ссылка на политику конфеденциальности",
+ "Privacy policy link" : "Ссылка на политику конфиденциальности",
"Header logo" : "Логотип заголовка",
"Upload new header logo" : "Загрузить логотип заголовка",
"Favicon" : "Favicon (значок сайта)",
diff --git a/apps/theming/l10n/ru.json b/apps/theming/l10n/ru.json
index 36cd7becdd1..f2b84652f2e 100644
--- a/apps/theming/l10n/ru.json
+++ b/apps/theming/l10n/ru.json
@@ -24,6 +24,7 @@
"No file uploaded" : "Нет загруженных файлов",
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Вы уже используете настраиваемое оформление, которое может быть перезаписано этим приложением.",
"Theming" : "Внешний вид",
+ "Appearance and accessibility" : "Внешний вид и доступность",
"Dark theme" : "Тёмное оформление",
"Enable dark theme" : "Использовать тёмное оформление",
"Dyslexia font" : "Шрифт Dyslexia",
@@ -52,7 +53,7 @@
"Remove background image" : "Убрать фоновое изображение ",
"Advanced options" : "Дополнительные параметры",
"Legal notice link" : "Ссылка на официальное уведомление",
- "Privacy policy link" : "Ссылка на политику конфеденциальности",
+ "Privacy policy link" : "Ссылка на политику конфиденциальности",
"Header logo" : "Логотип заголовка",
"Upload new header logo" : "Загрузить логотип заголовка",
"Favicon" : "Favicon (значок сайта)",
diff --git a/apps/theming/l10n/sk.js b/apps/theming/l10n/sk.js
index 39dad974b6b..f34e4eee2e8 100644
--- a/apps/theming/l10n/sk.js
+++ b/apps/theming/l10n/sk.js
@@ -26,8 +26,13 @@ OC.L10N.register(
"No file uploaded" : "Žiadny súbor nebol nahraný",
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Už používate vlastný motív vzhľadu. Predošlé nastavenia tým môžu byť prepísané.",
"Theming" : "Zmena vzhľadu",
+ "Appearance and accessibility" : "Vzhľad a správanie",
+ "Dark theme with high contrast mode" : "Tmavá téma s vysokým kontrastom",
+ "Enable dark high contrast mode" : "Zapnúť režim vysokého kontrastu",
"Dark theme" : "Tmavý motív vzhľadu",
"Enable dark theme" : "Zapnúť tmavý motív vzhľadu",
+ "System default theme" : "Predvolený vzhľad systému",
+ "Enable the system default" : "Povoliť systémové nastavenia",
"Dyslexia font" : "Písmo pre dyslektikov",
"Enable dyslexia font" : "Povoliť písmo pre dyslektikov",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic je slobodný typ písma navrhnutý priamo pre obmedzenie vplyvu niektorých bežných porúch čítania spôsobených dyslexiou.",
diff --git a/apps/theming/l10n/sk.json b/apps/theming/l10n/sk.json
index 74083abb897..c570c177ec2 100644
--- a/apps/theming/l10n/sk.json
+++ b/apps/theming/l10n/sk.json
@@ -24,8 +24,13 @@
"No file uploaded" : "Žiadny súbor nebol nahraný",
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Už používate vlastný motív vzhľadu. Predošlé nastavenia tým môžu byť prepísané.",
"Theming" : "Zmena vzhľadu",
+ "Appearance and accessibility" : "Vzhľad a správanie",
+ "Dark theme with high contrast mode" : "Tmavá téma s vysokým kontrastom",
+ "Enable dark high contrast mode" : "Zapnúť režim vysokého kontrastu",
"Dark theme" : "Tmavý motív vzhľadu",
"Enable dark theme" : "Zapnúť tmavý motív vzhľadu",
+ "System default theme" : "Predvolený vzhľad systému",
+ "Enable the system default" : "Povoliť systémové nastavenia",
"Dyslexia font" : "Písmo pre dyslektikov",
"Enable dyslexia font" : "Povoliť písmo pre dyslektikov",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic je slobodný typ písma navrhnutý priamo pre obmedzenie vplyvu niektorých bežných porúch čítania spôsobených dyslexiou.",
diff --git a/apps/theming/l10n/tr.js b/apps/theming/l10n/tr.js
index a7ae3064393..973d73b74d2 100644
--- a/apps/theming/l10n/tr.js
+++ b/apps/theming/l10n/tr.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"Similar to the high contrast mode, but with dark colours." : "Yüksek renk karşıtlığı kipine benzer ancak koyu renkleri kullanır.",
"Dark theme" : "Koyu tema",
"Enable dark theme" : "Koyu tema kullanılsın",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Koyu tema genel aydınlık ve parlaklığı azaltarak gözlerinizi dinlendirir.",
"System default theme" : "Varsayılan sistem teması",
"Enable the system default" : "Sistem varsayılanı kullanılsın",
"Using the default system appearance." : "Varsayılan sistem görünümü kullanılıyor.",
diff --git a/apps/theming/l10n/tr.json b/apps/theming/l10n/tr.json
index 893a17e79ed..1bc038de986 100644
--- a/apps/theming/l10n/tr.json
+++ b/apps/theming/l10n/tr.json
@@ -30,6 +30,7 @@
"Similar to the high contrast mode, but with dark colours." : "Yüksek renk karşıtlığı kipine benzer ancak koyu renkleri kullanır.",
"Dark theme" : "Koyu tema",
"Enable dark theme" : "Koyu tema kullanılsın",
+ "A dark theme to ease your eyes by reducing the overall luminosity and brightness." : "Koyu tema genel aydınlık ve parlaklığı azaltarak gözlerinizi dinlendirir.",
"System default theme" : "Varsayılan sistem teması",
"Enable the system default" : "Sistem varsayılanı kullanılsın",
"Using the default system appearance." : "Varsayılan sistem görünümü kullanılıyor.",
diff --git a/apps/theming/lib/Themes/DefaultTheme.php b/apps/theming/lib/Themes/DefaultTheme.php
index a98d9099d95..58983d29df1 100644
--- a/apps/theming/lib/Themes/DefaultTheme.php
+++ b/apps/theming/lib/Themes/DefaultTheme.php
@@ -88,6 +88,7 @@ class DefaultTheme implements ITheme {
$colorMainBackgroundRGB = join(',', $this->util->hexToRGB($colorMainBackground));
$colorBoxShadow = $this->util->darken($colorMainBackground, 70);
$colorBoxShadowRGB = join(',', $this->util->hexToRGB($colorBoxShadow));
+ $colorPrimaryLight = $this->util->mix($this->primaryColor, $colorMainBackground, -80);
$hasCustomLogoHeader = $this->imageManager->hasImage('logo') || $this->imageManager->hasImage('logoheader');
@@ -111,15 +112,17 @@ class DefaultTheme implements ITheme {
'--color-primary' => $this->primaryColor,
'--color-primary-text' => $this->util->invertTextColor($this->primaryColor) ? '#000000' : '#ffffff',
'--color-primary-hover' => $this->util->mix($this->primaryColor, $colorMainBackground, 60),
- '--color-primary-light' => $this->util->mix($this->primaryColor, $colorMainBackground, -80),
+ '--color-primary-light' => $colorPrimaryLight,
'--color-primary-light-text' => $this->primaryColor,
- '--color-primary-light-hover' => $this->util->mix($this->primaryColor, $colorMainText, -80),
+ '--color-primary-light-hover' => $this->util->mix($colorPrimaryLight, $colorMainText, 90),
'--color-primary-text-dark' => $this->util->darken($this->util->invertTextColor($this->primaryColor) ? '#000000' : '#ffffff', 7),
// used for buttons, inputs...
'--color-primary-element' => $this->util->elementColor($this->primaryColor),
'--color-primary-element-hover' => $this->util->mix($this->util->elementColor($this->primaryColor), $colorMainBackground, 80),
'--color-primary-element-light' => $this->util->lighten($this->util->elementColor($this->primaryColor), 15),
'--color-primary-element-lighter' => $this->util->mix($this->util->elementColor($this->primaryColor), $colorMainBackground, -70),
+ // to use like this: background-image: var(--gradient-primary-background);
+ '--gradient-primary-background' => 'linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-element-light) 100%)',
// max contrast for WCAG compliance
'--color-main-text' => $colorMainText,
diff --git a/apps/theming/src/UserThemes.vue b/apps/theming/src/UserThemes.vue
index 5128e2c6c8d..ee514f049a5 100644
--- a/apps/theming/src/UserThemes.vue
+++ b/apps/theming/src/UserThemes.vue
@@ -100,13 +100,12 @@ export default {
this.themes.forEach(theme => {
if (theme.id === id && enabled) {
theme.enabled = true
- document.body.setAttribute(`data-theme-${theme.id}`, true)
return
}
theme.enabled = false
- document.body.removeAttribute(`data-theme-${theme.id}`)
})
+ this.updateBodyAttributes()
this.selectItem(enabled, id)
},
changeFont({ enabled, id }) {
@@ -114,16 +113,24 @@ export default {
this.fonts.forEach(font => {
if (font.id === id && enabled) {
font.enabled = true
- document.body.setAttribute(`data-theme-${font.id}`, true)
return
}
font.enabled = false
- document.body.removeAttribute(`data-theme-${font.id}`)
})
+ this.updateBodyAttributes()
this.selectItem(enabled, id)
},
+ updateBodyAttributes() {
+ const enabledThemesIDs = this.themes.filter(theme => theme.enabled === true).map(theme => theme.id)
+ this.themes.forEach(theme => {
+ document.body.toggleAttribute(`data-theme-${theme.id}`, theme.enabled)
+ })
+
+ document.body.setAttribute('data-themes', enabledThemesIDs.join(','))
+ },
+
/**
* Commit a change and force reload css
* Fetching the file again will trigger the server update
diff --git a/apps/updatenotification/src/components/UpdateNotification.vue b/apps/updatenotification/src/components/UpdateNotification.vue
index 6fc48978852..5039ac22bb7 100644
--- a/apps/updatenotification/src/components/UpdateNotification.vue
+++ b/apps/updatenotification/src/components/UpdateNotification.vue
@@ -539,7 +539,7 @@ export default {
/* override needed to replace yellow hover state with a dark one */
#updatenotification .update-menu .icon-star:hover,
#updatenotification .update-menu .icon-star:focus {
- background-image: var(--icon-star-000);
+ background-image: var(--icon-starred);
}
#updatenotification .topMargin {
margin-top: 15px;
diff --git a/apps/user_ldap/l10n/bg.js b/apps/user_ldap/l10n/bg.js
index 2bf776e3e03..a1b8c4906c2 100644
--- a/apps/user_ldap/l10n/bg.js
+++ b/apps/user_ldap/l10n/bg.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "„$home“ Заместващо поле",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home в конфигурация за външно хранилище ще бъде заменен със стойността на посочения атрибут",
"Internal Username" : "Вътрешно потребителско име",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По подразбиране вътрешното име на потребител ще бъде създадено от атрибута UUID. Той гарантира, че името на потребител е уникално и знаците не трябва да се преобразуват. Вътрешното име на потребител има ограничението, че са позволени само тези знаци: [a-zA-Z0-9_.@-]. Други знаци се заменят с тяхното ASCII съответствие или просто се пропускат. При сблъсъци числото ще бъде добавено/увеличено. Вътрешното име на потребител се използва за вътрешно идентифициране на потребител. Това също е името по подразбиране за домашната папка на потребителя. Той също така е част от отдалечени URL адреси, например за всички *DAV услуги. С тази настройка поведението по подразбиране може да бъде отменено. Промените ще имат ефект само върху ново съпоставени (добавени) потребители на LDAP. Оставете го празно за поведение по подразбиране. ",
"Internal Username Attribute:" : "Атрибут на вътрешното потребителско име:",
"Override UUID detection" : "Промени UUID откриването",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Обикновено UUID атрибутът ще бъде намерен автоматично. UUID атрибута се използва, за да се идентифицират еднозначно LDAP потребители и групи. Освен това ще бъде генерирано вътрешното име базирано на UUID-то, ако такова не е посочено по-горе. Можете да промените настройката и да използвате атрибут по свой избор. Наложително е атрибутът да бъде уникален както за потребителите така и за групите. Промените ще се отразят само за новодобавени (map-нати) LDAP потребители.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Име на потребител-LDAP Потребителско съпоставяне ",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Потребителските имена се използват за съхраняване и присвояване на метаданни. С цел точно идентифициране и разпознаване на потребителите, всеки потребител на LDAP ще има вътрешно име на потребител. Това изисква съпоставяне от име на потребител към потребител на LDAP. Създаденото име на потребител се съпоставя с UUID на потребителя на LDAP. Освен това DN се кешира, за да се намали взаимодействието с LDAP, но не се използва за идентификация. Ако DN се промени, промените ще бъдат намерени. Вътрешното име на потребител се използва навсякъде. Изчистването на съпоставянията ще има остатъци навсякъде. Изчистването на съпоставянията не е чувствително към конфигурацията, засяга всички LDAP конфигурации! Никога не изчиствайте съпоставянията в производствена среда, само в тестов или експериментален етап.",
"Clear Username-LDAP User Mapping" : "Изчистване на име на потребител-LDAP Потребителско съпоставяне ",
- "Clear Groupname-LDAP Group Mapping" : "Изчистване на име на група-LDAP Потребителско съпоставяне "
+ "Clear Groupname-LDAP Group Mapping" : "Изчистване на име на група-LDAP Потребителско съпоставяне ",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По подразбиране вътрешното име на потребител ще бъде създадено от атрибута UUID. Той гарантира, че името на потребител е уникално и знаците не трябва да се преобразуват. Вътрешното име на потребител има ограничението, че са позволени само тези знаци: [a-zA-Z0-9_.@-]. Други знаци се заменят с тяхното ASCII съответствие или просто се пропускат. При сблъсъци числото ще бъде добавено/увеличено. Вътрешното име на потребител се използва за вътрешно идентифициране на потребител. Това също е името по подразбиране за домашната папка на потребителя. Той също така е част от отдалечени URL адреси, например за всички *DAV услуги. С тази настройка поведението по подразбиране може да бъде отменено. Промените ще имат ефект само върху ново съпоставени (добавени) потребители на LDAP. Оставете го празно за поведение по подразбиране. "
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/bg.json b/apps/user_ldap/l10n/bg.json
index 7124cf0b171..12cf955c14c 100644
--- a/apps/user_ldap/l10n/bg.json
+++ b/apps/user_ldap/l10n/bg.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "„$home“ Заместващо поле",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home в конфигурация за външно хранилище ще бъде заменен със стойността на посочения атрибут",
"Internal Username" : "Вътрешно потребителско име",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По подразбиране вътрешното име на потребител ще бъде създадено от атрибута UUID. Той гарантира, че името на потребител е уникално и знаците не трябва да се преобразуват. Вътрешното име на потребител има ограничението, че са позволени само тези знаци: [a-zA-Z0-9_.@-]. Други знаци се заменят с тяхното ASCII съответствие или просто се пропускат. При сблъсъци числото ще бъде добавено/увеличено. Вътрешното име на потребител се използва за вътрешно идентифициране на потребител. Това също е името по подразбиране за домашната папка на потребителя. Той също така е част от отдалечени URL адреси, например за всички *DAV услуги. С тази настройка поведението по подразбиране може да бъде отменено. Промените ще имат ефект само върху ново съпоставени (добавени) потребители на LDAP. Оставете го празно за поведение по подразбиране. ",
"Internal Username Attribute:" : "Атрибут на вътрешното потребителско име:",
"Override UUID detection" : "Промени UUID откриването",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Обикновено UUID атрибутът ще бъде намерен автоматично. UUID атрибута се използва, за да се идентифицират еднозначно LDAP потребители и групи. Освен това ще бъде генерирано вътрешното име базирано на UUID-то, ако такова не е посочено по-горе. Можете да промените настройката и да използвате атрибут по свой избор. Наложително е атрибутът да бъде уникален както за потребителите така и за групите. Промените ще се отразят само за новодобавени (map-нати) LDAP потребители.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Име на потребител-LDAP Потребителско съпоставяне ",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Потребителските имена се използват за съхраняване и присвояване на метаданни. С цел точно идентифициране и разпознаване на потребителите, всеки потребител на LDAP ще има вътрешно име на потребител. Това изисква съпоставяне от име на потребител към потребител на LDAP. Създаденото име на потребител се съпоставя с UUID на потребителя на LDAP. Освен това DN се кешира, за да се намали взаимодействието с LDAP, но не се използва за идентификация. Ако DN се промени, промените ще бъдат намерени. Вътрешното име на потребител се използва навсякъде. Изчистването на съпоставянията ще има остатъци навсякъде. Изчистването на съпоставянията не е чувствително към конфигурацията, засяга всички LDAP конфигурации! Никога не изчиствайте съпоставянията в производствена среда, само в тестов или експериментален етап.",
"Clear Username-LDAP User Mapping" : "Изчистване на име на потребител-LDAP Потребителско съпоставяне ",
- "Clear Groupname-LDAP Group Mapping" : "Изчистване на име на група-LDAP Потребителско съпоставяне "
+ "Clear Groupname-LDAP Group Mapping" : "Изчистване на име на група-LDAP Потребителско съпоставяне ",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По подразбиране вътрешното име на потребител ще бъде създадено от атрибута UUID. Той гарантира, че името на потребител е уникално и знаците не трябва да се преобразуват. Вътрешното име на потребител има ограничението, че са позволени само тези знаци: [a-zA-Z0-9_.@-]. Други знаци се заменят с тяхното ASCII съответствие или просто се пропускат. При сблъсъци числото ще бъде добавено/увеличено. Вътрешното име на потребител се използва за вътрешно идентифициране на потребител. Това също е името по подразбиране за домашната папка на потребителя. Той също така е част от отдалечени URL адреси, например за всички *DAV услуги. С тази настройка поведението по подразбиране може да бъде отменено. Промените ще имат ефект само върху ново съпоставени (добавени) потребители на LDAP. Оставете го празно за поведение по подразбиране. "
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js
index e36af01cfc4..183f8494c20 100644
--- a/apps/user_ldap/l10n/cs.js
+++ b/apps/user_ldap/l10n/cs.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Výplňová kolonka „$home“",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home bude v nastavení externího úložiště nahrazeno hodnotou zadaného atributu",
"Internal Username" : "Interní uživatelské jméno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Ve výchozím nastavení bude interní uživatelské jméno vytvořeno z atributu UUID. To zajišťuje, že je uživatelské jméno unikátní a znaky nemusí být převáděny. Interní uživatelské jméno má omezení, podle kterého jsou povoleny jen následující znaky [ a-zA-Z0-9_.@- ]. Ostatní znaky jsou nahrazeny jejich protějšky z ASCII nebo prostě vynechány. Při konfliktech bude přidáno/zvýšeno číslo. Interní uživatelské jméno slouží pro interní identifikaci uživatele. Je také výchozím názvem domovského adresáře uživatele. Je také součástí URL, např. pro služby *DAV. Tímto nastavením může být výchozí chování změněno. Změny se projeví pouze u nově namapovaných (přidaných) uživatelů LDAP. Ponechte ho prázdné, pokud chcete zachovat výchozí nastavení. ",
"Internal Username Attribute:" : "Atribut interního uživatelského jména:",
"Override UUID detection" : "Nastavit ručně UUID atribut",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Ve výchozím nastavení je UUID atribut nalezen automaticky. UUID atribut je používán pro nezpochybnitelnou identifikaci uživatelů a skupin z LDAP. Navíc je na základě UUID tvořeno také interní uživatelské jméno, pokud není nastaveno jinak. Můžete výchozí nastavení přepsat a použít atribut, který sami zvolíte. Musíte se ale ujistit, že atribut, který vyberete, bude uveden jak u uživatelů, tak i u skupin a je unikátní. Ponechte prázdné pro výchozí chování. Změna bude mít vliv jen na nově namapované (přidané) uživatele a skupiny z LDAP.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Mapování uživatelských jmen z LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména slouží k ukládání a přiřazování metadat. Pro přesnou identifikaci a rozpoznávání uživatelů, každý LDAP uživatel má vnitřní uživatelské jméno. Toto vyžaduje mapování uživatelského jména na LDAP uživatele. Krom toho je uložen do mezipaměti rozlišený název aby se omezila interakce s LDAP, ale není používáno pro identifikaci. Pokud se DN změní, změny budou nalezeny. Vnitřní uživatelské jméno bude použito nade všechno. Čištění mapování bude mít pozůstatky všude. Čištění mapování není citlivé na nastavení, postihuje všechny LDAP nastavení. Nikdy nečistěte mapování v produkčním prostředí, pouze v testovací nebo experimentální fázi.",
"Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu",
- "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu"
+ "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Ve výchozím nastavení bude interní uživatelské jméno vytvořeno z atributu UUID. To zajišťuje, že je uživatelské jméno unikátní a znaky nemusí být převáděny. Interní uživatelské jméno má omezení, podle kterého jsou povoleny jen následující znaky [ a-zA-Z0-9_.@- ]. Ostatní znaky jsou nahrazeny jejich protějšky z ASCII nebo prostě vynechány. Při konfliktech bude přidáno/zvýšeno číslo. Interní uživatelské jméno slouží pro interní identifikaci uživatele. Je také výchozím názvem domovského adresáře uživatele. Je také součástí URL, např. pro služby *DAV. Tímto nastavením může být výchozí chování změněno. Změny se projeví pouze u nově namapovaných (přidaných) uživatelů LDAP. Ponechte ho prázdné, pokud chcete zachovat výchozí nastavení. "
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json
index b5191689c99..7fa06cc885a 100644
--- a/apps/user_ldap/l10n/cs.json
+++ b/apps/user_ldap/l10n/cs.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Výplňová kolonka „$home“",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home bude v nastavení externího úložiště nahrazeno hodnotou zadaného atributu",
"Internal Username" : "Interní uživatelské jméno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Ve výchozím nastavení bude interní uživatelské jméno vytvořeno z atributu UUID. To zajišťuje, že je uživatelské jméno unikátní a znaky nemusí být převáděny. Interní uživatelské jméno má omezení, podle kterého jsou povoleny jen následující znaky [ a-zA-Z0-9_.@- ]. Ostatní znaky jsou nahrazeny jejich protějšky z ASCII nebo prostě vynechány. Při konfliktech bude přidáno/zvýšeno číslo. Interní uživatelské jméno slouží pro interní identifikaci uživatele. Je také výchozím názvem domovského adresáře uživatele. Je také součástí URL, např. pro služby *DAV. Tímto nastavením může být výchozí chování změněno. Změny se projeví pouze u nově namapovaných (přidaných) uživatelů LDAP. Ponechte ho prázdné, pokud chcete zachovat výchozí nastavení. ",
"Internal Username Attribute:" : "Atribut interního uživatelského jména:",
"Override UUID detection" : "Nastavit ručně UUID atribut",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Ve výchozím nastavení je UUID atribut nalezen automaticky. UUID atribut je používán pro nezpochybnitelnou identifikaci uživatelů a skupin z LDAP. Navíc je na základě UUID tvořeno také interní uživatelské jméno, pokud není nastaveno jinak. Můžete výchozí nastavení přepsat a použít atribut, který sami zvolíte. Musíte se ale ujistit, že atribut, který vyberete, bude uveden jak u uživatelů, tak i u skupin a je unikátní. Ponechte prázdné pro výchozí chování. Změna bude mít vliv jen na nově namapované (přidané) uživatele a skupiny z LDAP.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Mapování uživatelských jmen z LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména slouží k ukládání a přiřazování metadat. Pro přesnou identifikaci a rozpoznávání uživatelů, každý LDAP uživatel má vnitřní uživatelské jméno. Toto vyžaduje mapování uživatelského jména na LDAP uživatele. Krom toho je uložen do mezipaměti rozlišený název aby se omezila interakce s LDAP, ale není používáno pro identifikaci. Pokud se DN změní, změny budou nalezeny. Vnitřní uživatelské jméno bude použito nade všechno. Čištění mapování bude mít pozůstatky všude. Čištění mapování není citlivé na nastavení, postihuje všechny LDAP nastavení. Nikdy nečistěte mapování v produkčním prostředí, pouze v testovací nebo experimentální fázi.",
"Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu",
- "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu"
+ "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Ve výchozím nastavení bude interní uživatelské jméno vytvořeno z atributu UUID. To zajišťuje, že je uživatelské jméno unikátní a znaky nemusí být převáděny. Interní uživatelské jméno má omezení, podle kterého jsou povoleny jen následující znaky [ a-zA-Z0-9_.@- ]. Ostatní znaky jsou nahrazeny jejich protějšky z ASCII nebo prostě vynechány. Při konfliktech bude přidáno/zvýšeno číslo. Interní uživatelské jméno slouží pro interní identifikaci uživatele. Je také výchozím názvem domovského adresáře uživatele. Je také součástí URL, např. pro služby *DAV. Tímto nastavením může být výchozí chování změněno. Změny se projeví pouze u nově namapovaných (přidaných) uživatelů LDAP. Ponechte ho prázdné, pokud chcete zachovat výchozí nastavení. "
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js
index 9f62953bc83..083809ef2b3 100644
--- a/apps/user_ldap/l10n/de.js
+++ b/apps/user_ldap/l10n/de.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Platzhalter-Feld",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in der Konfiguration eines extern angeschlossenen Speichers wird mit dem Wert des angegebenen Attributs ersetzt",
"Internal Username" : "Interner Benutzername",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lasse das Eingabefeld leer.",
"Internal Username Attribute:" : "Attribut für interne Benutzernamen:",
"Override UUID detection" : "UUID-Erkennung überschreiben",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Es muss allerdings sichergestellt werden, dass die gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Freilassen, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu »gemappte« (hinzugefügte) LDAP-Benutzer und -Gruppen aus.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um Metadaten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.",
"Clear Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung löschen",
- "Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen"
+ "Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lasse das Eingabefeld leer."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json
index 69aff22b52e..bde16ec3667 100644
--- a/apps/user_ldap/l10n/de.json
+++ b/apps/user_ldap/l10n/de.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Platzhalter-Feld",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in der Konfiguration eines extern angeschlossenen Speichers wird mit dem Wert des angegebenen Attributs ersetzt",
"Internal Username" : "Interner Benutzername",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lasse das Eingabefeld leer.",
"Internal Username Attribute:" : "Attribut für interne Benutzernamen:",
"Override UUID detection" : "UUID-Erkennung überschreiben",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Es muss allerdings sichergestellt werden, dass die gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Freilassen, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu »gemappte« (hinzugefügte) LDAP-Benutzer und -Gruppen aus.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um Metadaten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.",
"Clear Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung löschen",
- "Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen"
+ "Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lasse das Eingabefeld leer."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js
index 0234a8bfd3a..da117ed3483 100644
--- a/apps/user_ldap/l10n/de_DE.js
+++ b/apps/user_ldap/l10n/de_DE.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Platzhalter-Feld",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in der Konfiguration eines extern angeschlossenen Speichers wird mit dem Wert des angegebenen Attributs ersetzt",
"Internal Username" : "Interner Benutzername",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lassen Sie das Eingabefeld leer.",
"Internal Username Attribute:" : "Interne Eigenschaften des Benutzers:",
"Override UUID detection" : "UUID-Erkennung überschreiben",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Sie müssen allerdings sicherstellen, dass Ihre gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Lassen Sie es frei, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer und -Gruppen aus.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von Metadaten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung.",
"Clear Username-LDAP User Mapping" : "Lösche LDAP-Benutzernamenzuordnung",
- "Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung"
+ "Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lassen Sie das Eingabefeld leer."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json
index 6d172cecc16..bfd406a89f3 100644
--- a/apps/user_ldap/l10n/de_DE.json
+++ b/apps/user_ldap/l10n/de_DE.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Platzhalter-Feld",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in der Konfiguration eines extern angeschlossenen Speichers wird mit dem Wert des angegebenen Attributs ersetzt",
"Internal Username" : "Interner Benutzername",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lassen Sie das Eingabefeld leer.",
"Internal Username Attribute:" : "Interne Eigenschaften des Benutzers:",
"Override UUID detection" : "UUID-Erkennung überschreiben",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Sie müssen allerdings sicherstellen, dass Ihre gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Lassen Sie es frei, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer und -Gruppen aus.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von Metadaten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung.",
"Clear Username-LDAP User Mapping" : "Lösche LDAP-Benutzernamenzuordnung",
- "Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung"
+ "Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standardmäßig wird der interne Benutzername aus dem UUID-Attribut erstellt. So wird sichergestellt, dass der Benutzername einmalig ist und Zeichen nicht konvertiert werden müssen. Für den internen Benutzernamen sind nur folgende Zeichen zulässig: [a-zA-Z0-9_.@-]. Andere Zeichen werden durch ihre ASCII-Entsprechung ersetzt oder einfach weggelassen. Bei Kollisionen wird eine Nummer hinzugefügt/erhöht. Der interne Benutzername wird verwendet, um den Benutzer intern zu identifizieren. Er ist außerdem der Standardname für den Stamm-Ordner des Benutzers. Darüber hinaus ist er Teil der URLs für den Zugriff, zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten geändert werden. Änderungen wirken sich nur auf neu eingetragene (hinzugefügte) LDAP-Benutzer aus. Für die Standardeinstellung lassen Sie das Eingabefeld leer."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js
index c452e30a2ba..3995cb5f500 100644
--- a/apps/user_ldap/l10n/el.js
+++ b/apps/user_ldap/l10n/el.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Πεδίο Δέσμευσης",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Το $home σε μια ρύθμιση εξωτερικού χώρου αποθήκευσης θα αντικατασταθεί με την τιμή του καθορισμένου χαρακτηριστικού",
"Internal Username" : "Εσωτερικό Όνομα Χρήστη",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Το εσωτερικό όνομα χρήστη θα δημιουργηθεί από το UUID γνώρισμα από προεπιλογή. Αυτό εξασφαλίζει ότι το όνομα χρήστη είναι μοναδικό και οι χαρακτήρες δεν χρειάζεται να τροποποιηθούν. Το εσωτερικό όνομα χρήστη έχει τον περιορισμό της χρήσης μόνο των συγκεκριμένων χαρακτήρων: [a-zA-Z0-9_.@-]. Άλλοι χαρακτήρες αντικαθίστανται με τις ASCII αντιστοιχίες τους ή απλά απορρίπτονται. Σε περίπτωση σύγκρουσης ένας αριθμός θα προστεθεί/αυξηθεί. Το εσωτερικό όνομα χρήστη χρησιμοποιείται για την αναγνώριση ενός χρήστη εσωτερικά. Είναι επίσης το προεπιλεγμένο όνομα για τον φάκελο αρχικής του χρήστη. Είναι επιπλέον ένα μέρος απομακρυσμένων συνδέσμων, για παράδειγμα για όλες τις *DAV υπηρεσίες. Με αυτή τη ρύθμιση, η προεπιλεγμένη συμπεριφορά μπορεί να παρακαμφθεί. Τυχόν αλλαγές θα έχουν επίδραση μόνο σε νέους χαρτογραφημένους (εισαχθέντες) LDAP χρήστες. Αφήστε το κενό για την προεπιλεγμένη συμπεριφορά.",
"Internal Username Attribute:" : "Ιδιότητα Εσωτερικού Ονόματος Χρήστη:",
"Override UUID detection" : "Παράκαμψη ανίχνευσης UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Από προεπιλογή, το χαρακτηριστικό UUID εντοπίζεται αυτόματα. Το χαρακτηριστικό UUID χρησιμοποιείται για την αναγνώριση χωρίς αμφιβολία χρηστών και ομάδων LDAP. Επίσης, το εσωτερικό όνομα χρήστη θα δημιουργηθεί με βάση το UUID, εφόσον δεν ορίζεται διαφορετικά ανωτέρω. Μπορείτε να παρακάμψετε τη ρύθμιση και να ορίσετε ένα χαρακτηριστικό της επιλογής σας. Θα πρέπει να βεβαιωθείτε ότι το χαρακτηριστικό της επιλογής σας μπορεί να ληφθεί για τους χρήστες και τις ομάδες και ότι είναι μοναδικό. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε πρόσφατα αντιστοιχισμένους (προστιθέμενους) χρήστες και ομάδες LDAP.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Αντιστοίχιση Χρηστών Όνομα Χρήστη-LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και την εκχώρηση μεταδεδομένων. Προκειμένου να εντοπιστούν και να αναγνωριστούν με ακρίβεια οι χρήστες, κάθε ένας του LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση από όνομα χρήστη σε χρήστη LDAP. Το τελικό όνομα χρήστη αντιστοιχίζεται στο UUID του χρήστη LDAP. Επιπλέον, αποθηκεύεται προσωρινά το DN για τη μείωση της αλληλεπίδρασης LDAP, αλλά δεν χρησιμοποιείται για αναγνώριση. Εάν αλλάξει το DN, οι αλλαγές θα βρεθούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα έχει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχιών δεν είναι ευαίσθητη στη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην εκκαθαρίζετε ποτέ τις αντιστοιχίσεις σε τρέχων σύστημα, μόνο σε δοκιμαστικό ή πειραματικό στάδιο.",
"Clear Username-LDAP User Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη",
- "Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας"
+ "Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Το εσωτερικό όνομα χρήστη θα δημιουργηθεί από το UUID γνώρισμα από προεπιλογή. Αυτό εξασφαλίζει ότι το όνομα χρήστη είναι μοναδικό και οι χαρακτήρες δεν χρειάζεται να τροποποιηθούν. Το εσωτερικό όνομα χρήστη έχει τον περιορισμό της χρήσης μόνο των συγκεκριμένων χαρακτήρων: [a-zA-Z0-9_.@-]. Άλλοι χαρακτήρες αντικαθίστανται με τις ASCII αντιστοιχίες τους ή απλά απορρίπτονται. Σε περίπτωση σύγκρουσης ένας αριθμός θα προστεθεί/αυξηθεί. Το εσωτερικό όνομα χρήστη χρησιμοποιείται για την αναγνώριση ενός χρήστη εσωτερικά. Είναι επίσης το προεπιλεγμένο όνομα για τον φάκελο αρχικής του χρήστη. Είναι επιπλέον ένα μέρος απομακρυσμένων συνδέσμων, για παράδειγμα για όλες τις *DAV υπηρεσίες. Με αυτή τη ρύθμιση, η προεπιλεγμένη συμπεριφορά μπορεί να παρακαμφθεί. Τυχόν αλλαγές θα έχουν επίδραση μόνο σε νέους χαρτογραφημένους (εισαχθέντες) LDAP χρήστες. Αφήστε το κενό για την προεπιλεγμένη συμπεριφορά."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json
index cacf41c0ac7..cd40904a2d4 100644
--- a/apps/user_ldap/l10n/el.json
+++ b/apps/user_ldap/l10n/el.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Πεδίο Δέσμευσης",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Το $home σε μια ρύθμιση εξωτερικού χώρου αποθήκευσης θα αντικατασταθεί με την τιμή του καθορισμένου χαρακτηριστικού",
"Internal Username" : "Εσωτερικό Όνομα Χρήστη",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Το εσωτερικό όνομα χρήστη θα δημιουργηθεί από το UUID γνώρισμα από προεπιλογή. Αυτό εξασφαλίζει ότι το όνομα χρήστη είναι μοναδικό και οι χαρακτήρες δεν χρειάζεται να τροποποιηθούν. Το εσωτερικό όνομα χρήστη έχει τον περιορισμό της χρήσης μόνο των συγκεκριμένων χαρακτήρων: [a-zA-Z0-9_.@-]. Άλλοι χαρακτήρες αντικαθίστανται με τις ASCII αντιστοιχίες τους ή απλά απορρίπτονται. Σε περίπτωση σύγκρουσης ένας αριθμός θα προστεθεί/αυξηθεί. Το εσωτερικό όνομα χρήστη χρησιμοποιείται για την αναγνώριση ενός χρήστη εσωτερικά. Είναι επίσης το προεπιλεγμένο όνομα για τον φάκελο αρχικής του χρήστη. Είναι επιπλέον ένα μέρος απομακρυσμένων συνδέσμων, για παράδειγμα για όλες τις *DAV υπηρεσίες. Με αυτή τη ρύθμιση, η προεπιλεγμένη συμπεριφορά μπορεί να παρακαμφθεί. Τυχόν αλλαγές θα έχουν επίδραση μόνο σε νέους χαρτογραφημένους (εισαχθέντες) LDAP χρήστες. Αφήστε το κενό για την προεπιλεγμένη συμπεριφορά.",
"Internal Username Attribute:" : "Ιδιότητα Εσωτερικού Ονόματος Χρήστη:",
"Override UUID detection" : "Παράκαμψη ανίχνευσης UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Από προεπιλογή, το χαρακτηριστικό UUID εντοπίζεται αυτόματα. Το χαρακτηριστικό UUID χρησιμοποιείται για την αναγνώριση χωρίς αμφιβολία χρηστών και ομάδων LDAP. Επίσης, το εσωτερικό όνομα χρήστη θα δημιουργηθεί με βάση το UUID, εφόσον δεν ορίζεται διαφορετικά ανωτέρω. Μπορείτε να παρακάμψετε τη ρύθμιση και να ορίσετε ένα χαρακτηριστικό της επιλογής σας. Θα πρέπει να βεβαιωθείτε ότι το χαρακτηριστικό της επιλογής σας μπορεί να ληφθεί για τους χρήστες και τις ομάδες και ότι είναι μοναδικό. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε πρόσφατα αντιστοιχισμένους (προστιθέμενους) χρήστες και ομάδες LDAP.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Αντιστοίχιση Χρηστών Όνομα Χρήστη-LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και την εκχώρηση μεταδεδομένων. Προκειμένου να εντοπιστούν και να αναγνωριστούν με ακρίβεια οι χρήστες, κάθε ένας του LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση από όνομα χρήστη σε χρήστη LDAP. Το τελικό όνομα χρήστη αντιστοιχίζεται στο UUID του χρήστη LDAP. Επιπλέον, αποθηκεύεται προσωρινά το DN για τη μείωση της αλληλεπίδρασης LDAP, αλλά δεν χρησιμοποιείται για αναγνώριση. Εάν αλλάξει το DN, οι αλλαγές θα βρεθούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα έχει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχιών δεν είναι ευαίσθητη στη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην εκκαθαρίζετε ποτέ τις αντιστοιχίσεις σε τρέχων σύστημα, μόνο σε δοκιμαστικό ή πειραματικό στάδιο.",
"Clear Username-LDAP User Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη",
- "Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας"
+ "Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Το εσωτερικό όνομα χρήστη θα δημιουργηθεί από το UUID γνώρισμα από προεπιλογή. Αυτό εξασφαλίζει ότι το όνομα χρήστη είναι μοναδικό και οι χαρακτήρες δεν χρειάζεται να τροποποιηθούν. Το εσωτερικό όνομα χρήστη έχει τον περιορισμό της χρήσης μόνο των συγκεκριμένων χαρακτήρων: [a-zA-Z0-9_.@-]. Άλλοι χαρακτήρες αντικαθίστανται με τις ASCII αντιστοιχίες τους ή απλά απορρίπτονται. Σε περίπτωση σύγκρουσης ένας αριθμός θα προστεθεί/αυξηθεί. Το εσωτερικό όνομα χρήστη χρησιμοποιείται για την αναγνώριση ενός χρήστη εσωτερικά. Είναι επίσης το προεπιλεγμένο όνομα για τον φάκελο αρχικής του χρήστη. Είναι επιπλέον ένα μέρος απομακρυσμένων συνδέσμων, για παράδειγμα για όλες τις *DAV υπηρεσίες. Με αυτή τη ρύθμιση, η προεπιλεγμένη συμπεριφορά μπορεί να παρακαμφθεί. Τυχόν αλλαγές θα έχουν επίδραση μόνο σε νέους χαρτογραφημένους (εισαχθέντες) LDAP χρήστες. Αφήστε το κενό για την προεπιλεγμένη συμπεριφορά."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js
index 570adbd7949..8dcc735dde1 100644
--- a/apps/user_ldap/l10n/es.js
+++ b/apps/user_ldap/l10n/es.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Campo reservado \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home en una configuración de almacenamiento externo será reemplazado con el valor del atributo especificado",
"Internal Username" : "Nombre de usuario interno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por defecto, el nombre de usuario interno será creado a partir del atributo UUID. Esto asegura que el nombre de usuario es único y no se necesita convertir los caracteres. El nombre de usuario interno tiene la restricción de que solo se admiten estos caracteres: [ a-zA-Z0-9_.@- ]. Otros caracteres son reemplazados por su correspondencia ASCII o simplemente omitidos. En caso de colisiones se añadirá/incrementará un número. El nombre de usuario interno se usa para identificar internamente a un usuario. Es también el nombre por defecto de la carpeta de inicio del usuario. También es parte de las URL remotas, por ejemplo para todos los servicios *DAV. Con esta configuración, se puede anular el comportamiento por defecto. Los cambios tendrán efecto solo en usuarios LDAP mapeados (añadidos) después del cambio. Déjelo vacío para usar el comportamiento por defecto.",
"Internal Username Attribute:" : "Atributo de nombre de usuario interno:",
"Override UUID detection" : "Sobrescribir la detección UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID es autodetectado. Este atributo es usado para identificar sin dudas a usuarios y grupos LDAP. Además, el nombre de usuario interno será creado basado en el UUID, si no ha sido especificado otro comportamiento arriba. Puedes sobrescribir la configuración y pasar un atributo de tu elección. Debes asegurarte de que el atributo de tu elección sea accesible por los usuarios y grupos y ser único. Déjalo en blanco para usar el comportamiento por defecto. Los cambios tendrán efecto solo en los usuarios y grupos de LDAP mapeados (añadidos) recientemente.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Asignación del Nombre de usuario de un usuario LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nombres de usuario se usan para almacenar y asignar metadatos. Para identificar y reconocer con precisión a los usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere una asignación de nombre de usuario a usuario de LDAP. El nombre de usuario creado se asigna al UUID del usuario de LDAP. Además, el DN también se almacena en caché para reducir la interacción de LDAP, pero no se utiliza para la identificación. Si el DN cambia, se encontrarán los cambios. El nombre de usuario interno se usa en todas partes. Limpiar las asignaciones tendrá sobras en todas partes. ¡Borrar las asignaciones no es sensible a la configuración, afecta todas las configuraciones de LDAP! Nunca borre las asignaciones en un entorno de producción, solo en una etapa de prueba o experimental.",
"Clear Username-LDAP User Mapping" : "Borrar la asignación de los Nombres de usuario de los usuarios LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por defecto, el nombre de usuario interno será creado a partir del atributo UUID. Esto asegura que el nombre de usuario es único y no se necesita convertir los caracteres. El nombre de usuario interno tiene la restricción de que solo se admiten estos caracteres: [ a-zA-Z0-9_.@- ]. Otros caracteres son reemplazados por su correspondencia ASCII o simplemente omitidos. En caso de colisiones se añadirá/incrementará un número. El nombre de usuario interno se usa para identificar internamente a un usuario. Es también el nombre por defecto de la carpeta de inicio del usuario. También es parte de las URL remotas, por ejemplo para todos los servicios *DAV. Con esta configuración, se puede anular el comportamiento por defecto. Los cambios tendrán efecto solo en usuarios LDAP mapeados (añadidos) después del cambio. Déjelo vacío para usar el comportamiento por defecto."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json
index cd291991548..3edcbbac871 100644
--- a/apps/user_ldap/l10n/es.json
+++ b/apps/user_ldap/l10n/es.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Campo reservado \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home en una configuración de almacenamiento externo será reemplazado con el valor del atributo especificado",
"Internal Username" : "Nombre de usuario interno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por defecto, el nombre de usuario interno será creado a partir del atributo UUID. Esto asegura que el nombre de usuario es único y no se necesita convertir los caracteres. El nombre de usuario interno tiene la restricción de que solo se admiten estos caracteres: [ a-zA-Z0-9_.@- ]. Otros caracteres son reemplazados por su correspondencia ASCII o simplemente omitidos. En caso de colisiones se añadirá/incrementará un número. El nombre de usuario interno se usa para identificar internamente a un usuario. Es también el nombre por defecto de la carpeta de inicio del usuario. También es parte de las URL remotas, por ejemplo para todos los servicios *DAV. Con esta configuración, se puede anular el comportamiento por defecto. Los cambios tendrán efecto solo en usuarios LDAP mapeados (añadidos) después del cambio. Déjelo vacío para usar el comportamiento por defecto.",
"Internal Username Attribute:" : "Atributo de nombre de usuario interno:",
"Override UUID detection" : "Sobrescribir la detección UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID es autodetectado. Este atributo es usado para identificar sin dudas a usuarios y grupos LDAP. Además, el nombre de usuario interno será creado basado en el UUID, si no ha sido especificado otro comportamiento arriba. Puedes sobrescribir la configuración y pasar un atributo de tu elección. Debes asegurarte de que el atributo de tu elección sea accesible por los usuarios y grupos y ser único. Déjalo en blanco para usar el comportamiento por defecto. Los cambios tendrán efecto solo en los usuarios y grupos de LDAP mapeados (añadidos) recientemente.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Asignación del Nombre de usuario de un usuario LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nombres de usuario se usan para almacenar y asignar metadatos. Para identificar y reconocer con precisión a los usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere una asignación de nombre de usuario a usuario de LDAP. El nombre de usuario creado se asigna al UUID del usuario de LDAP. Además, el DN también se almacena en caché para reducir la interacción de LDAP, pero no se utiliza para la identificación. Si el DN cambia, se encontrarán los cambios. El nombre de usuario interno se usa en todas partes. Limpiar las asignaciones tendrá sobras en todas partes. ¡Borrar las asignaciones no es sensible a la configuración, afecta todas las configuraciones de LDAP! Nunca borre las asignaciones en un entorno de producción, solo en una etapa de prueba o experimental.",
"Clear Username-LDAP User Mapping" : "Borrar la asignación de los Nombres de usuario de los usuarios LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por defecto, el nombre de usuario interno será creado a partir del atributo UUID. Esto asegura que el nombre de usuario es único y no se necesita convertir los caracteres. El nombre de usuario interno tiene la restricción de que solo se admiten estos caracteres: [ a-zA-Z0-9_.@- ]. Otros caracteres son reemplazados por su correspondencia ASCII o simplemente omitidos. En caso de colisiones se añadirá/incrementará un número. El nombre de usuario interno se usa para identificar internamente a un usuario. Es también el nombre por defecto de la carpeta de inicio del usuario. También es parte de las URL remotas, por ejemplo para todos los servicios *DAV. Con esta configuración, se puede anular el comportamiento por defecto. Los cambios tendrán efecto solo en usuarios LDAP mapeados (añadidos) después del cambio. Déjelo vacío para usar el comportamiento por defecto."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/eu.js b/apps/user_ldap/l10n/eu.js
index 64cfdac7f8f..8aaed643d67 100644
--- a/apps/user_ldap/l10n/eu.js
+++ b/apps/user_ldap/l10n/eu.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Leku-markaren eremua",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home kanpoko biltegiratze konfigurazio batean zehaztutako atributuaren balioarekin ordezkatuko da",
"Internal Username" : "Barneko erabiltzaile izena",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Modu lehenetsian barneko erabiltzaile-izena UUID atribututik sortuko da. Honek erabiltzaile-izena bakarra dela eta karaktereak bihurtu behar ez direla ziurtatzen du. Barneko erabiltzaile-izenak karaktere hauek soilik izan ditzake: [ a-zA-Z0-9_.@- ]. Beste karaktereak haien ASCII karaktereekin bihurtu edo guztiz kentzen dira. Kolisioa gertatzen den kasuetan zenbaki bat gehitu edo handituko da. Barneko erabiltzaile-izena erabiltzaile bat barnean identifikatzeko erabiltzen da. Erabiltzailearen etxeko karpetaren izen lehenetsia ere da. Kanpoko URLen parte ere da, adibidez *DAV zerbitzu guztientzako. Ezarpen honekin, lehenetsitako portaera aldatu daiteke. Aldaketek mapatutako (gehitutako) LDAP erabiltzaile berriengan soilik izango du efektua. Utzi hutsik lehenetsitako portaerarako. ",
"Internal Username Attribute:" : "Baliogabeko Erabiltzaile Izen atributua",
"Override UUID detection" : "Gainidatzi UUID antzematea",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Era lehenetsian, UUID atributua automatikoki atzematen da. UUID atributua LDAP erabiltzaleak eta taldeak dudik gabe identifikatzeko erabiltzen da. Gainera, barneko erabiltzaile-izena UUID atributuan oinarritua sortuko da bestelakorik zehazten ez bada. Ezarpenak alda daitezke eta bestelako atributua jar daiteke. Ziur egon behar duzu hautatzen duzun atributua erabiltzaile eta taldeek eskura dezaketela eta bakarra dela. Jokabide lehenetsi gisa utz ezazu hutsik. Aldaketok soilik LDAP-n mapeatuko (gehituko) diren erabiltzaile eta taldeei eragingo die.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "LDAP-erabiltzaile-izena erabiltzailearen mapeatzea",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Erabiltzaile izenak metadatuak gordetzeko eta esleitzeko erabiltzen dira. Erabiltzaileak zehazki identifikatu eta ezagutzeko, LDAP erabiltzaile bakoitzak barne erabiltzaile izena izango du. Horretarako, erabiltzaile izenetik LDAP erabiltzailearen mapaketa egin behar da. Sortutako erabiltzaile izena LDAP erabiltzailearen UUIDarekin mapatuta dago. Gainera, DNa cache-an gordetzen da LDAP elkarreragina murrizteko, baina ez da identifikaziorako erabiltzen. DNa aldatzen bada, aldaketak topatuko dira. Barne erabiltzaile izena toki guztietan erabiltzen da. Kartografiak garbitzeak hondarrak izango ditu nonahi. Kartografiak garbitzea ez da konfigurazioarekiko sentikorra, LDAP konfigurazio guztiei eragiten die! Ez garbitu inoiz mapak ekoizpen-ingurune batean, soilik proba edo fase esperimental batean.",
"Clear Username-LDAP User Mapping" : "Garbitu LDAP-erabiltzaile-izenaren erabiltzaile mapaketa",
- "Clear Groupname-LDAP Group Mapping" : "Garbitu LDAP-talde-izenaren talde mapaketa"
+ "Clear Groupname-LDAP Group Mapping" : "Garbitu LDAP-talde-izenaren talde mapaketa",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Modu lehenetsian barneko erabiltzaile-izena UUID atribututik sortuko da. Honek erabiltzaile-izena bakarra dela eta karaktereak bihurtu behar ez direla ziurtatzen du. Barneko erabiltzaile-izenak karaktere hauek soilik izan ditzake: [ a-zA-Z0-9_.@- ]. Beste karaktereak haien ASCII karaktereekin bihurtu edo guztiz kentzen dira. Kolisioa gertatzen den kasuetan zenbaki bat gehitu edo handituko da. Barneko erabiltzaile-izena erabiltzaile bat barnean identifikatzeko erabiltzen da. Erabiltzailearen etxeko karpetaren izen lehenetsia ere da. Kanpoko URLen parte ere da, adibidez *DAV zerbitzu guztientzako. Ezarpen honekin, lehenetsitako portaera aldatu daiteke. Aldaketek mapatutako (gehitutako) LDAP erabiltzaile berriengan soilik izango du efektua. Utzi hutsik lehenetsitako portaerarako. "
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/eu.json b/apps/user_ldap/l10n/eu.json
index 39d3f72466d..39eb925d501 100644
--- a/apps/user_ldap/l10n/eu.json
+++ b/apps/user_ldap/l10n/eu.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Leku-markaren eremua",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home kanpoko biltegiratze konfigurazio batean zehaztutako atributuaren balioarekin ordezkatuko da",
"Internal Username" : "Barneko erabiltzaile izena",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Modu lehenetsian barneko erabiltzaile-izena UUID atribututik sortuko da. Honek erabiltzaile-izena bakarra dela eta karaktereak bihurtu behar ez direla ziurtatzen du. Barneko erabiltzaile-izenak karaktere hauek soilik izan ditzake: [ a-zA-Z0-9_.@- ]. Beste karaktereak haien ASCII karaktereekin bihurtu edo guztiz kentzen dira. Kolisioa gertatzen den kasuetan zenbaki bat gehitu edo handituko da. Barneko erabiltzaile-izena erabiltzaile bat barnean identifikatzeko erabiltzen da. Erabiltzailearen etxeko karpetaren izen lehenetsia ere da. Kanpoko URLen parte ere da, adibidez *DAV zerbitzu guztientzako. Ezarpen honekin, lehenetsitako portaera aldatu daiteke. Aldaketek mapatutako (gehitutako) LDAP erabiltzaile berriengan soilik izango du efektua. Utzi hutsik lehenetsitako portaerarako. ",
"Internal Username Attribute:" : "Baliogabeko Erabiltzaile Izen atributua",
"Override UUID detection" : "Gainidatzi UUID antzematea",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Era lehenetsian, UUID atributua automatikoki atzematen da. UUID atributua LDAP erabiltzaleak eta taldeak dudik gabe identifikatzeko erabiltzen da. Gainera, barneko erabiltzaile-izena UUID atributuan oinarritua sortuko da bestelakorik zehazten ez bada. Ezarpenak alda daitezke eta bestelako atributua jar daiteke. Ziur egon behar duzu hautatzen duzun atributua erabiltzaile eta taldeek eskura dezaketela eta bakarra dela. Jokabide lehenetsi gisa utz ezazu hutsik. Aldaketok soilik LDAP-n mapeatuko (gehituko) diren erabiltzaile eta taldeei eragingo die.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "LDAP-erabiltzaile-izena erabiltzailearen mapeatzea",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Erabiltzaile izenak metadatuak gordetzeko eta esleitzeko erabiltzen dira. Erabiltzaileak zehazki identifikatu eta ezagutzeko, LDAP erabiltzaile bakoitzak barne erabiltzaile izena izango du. Horretarako, erabiltzaile izenetik LDAP erabiltzailearen mapaketa egin behar da. Sortutako erabiltzaile izena LDAP erabiltzailearen UUIDarekin mapatuta dago. Gainera, DNa cache-an gordetzen da LDAP elkarreragina murrizteko, baina ez da identifikaziorako erabiltzen. DNa aldatzen bada, aldaketak topatuko dira. Barne erabiltzaile izena toki guztietan erabiltzen da. Kartografiak garbitzeak hondarrak izango ditu nonahi. Kartografiak garbitzea ez da konfigurazioarekiko sentikorra, LDAP konfigurazio guztiei eragiten die! Ez garbitu inoiz mapak ekoizpen-ingurune batean, soilik proba edo fase esperimental batean.",
"Clear Username-LDAP User Mapping" : "Garbitu LDAP-erabiltzaile-izenaren erabiltzaile mapaketa",
- "Clear Groupname-LDAP Group Mapping" : "Garbitu LDAP-talde-izenaren talde mapaketa"
+ "Clear Groupname-LDAP Group Mapping" : "Garbitu LDAP-talde-izenaren talde mapaketa",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Modu lehenetsian barneko erabiltzaile-izena UUID atribututik sortuko da. Honek erabiltzaile-izena bakarra dela eta karaktereak bihurtu behar ez direla ziurtatzen du. Barneko erabiltzaile-izenak karaktere hauek soilik izan ditzake: [ a-zA-Z0-9_.@- ]. Beste karaktereak haien ASCII karaktereekin bihurtu edo guztiz kentzen dira. Kolisioa gertatzen den kasuetan zenbaki bat gehitu edo handituko da. Barneko erabiltzaile-izena erabiltzaile bat barnean identifikatzeko erabiltzen da. Erabiltzailearen etxeko karpetaren izen lehenetsia ere da. Kanpoko URLen parte ere da, adibidez *DAV zerbitzu guztientzako. Ezarpen honekin, lehenetsitako portaera aldatu daiteke. Aldaketek mapatutako (gehitutako) LDAP erabiltzaile berriengan soilik izango du efektua. Utzi hutsik lehenetsitako portaerarako. "
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js
index f6c6f86361c..a867c6aea49 100644
--- a/apps/user_ldap/l10n/fr.js
+++ b/apps/user_ldap/l10n/fr.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Champ Placeholder",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home dans la configuration du stockage externe sera remplacé avec la valeur de l'attribut spécifié",
"Internal Username" : "Nom d'utilisateur interne",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Par défaut le nom d'utilisateur interne sera créé à partir de l'attribut UUID. Cela permet de s'assurer que le nom d'utilisateur est unique et que les caractères n'ont pas besoin d'être convertis. Le nom d'utilisateur interne a pour restriction de ne contenir que les caractères suivants : [a-zA-Z0-9_.@-]. Les autres caractères sont remplacés par leurs correspondants ASCII ou simplement omis. En cas de collisions, un nombre sera ajouté/incrémenté. Le nom d'utilisateur interne est utilisé pour identifier un utilisateur en interne. C'est aussi le nom par défaut du dossier personnel de l'utilisateur. Il fait aussi parti des URLs distantes pour tous les services *DAV. Avec ce paramètre, le comportement par défaut peut être écrasé. Les modifications prendront effet seulement pour les nouveaux utilisateurs LDAP mappés (ajoutés). Laissez-le vide pour utiliser le comportement par défaut",
"Internal Username Attribute:" : "Nom d'utilisateur interne :",
"Override UUID detection" : "Passer outre la détection des UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Par défaut, l'attribut UUID est automatiquement détecté. Cet attribut est utilisé pour identifier les utilisateurs et groupes de façon fiable. Un nom d'utilisateur interne basé sur l'UUID sera automatiquement créé, sauf s'il est spécifié autrement ci-dessus. Vous pouvez modifier ce comportement et définir l'attribut de votre choix. Vous devez alors vous assurer que l'attribut de votre choix peut être récupéré pour les utilisateurs ainsi que pour les groupes et qu'il soit unique. Laisser à blanc pour le comportement par défaut. Les modifications seront effectives uniquement pour les nouveaux (ajoutés) utilisateurs et groupes LDAP.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Association Nom d'utilisateur-Utilisateur LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur NextCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à NextCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations.",
"Clear Username-LDAP User Mapping" : "Supprimer l'association utilisateur interne-utilisateur LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Par défaut le nom d'utilisateur interne sera créé à partir de l'attribut UUID. Cela permet de s'assurer que le nom d'utilisateur est unique et que les caractères n'ont pas besoin d'être convertis. Le nom d'utilisateur interne a pour restriction de ne contenir que les caractères suivants : [a-zA-Z0-9_.@-]. Les autres caractères sont remplacés par leurs correspondants ASCII ou simplement omis. En cas de collisions, un nombre sera ajouté/incrémenté. Le nom d'utilisateur interne est utilisé pour identifier un utilisateur en interne. C'est aussi le nom par défaut du dossier personnel de l'utilisateur. Il fait aussi parti des URLs distantes pour tous les services *DAV. Avec ce paramètre, le comportement par défaut peut être écrasé. Les modifications prendront effet seulement pour les nouveaux utilisateurs LDAP mappés (ajoutés). Laissez-le vide pour utiliser le comportement par défaut"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json
index 5ce3594f289..02e541fdb61 100644
--- a/apps/user_ldap/l10n/fr.json
+++ b/apps/user_ldap/l10n/fr.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Champ Placeholder",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home dans la configuration du stockage externe sera remplacé avec la valeur de l'attribut spécifié",
"Internal Username" : "Nom d'utilisateur interne",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Par défaut le nom d'utilisateur interne sera créé à partir de l'attribut UUID. Cela permet de s'assurer que le nom d'utilisateur est unique et que les caractères n'ont pas besoin d'être convertis. Le nom d'utilisateur interne a pour restriction de ne contenir que les caractères suivants : [a-zA-Z0-9_.@-]. Les autres caractères sont remplacés par leurs correspondants ASCII ou simplement omis. En cas de collisions, un nombre sera ajouté/incrémenté. Le nom d'utilisateur interne est utilisé pour identifier un utilisateur en interne. C'est aussi le nom par défaut du dossier personnel de l'utilisateur. Il fait aussi parti des URLs distantes pour tous les services *DAV. Avec ce paramètre, le comportement par défaut peut être écrasé. Les modifications prendront effet seulement pour les nouveaux utilisateurs LDAP mappés (ajoutés). Laissez-le vide pour utiliser le comportement par défaut",
"Internal Username Attribute:" : "Nom d'utilisateur interne :",
"Override UUID detection" : "Passer outre la détection des UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Par défaut, l'attribut UUID est automatiquement détecté. Cet attribut est utilisé pour identifier les utilisateurs et groupes de façon fiable. Un nom d'utilisateur interne basé sur l'UUID sera automatiquement créé, sauf s'il est spécifié autrement ci-dessus. Vous pouvez modifier ce comportement et définir l'attribut de votre choix. Vous devez alors vous assurer que l'attribut de votre choix peut être récupéré pour les utilisateurs ainsi que pour les groupes et qu'il soit unique. Laisser à blanc pour le comportement par défaut. Les modifications seront effectives uniquement pour les nouveaux (ajoutés) utilisateurs et groupes LDAP.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Association Nom d'utilisateur-Utilisateur LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur NextCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à NextCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations.",
"Clear Username-LDAP User Mapping" : "Supprimer l'association utilisateur interne-utilisateur LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Par défaut le nom d'utilisateur interne sera créé à partir de l'attribut UUID. Cela permet de s'assurer que le nom d'utilisateur est unique et que les caractères n'ont pas besoin d'être convertis. Le nom d'utilisateur interne a pour restriction de ne contenir que les caractères suivants : [a-zA-Z0-9_.@-]. Les autres caractères sont remplacés par leurs correspondants ASCII ou simplement omis. En cas de collisions, un nombre sera ajouté/incrémenté. Le nom d'utilisateur interne est utilisé pour identifier un utilisateur en interne. C'est aussi le nom par défaut du dossier personnel de l'utilisateur. Il fait aussi parti des URLs distantes pour tous les services *DAV. Avec ce paramètre, le comportement par défaut peut être écrasé. Les modifications prendront effet seulement pour les nouveaux utilisateurs LDAP mappés (ajoutés). Laissez-le vide pour utiliser le comportement par défaut"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/hr.js b/apps/user_ldap/l10n/hr.js
index 5e7944dac6b..322856e7810 100644
--- a/apps/user_ldap/l10n/hr.js
+++ b/apps/user_ldap/l10n/hr.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Polje rezerviranja „$home”",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home će se u konfiguraciji vanjske pohrane zamijeniti s vrijednosti navedenog atributa",
"Internal Username" : "Unutarnje korisničko ime",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Sukladno zadanim postavkama, unutarnje korisničko stvara se iz atributa UUID. Time se osigurava da je korisničko ime jedinstveno i da ne treba pretvarati znakove. Unutarnje korisničko ime ograničeno je na sljedeće znakove: [a-zA-Z0-9_.@ -]. Ostali znakovi zamjenjuju se istovjetnim ASCII znakovima ili se jednostavno izostavljaju. Nepodudarni se brojevi dodaju/povećavaju. Unutarnje korisničko ime upotrebljava se za unutarnju identifikaciju korisnika. Također se upotrebljava kao zadano ime za početnu mapu korisnika. Dio je udaljenih URL-ova, primjerice, za sve *DAV servise. Ovom postavkom možete promijeniti zadano ponašanje. Promjene će se primijeniti samo na nove mapirane (dodane) LDAP korisnike. Ostavite je praznom ako želite zadržati zadano ponašanje.",
"Internal Username Attribute:" : "Atribut unutarnjeg korisničkog imena:",
"Override UUID detection" : "Premosti UUID otkrivanje",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Atribut UUID se prema zadanim postavkama automatski otkriva. Atribut UUID se upotrebljava za nedvosmislenu identifikaciju LDAP korisnika i grupa. Također će se stvoriti unutarnje korisničko ime na temelju UUID-a ako nije ručno navedeno. Možete aktivirati postavku i prenijeti atribut po vlastitom izboru. Morate biti sigurni da taj atribut može biti dostupan i za korisnike i za grupu i da je jedinstven. Ostavite prazno ako želite zadržati zadano ponašanje. Promjene će se primijeniti samo na nove mapirane (dodane) LDAP korisnike.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Mapiranje korisnika LDAP-korisničko ime",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Korisnička imena upotrebljavaju se za pohranu i dodjeljivanje metapodataka. Kako bi se precizno identificirali i prepoznali korisnici, svaki LDAP korisnik ima unutarnje korisničko ime. Za to je potrebno mapiranje podataka s korisničkog imena na LDAP korisnika. Stvoreno korisničko ime mapira se na UUID LDAP korisnika. Također se DN pohranjuje u predmemoriju radi smanjenja interakcije s LDAP-om, ali se ne koristi za identifikaciju. Ako se DN promijeni, te će promijene biti otkrivene. Unutarnje korisničko ime upotrebljava se u raznim situacijama. Brisanjem mapiranja ostaju razni tragovi u sustavu. Brisanje mapiranja ne ovisi o konfiguraciji, utječe na sve konfiguracije LDAP-a! Nikada nemojte brisati mapiranja u produkcijskom okruženju, već samo u fazi ispitivanja ili eksperimentiranja.",
"Clear Username-LDAP User Mapping" : "Izbriši mapiranje korisnika LDAP-korisničko ime",
- "Clear Groupname-LDAP Group Mapping" : "Izbriši mapiranje grupe naziv grupe-LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Izbriši mapiranje grupe naziv grupe-LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Sukladno zadanim postavkama, unutarnje korisničko stvara se iz atributa UUID. Time se osigurava da je korisničko ime jedinstveno i da ne treba pretvarati znakove. Unutarnje korisničko ime ograničeno je na sljedeće znakove: [a-zA-Z0-9_.@ -]. Ostali znakovi zamjenjuju se istovjetnim ASCII znakovima ili se jednostavno izostavljaju. Nepodudarni se brojevi dodaju/povećavaju. Unutarnje korisničko ime upotrebljava se za unutarnju identifikaciju korisnika. Također se upotrebljava kao zadano ime za početnu mapu korisnika. Dio je udaljenih URL-ova, primjerice, za sve *DAV servise. Ovom postavkom možete promijeniti zadano ponašanje. Promjene će se primijeniti samo na nove mapirane (dodane) LDAP korisnike. Ostavite je praznom ako želite zadržati zadano ponašanje."
},
"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/user_ldap/l10n/hr.json b/apps/user_ldap/l10n/hr.json
index 0cfd3ddf204..82ca821574e 100644
--- a/apps/user_ldap/l10n/hr.json
+++ b/apps/user_ldap/l10n/hr.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Polje rezerviranja „$home”",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home će se u konfiguraciji vanjske pohrane zamijeniti s vrijednosti navedenog atributa",
"Internal Username" : "Unutarnje korisničko ime",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Sukladno zadanim postavkama, unutarnje korisničko stvara se iz atributa UUID. Time se osigurava da je korisničko ime jedinstveno i da ne treba pretvarati znakove. Unutarnje korisničko ime ograničeno je na sljedeće znakove: [a-zA-Z0-9_.@ -]. Ostali znakovi zamjenjuju se istovjetnim ASCII znakovima ili se jednostavno izostavljaju. Nepodudarni se brojevi dodaju/povećavaju. Unutarnje korisničko ime upotrebljava se za unutarnju identifikaciju korisnika. Također se upotrebljava kao zadano ime za početnu mapu korisnika. Dio je udaljenih URL-ova, primjerice, za sve *DAV servise. Ovom postavkom možete promijeniti zadano ponašanje. Promjene će se primijeniti samo na nove mapirane (dodane) LDAP korisnike. Ostavite je praznom ako želite zadržati zadano ponašanje.",
"Internal Username Attribute:" : "Atribut unutarnjeg korisničkog imena:",
"Override UUID detection" : "Premosti UUID otkrivanje",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Atribut UUID se prema zadanim postavkama automatski otkriva. Atribut UUID se upotrebljava za nedvosmislenu identifikaciju LDAP korisnika i grupa. Također će se stvoriti unutarnje korisničko ime na temelju UUID-a ako nije ručno navedeno. Možete aktivirati postavku i prenijeti atribut po vlastitom izboru. Morate biti sigurni da taj atribut može biti dostupan i za korisnike i za grupu i da je jedinstven. Ostavite prazno ako želite zadržati zadano ponašanje. Promjene će se primijeniti samo na nove mapirane (dodane) LDAP korisnike.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Mapiranje korisnika LDAP-korisničko ime",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Korisnička imena upotrebljavaju se za pohranu i dodjeljivanje metapodataka. Kako bi se precizno identificirali i prepoznali korisnici, svaki LDAP korisnik ima unutarnje korisničko ime. Za to je potrebno mapiranje podataka s korisničkog imena na LDAP korisnika. Stvoreno korisničko ime mapira se na UUID LDAP korisnika. Također se DN pohranjuje u predmemoriju radi smanjenja interakcije s LDAP-om, ali se ne koristi za identifikaciju. Ako se DN promijeni, te će promijene biti otkrivene. Unutarnje korisničko ime upotrebljava se u raznim situacijama. Brisanjem mapiranja ostaju razni tragovi u sustavu. Brisanje mapiranja ne ovisi o konfiguraciji, utječe na sve konfiguracije LDAP-a! Nikada nemojte brisati mapiranja u produkcijskom okruženju, već samo u fazi ispitivanja ili eksperimentiranja.",
"Clear Username-LDAP User Mapping" : "Izbriši mapiranje korisnika LDAP-korisničko ime",
- "Clear Groupname-LDAP Group Mapping" : "Izbriši mapiranje grupe naziv grupe-LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Izbriši mapiranje grupe naziv grupe-LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Sukladno zadanim postavkama, unutarnje korisničko stvara se iz atributa UUID. Time se osigurava da je korisničko ime jedinstveno i da ne treba pretvarati znakove. Unutarnje korisničko ime ograničeno je na sljedeće znakove: [a-zA-Z0-9_.@ -]. Ostali znakovi zamjenjuju se istovjetnim ASCII znakovima ili se jednostavno izostavljaju. Nepodudarni se brojevi dodaju/povećavaju. Unutarnje korisničko ime upotrebljava se za unutarnju identifikaciju korisnika. Također se upotrebljava kao zadano ime za početnu mapu korisnika. Dio je udaljenih URL-ova, primjerice, za sve *DAV servise. Ovom postavkom možete promijeniti zadano ponašanje. Promjene će se primijeniti samo na nove mapirane (dodane) LDAP korisnike. Ostavite je praznom ako želite zadržati zadano ponašanje."
},"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/user_ldap/l10n/hu.js b/apps/user_ldap/l10n/hu.js
index 397209cd35c..1c9cedae70c 100644
--- a/apps/user_ldap/l10n/hu.js
+++ b/apps/user_ldap/l10n/hu.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "„$home” helykitöltő mező",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Külső tárhely beállítása esetén a $home a megadott tulajdonság értékére lesz cserélve",
"Internal Username" : "Belső felhasználónév",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Alapértelmezetten egy belső felhasználónév jön létre a UUID attribútumból. Gondoskodik róla, hogy a felhasználónév egyedi legyen és ne kelljen a karaktereket konvertálni. A belső felhasználónév csak a következő karakterekből állhat: [a-zA-Z0-9_.@-]. Más karakterek az ASCII megfelelőikre lesznek cserélve, vagy csak simán ki lesznek hagyva. Ütközés esetén egy szám lesz hozzáadva, vagy növelve. A belső felhasználónév a felhasználó belső azonosítására szolgál. Egyben a felhasználó saját mappájának neveként is szolgál. Ez része a távoli URL-eknek, például az összes DAV szolgáltatásnál. Ezzel a beállítással az alapértelmezett működés felülírható. A változások csak újonnan hozzárendelt (hozzáadott) LDAP felhasználóknál kerül alkalmazásra. Hagyja üresen az alapértelmezett viselkedéshez.",
"Internal Username Attribute:" : "Belső felhasználónév attribútuma:",
"Override UUID detection" : "UUID-felismerés felülbírálása",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Az UUID attribútum alapértelmezetten felismerésre kerül. Az UUID attribútum segítségével az LDAP felhasználók és csoportok egyértelműen azonosíthatók. A belső felhasználónév is azonos lesz az UUID-vel, ha fentebb nincs másként definiálva. Ezt a beállítást felülbírálhatja és bármely attribútummal helyettesítheti. Ekkor azonban gondoskodnia kell arról, hogy a kiválasztott attribútum minden felhasználó és csoport esetén lekérdezhető legyen, és egyedi értékkel bírjon. Ha a mezőt üresen hagyja, akkor az alapértelmezett attribútum lesz érvényes. Egy esetleges módosítás csak az újonnan hozzárendelt (hozzáadott) felhasználókra és csoportokra lesz érvényes.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Felhasználónév–LDAP felhasználó hozzárendelés",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "A felhasználónevek a metaadatok kezeléséhez és tárolásához vannak felhasználva. Annak érdekében, hogy teljes mértékben azonosítható legyen egy felhasználó, minden LDAP felhasználó kapni fog egy belső felhasználónevet. Ez egy hozzárendelést igényel az eredeti felhasználónév és az LDAP fiók között. A létrejött felhasználónév hozzárendelődik az LDAP fiók UUID értékéhez. Emellett a DN gyorsítótárazott, hogy csökkentse az LDAP interakciók számát, de nincs használva azonosítás céljából. Ha a DN megváltozik, a rendszer észleli ezeket a változásokat. A belső felhasználónév van mindenhol használva a rendszeren belül. A hozzárendelések törlése adattöredékeket hagy maga után. A hozzárendelések ürítése nem beállításfüggő, minden LDAP beállításra hatással van. Soha ne ürítse éles rendszeren a hozzárendeléseket, csak tesztelési vagy kísérleti szakaszban.",
"Clear Username-LDAP User Mapping" : "Felhasználónév–LDAP felhasználó hozzárendelés törlése",
- "Clear Groupname-LDAP Group Mapping" : "Csoport–LDAP csoport hozzárendelés törlése"
+ "Clear Groupname-LDAP Group Mapping" : "Csoport–LDAP csoport hozzárendelés törlése",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Alapértelmezetten egy belső felhasználónév jön létre a UUID attribútumból. Gondoskodik róla, hogy a felhasználónév egyedi legyen és ne kelljen a karaktereket konvertálni. A belső felhasználónév csak a következő karakterekből állhat: [a-zA-Z0-9_.@-]. Más karakterek az ASCII megfelelőikre lesznek cserélve, vagy csak simán ki lesznek hagyva. Ütközés esetén egy szám lesz hozzáadva, vagy növelve. A belső felhasználónév a felhasználó belső azonosítására szolgál. Egyben a felhasználó saját mappájának neveként is szolgál. Ez része a távoli URL-eknek, például az összes DAV szolgáltatásnál. Ezzel a beállítással az alapértelmezett működés felülírható. A változások csak újonnan hozzárendelt (hozzáadott) LDAP felhasználóknál kerül alkalmazásra. Hagyja üresen az alapértelmezett viselkedéshez."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/hu.json b/apps/user_ldap/l10n/hu.json
index 048806c444c..a3ce9ad4476 100644
--- a/apps/user_ldap/l10n/hu.json
+++ b/apps/user_ldap/l10n/hu.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "„$home” helykitöltő mező",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Külső tárhely beállítása esetén a $home a megadott tulajdonság értékére lesz cserélve",
"Internal Username" : "Belső felhasználónév",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Alapértelmezetten egy belső felhasználónév jön létre a UUID attribútumból. Gondoskodik róla, hogy a felhasználónév egyedi legyen és ne kelljen a karaktereket konvertálni. A belső felhasználónév csak a következő karakterekből állhat: [a-zA-Z0-9_.@-]. Más karakterek az ASCII megfelelőikre lesznek cserélve, vagy csak simán ki lesznek hagyva. Ütközés esetén egy szám lesz hozzáadva, vagy növelve. A belső felhasználónév a felhasználó belső azonosítására szolgál. Egyben a felhasználó saját mappájának neveként is szolgál. Ez része a távoli URL-eknek, például az összes DAV szolgáltatásnál. Ezzel a beállítással az alapértelmezett működés felülírható. A változások csak újonnan hozzárendelt (hozzáadott) LDAP felhasználóknál kerül alkalmazásra. Hagyja üresen az alapértelmezett viselkedéshez.",
"Internal Username Attribute:" : "Belső felhasználónév attribútuma:",
"Override UUID detection" : "UUID-felismerés felülbírálása",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Az UUID attribútum alapértelmezetten felismerésre kerül. Az UUID attribútum segítségével az LDAP felhasználók és csoportok egyértelműen azonosíthatók. A belső felhasználónév is azonos lesz az UUID-vel, ha fentebb nincs másként definiálva. Ezt a beállítást felülbírálhatja és bármely attribútummal helyettesítheti. Ekkor azonban gondoskodnia kell arról, hogy a kiválasztott attribútum minden felhasználó és csoport esetén lekérdezhető legyen, és egyedi értékkel bírjon. Ha a mezőt üresen hagyja, akkor az alapértelmezett attribútum lesz érvényes. Egy esetleges módosítás csak az újonnan hozzárendelt (hozzáadott) felhasználókra és csoportokra lesz érvényes.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Felhasználónév–LDAP felhasználó hozzárendelés",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "A felhasználónevek a metaadatok kezeléséhez és tárolásához vannak felhasználva. Annak érdekében, hogy teljes mértékben azonosítható legyen egy felhasználó, minden LDAP felhasználó kapni fog egy belső felhasználónevet. Ez egy hozzárendelést igényel az eredeti felhasználónév és az LDAP fiók között. A létrejött felhasználónév hozzárendelődik az LDAP fiók UUID értékéhez. Emellett a DN gyorsítótárazott, hogy csökkentse az LDAP interakciók számát, de nincs használva azonosítás céljából. Ha a DN megváltozik, a rendszer észleli ezeket a változásokat. A belső felhasználónév van mindenhol használva a rendszeren belül. A hozzárendelések törlése adattöredékeket hagy maga után. A hozzárendelések ürítése nem beállításfüggő, minden LDAP beállításra hatással van. Soha ne ürítse éles rendszeren a hozzárendeléseket, csak tesztelési vagy kísérleti szakaszban.",
"Clear Username-LDAP User Mapping" : "Felhasználónév–LDAP felhasználó hozzárendelés törlése",
- "Clear Groupname-LDAP Group Mapping" : "Csoport–LDAP csoport hozzárendelés törlése"
+ "Clear Groupname-LDAP Group Mapping" : "Csoport–LDAP csoport hozzárendelés törlése",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Alapértelmezetten egy belső felhasználónév jön létre a UUID attribútumból. Gondoskodik róla, hogy a felhasználónév egyedi legyen és ne kelljen a karaktereket konvertálni. A belső felhasználónév csak a következő karakterekből állhat: [a-zA-Z0-9_.@-]. Más karakterek az ASCII megfelelőikre lesznek cserélve, vagy csak simán ki lesznek hagyva. Ütközés esetén egy szám lesz hozzáadva, vagy növelve. A belső felhasználónév a felhasználó belső azonosítására szolgál. Egyben a felhasználó saját mappájának neveként is szolgál. Ez része a távoli URL-eknek, például az összes DAV szolgáltatásnál. Ezzel a beállítással az alapértelmezett működés felülírható. A változások csak újonnan hozzárendelt (hozzáadott) LDAP felhasználóknál kerül alkalmazásra. Hagyja üresen az alapértelmezett viselkedéshez."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js
index e9ffe460c46..26b2840244d 100644
--- a/apps/user_ldap/l10n/it.js
+++ b/apps/user_ldap/l10n/it.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Segnaposto \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home nella configurazione di un'archiviazione esterna sarà sostituita con il valore dell'attributo specificato",
"Internal Username" : "Nome utente interno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "In modo predefinito, il nome utente interno sarà creato dall'attributo UUID. Ciò assicura che il nome utente sia univoco e che non sia necessario convertire i caratteri. Il nome utente interno consente l'uso di determinati caratteri: [ a-zA-Z0-9_.@- ]. Altri caratteri sono sostituiti con il corrispondente ASCII o sono semplicemente omessi. In caso di conflitto, sarà aggiunto/incrementato un numero. Il nome utente interno è utilizzato per identificare un utente internamente. Rappresenta, inoltre, il nome predefinito per la cartella home dell'utente in ownCloud. Costituisce anche una parte di URL remoti, ad esempio per tutti i servizi *DAV. Con questa impostazione, il comportamento predefinito può essere scavalcato. Le modifiche avranno effetto solo sui nuovo utenti LDAP associati (aggiunti). Lascialo vuoto per ottenere il comportamento predefinito.",
"Internal Username Attribute:" : "Attributo nome utente interno:",
"Override UUID detection" : "Ignora rilevamento UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "In modo predefinito, l'attributo UUID viene rilevato automaticamente. L'attributo UUID è utilizzato per identificare senza alcun dubbio gli utenti e i gruppi LDAP. Inoltre, il nome utente interno sarà creato sulla base dell'UUID, se non è specificato in precedenza. Puoi ignorare l'impostazione e fornire un attributo di tua scelta. Assicurati che l'attributo scelto possa essere ottenuto sia per gli utenti che per i gruppi e che sia univoco. Lascialo vuoto per ottenere il comportamento predefinito. Le modifiche avranno effetto solo sui nuovi utenti e gruppi LDAP associati (aggiunti).",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Associazione Nome utente-Utente LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i metadati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Il nome utente creato. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. Il nome utente creato è associato allo UUID dell'utente LDAP. In aggiunta, il DN viene memorizzato in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test.",
"Clear Username-LDAP User Mapping" : "Cancella associazione Nome utente-Utente LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "In modo predefinito, il nome utente interno sarà creato dall'attributo UUID. Ciò assicura che il nome utente sia univoco e che non sia necessario convertire i caratteri. Il nome utente interno consente l'uso di determinati caratteri: [ a-zA-Z0-9_.@- ]. Altri caratteri sono sostituiti con il corrispondente ASCII o sono semplicemente omessi. In caso di conflitto, sarà aggiunto/incrementato un numero. Il nome utente interno è utilizzato per identificare un utente internamente. Rappresenta, inoltre, il nome predefinito per la cartella home dell'utente in ownCloud. Costituisce anche una parte di URL remoti, ad esempio per tutti i servizi *DAV. Con questa impostazione, il comportamento predefinito può essere scavalcato. Le modifiche avranno effetto solo sui nuovo utenti LDAP associati (aggiunti). Lascialo vuoto per ottenere il comportamento predefinito."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json
index 683bd99f281..1cd1e9a88a3 100644
--- a/apps/user_ldap/l10n/it.json
+++ b/apps/user_ldap/l10n/it.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Segnaposto \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home nella configurazione di un'archiviazione esterna sarà sostituita con il valore dell'attributo specificato",
"Internal Username" : "Nome utente interno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "In modo predefinito, il nome utente interno sarà creato dall'attributo UUID. Ciò assicura che il nome utente sia univoco e che non sia necessario convertire i caratteri. Il nome utente interno consente l'uso di determinati caratteri: [ a-zA-Z0-9_.@- ]. Altri caratteri sono sostituiti con il corrispondente ASCII o sono semplicemente omessi. In caso di conflitto, sarà aggiunto/incrementato un numero. Il nome utente interno è utilizzato per identificare un utente internamente. Rappresenta, inoltre, il nome predefinito per la cartella home dell'utente in ownCloud. Costituisce anche una parte di URL remoti, ad esempio per tutti i servizi *DAV. Con questa impostazione, il comportamento predefinito può essere scavalcato. Le modifiche avranno effetto solo sui nuovo utenti LDAP associati (aggiunti). Lascialo vuoto per ottenere il comportamento predefinito.",
"Internal Username Attribute:" : "Attributo nome utente interno:",
"Override UUID detection" : "Ignora rilevamento UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "In modo predefinito, l'attributo UUID viene rilevato automaticamente. L'attributo UUID è utilizzato per identificare senza alcun dubbio gli utenti e i gruppi LDAP. Inoltre, il nome utente interno sarà creato sulla base dell'UUID, se non è specificato in precedenza. Puoi ignorare l'impostazione e fornire un attributo di tua scelta. Assicurati che l'attributo scelto possa essere ottenuto sia per gli utenti che per i gruppi e che sia univoco. Lascialo vuoto per ottenere il comportamento predefinito. Le modifiche avranno effetto solo sui nuovi utenti e gruppi LDAP associati (aggiunti).",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Associazione Nome utente-Utente LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i metadati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Il nome utente creato. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. Il nome utente creato è associato allo UUID dell'utente LDAP. In aggiunta, il DN viene memorizzato in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test.",
"Clear Username-LDAP User Mapping" : "Cancella associazione Nome utente-Utente LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "In modo predefinito, il nome utente interno sarà creato dall'attributo UUID. Ciò assicura che il nome utente sia univoco e che non sia necessario convertire i caratteri. Il nome utente interno consente l'uso di determinati caratteri: [ a-zA-Z0-9_.@- ]. Altri caratteri sono sostituiti con il corrispondente ASCII o sono semplicemente omessi. In caso di conflitto, sarà aggiunto/incrementato un numero. Il nome utente interno è utilizzato per identificare un utente internamente. Rappresenta, inoltre, il nome predefinito per la cartella home dell'utente in ownCloud. Costituisce anche una parte di URL remoti, ad esempio per tutti i servizi *DAV. Con questa impostazione, il comportamento predefinito può essere scavalcato. Le modifiche avranno effetto solo sui nuovo utenti LDAP associati (aggiunti). Lascialo vuoto per ottenere il comportamento predefinito."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js
index b5908986dd0..bce2a9dfcea 100644
--- a/apps/user_ldap/l10n/ja.js
+++ b/apps/user_ldap/l10n/ja.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" 属性設定",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "外部ストレージ設定の $home 変数には、指定した属性の値が入ります",
"Internal Username" : "内部ユーザー名",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "デフォルトでは、内部的なユーザー名がUUID属性から作成されます。これにより、ユーザー名がユニークであり、かつ文字の変換が不要であることを保証します。内部ユーザー名には、[ a-zA-Z0-9_.@- ] の文字のみが有効であるという制限があり、その他の文字は対応する ASCII コードに変換されるか単に無視されます。そのため、他のユーザー名との衝突の回数が増加するでしょう。内部ユーザー名は、内部的にユーザーを識別するために用いられ、また、Nextcloud におけるデフォルトのホームフォルダー名としても用いられます。例えば*DAVサービスのように、リモートURLの一部でもあります。この設定により、デフォルトの振る舞いを再定義します。これは、たとえばすべての* DAVサービスのリモートURLの一部でもあります。この設定を使用すると、デフォルトの動作を上書きできます。変更は、新しくマップされた(追加された)LDAPユーザーにのみ影響します。デフォルトの動作のために空のままにします。",
"Internal Username Attribute:" : "内部ユーザー名属性:",
"Override UUID detection" : "UUID検出を再定義する",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "デフォルトでは、UUID 属性は自動的に検出されます。UUID属性は、LDAPユーザーとLDAPグループを間違いなく識別するために利用されます。また、もしこれを指定しない場合は、内部ユーザー名はUUIDに基づいて作成されます。この設定は再定義することができ、あなたの選択した属性を用いることができます。選択した属性がユーザーとグループの両方に対して適用でき、かつユニークであることを確認してください。空であればデフォルトの振る舞いとなります。変更は、新しくマッピング(追加)されたLDAPユーザーとLDAPグループに対してのみ有効となります。",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピング",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は、メタデータの保存と割り当てに使用されます。 ユーザーを正確に識別して認識するために、各LDAPユーザーには内部ユーザー名が割り当てられます。 これには、ユーザー名からLDAPユーザーへのマッピングが必要です。 作成されたユーザー名は、LDAPユーザーのUUIDにマップされます。 さらに、DNはLDAPインタラクションを減らすためにキャッシュされますが、識別には使用されません。 DNが変更された場合、変更が検出されます。 内部ユーザー名はいたるところで使用されます。 マッピングをクリアすると、どこに残っているか分かります。 マッピングの消去はコンフィギュレーションセンシティブではなく、すべてのLDAP構成に影響します。 本番環境のマッピングをクリアしないでください。テスト環境または実験段階でのみ実施してください。",
"Clear Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピングをクリアする",
- "Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする"
+ "Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "デフォルトでは、内部的なユーザー名がUUID属性から作成されます。これにより、ユーザー名がユニークであり、かつ文字の変換が不要であることを保証します。内部ユーザー名には、[ a-zA-Z0-9_.@- ] の文字のみが有効であるという制限があり、その他の文字は対応する ASCII コードに変換されるか単に無視されます。そのため、他のユーザー名との衝突の回数が増加するでしょう。内部ユーザー名は、内部的にユーザーを識別するために用いられ、また、Nextcloud におけるデフォルトのホームフォルダー名としても用いられます。例えば*DAVサービスのように、リモートURLの一部でもあります。この設定により、デフォルトの振る舞いを再定義します。これは、たとえばすべての* DAVサービスのリモートURLの一部でもあります。この設定を使用すると、デフォルトの動作を上書きできます。変更は、新しくマップされた(追加された)LDAPユーザーにのみ影響します。デフォルトの動作のために空のままにします。"
},
"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json
index 935f367e435..2f096353bd8 100644
--- a/apps/user_ldap/l10n/ja.json
+++ b/apps/user_ldap/l10n/ja.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" 属性設定",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "外部ストレージ設定の $home 変数には、指定した属性の値が入ります",
"Internal Username" : "内部ユーザー名",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "デフォルトでは、内部的なユーザー名がUUID属性から作成されます。これにより、ユーザー名がユニークであり、かつ文字の変換が不要であることを保証します。内部ユーザー名には、[ a-zA-Z0-9_.@- ] の文字のみが有効であるという制限があり、その他の文字は対応する ASCII コードに変換されるか単に無視されます。そのため、他のユーザー名との衝突の回数が増加するでしょう。内部ユーザー名は、内部的にユーザーを識別するために用いられ、また、Nextcloud におけるデフォルトのホームフォルダー名としても用いられます。例えば*DAVサービスのように、リモートURLの一部でもあります。この設定により、デフォルトの振る舞いを再定義します。これは、たとえばすべての* DAVサービスのリモートURLの一部でもあります。この設定を使用すると、デフォルトの動作を上書きできます。変更は、新しくマップされた(追加された)LDAPユーザーにのみ影響します。デフォルトの動作のために空のままにします。",
"Internal Username Attribute:" : "内部ユーザー名属性:",
"Override UUID detection" : "UUID検出を再定義する",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "デフォルトでは、UUID 属性は自動的に検出されます。UUID属性は、LDAPユーザーとLDAPグループを間違いなく識別するために利用されます。また、もしこれを指定しない場合は、内部ユーザー名はUUIDに基づいて作成されます。この設定は再定義することができ、あなたの選択した属性を用いることができます。選択した属性がユーザーとグループの両方に対して適用でき、かつユニークであることを確認してください。空であればデフォルトの振る舞いとなります。変更は、新しくマッピング(追加)されたLDAPユーザーとLDAPグループに対してのみ有効となります。",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピング",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は、メタデータの保存と割り当てに使用されます。 ユーザーを正確に識別して認識するために、各LDAPユーザーには内部ユーザー名が割り当てられます。 これには、ユーザー名からLDAPユーザーへのマッピングが必要です。 作成されたユーザー名は、LDAPユーザーのUUIDにマップされます。 さらに、DNはLDAPインタラクションを減らすためにキャッシュされますが、識別には使用されません。 DNが変更された場合、変更が検出されます。 内部ユーザー名はいたるところで使用されます。 マッピングをクリアすると、どこに残っているか分かります。 マッピングの消去はコンフィギュレーションセンシティブではなく、すべてのLDAP構成に影響します。 本番環境のマッピングをクリアしないでください。テスト環境または実験段階でのみ実施してください。",
"Clear Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピングをクリアする",
- "Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする"
+ "Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "デフォルトでは、内部的なユーザー名がUUID属性から作成されます。これにより、ユーザー名がユニークであり、かつ文字の変換が不要であることを保証します。内部ユーザー名には、[ a-zA-Z0-9_.@- ] の文字のみが有効であるという制限があり、その他の文字は対応する ASCII コードに変換されるか単に無視されます。そのため、他のユーザー名との衝突の回数が増加するでしょう。内部ユーザー名は、内部的にユーザーを識別するために用いられ、また、Nextcloud におけるデフォルトのホームフォルダー名としても用いられます。例えば*DAVサービスのように、リモートURLの一部でもあります。この設定により、デフォルトの振る舞いを再定義します。これは、たとえばすべての* DAVサービスのリモートURLの一部でもあります。この設定を使用すると、デフォルトの動作を上書きできます。変更は、新しくマップされた(追加された)LDAPユーザーにのみ影響します。デフォルトの動作のために空のままにします。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js
index 4de6f19a927..6db05e8bb33 100644
--- a/apps/user_ldap/l10n/nl.js
+++ b/apps/user_ldap/l10n/nl.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Plaatshouder veld",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in een externe opslag configuratie wordt vervangen door de waarde van het gespecificeerde attribuut",
"Internal Username" : "Interne gebruikersnaam",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standaard wordt de interne gebruikersnaam afgeleid van het UUID attribuut. dat zorgt ervoor dat de gebruikersnaam uniek is en dat tekens niet hoeven te worden geconverteerd. De interne gebruikersnaam heeft de beperking dat alleen deze tekens zijn toegestaan: [ a-zA-Z0-9_.@-]. Andere tekens worden vervangen door hun overeenkomstige ASCII-waarde of simpelweg weggelaten. Bij conflicten wordt een nummer toegevoegd/verhoogd. De interne gebruikersnaam wordt gebruikt om een gebruiker intern te identificeren. Het is ook de standaardnaam voor de thuis-map van de gebruiker. Het is ook onderdeel van de externe URLs, bijvoorbeeld voor alle *DAV services. Met deze instelling kan het standaardgedrag worden overschreven. Wijzigingen hebben alleen effect voor nieuw gekoppelde (toegevoegde) LDAP gebruikers.",
"Internal Username Attribute:" : "Interne gebruikersnaam attribuut:",
"Override UUID detection" : "Negeren UUID detectie",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Standaard wordt het UUID-attribuut automatisch herkend. Het UUID attribuut wordt gebruikt om LDAP-gebruikers en -groepen uniek te identificeren. Ook zal de interne gebruikersnaam worden aangemaakt op basis van het UUID, tenzij deze hierboven anders is aangegeven. Je kunt de instelling overschrijven en zelf een waarde voor het attribuut opgeven. Je moet ervoor zorgen dat het ingestelde attribuut kan worden opgehaald voor zowel gebruikers als groepen en dat het uniek is. Laat het leeg voor standaard gedrag. Veranderingen worden alleen doorgevoerd op nieuw gekoppelde (toegevoegde) LDAP-gebruikers en-groepen.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Gebruikersnaam-LDAP gebruikers vertaling",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Gebruikersnamen worden gebruikt om metadata op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een ​​LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving.",
"Clear Username-LDAP User Mapping" : "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling",
- "Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling"
+ "Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standaard wordt de interne gebruikersnaam afgeleid van het UUID attribuut. dat zorgt ervoor dat de gebruikersnaam uniek is en dat tekens niet hoeven te worden geconverteerd. De interne gebruikersnaam heeft de beperking dat alleen deze tekens zijn toegestaan: [ a-zA-Z0-9_.@-]. Andere tekens worden vervangen door hun overeenkomstige ASCII-waarde of simpelweg weggelaten. Bij conflicten wordt een nummer toegevoegd/verhoogd. De interne gebruikersnaam wordt gebruikt om een gebruiker intern te identificeren. Het is ook de standaardnaam voor de thuis-map van de gebruiker. Het is ook onderdeel van de externe URLs, bijvoorbeeld voor alle *DAV services. Met deze instelling kan het standaardgedrag worden overschreven. Wijzigingen hebben alleen effect voor nieuw gekoppelde (toegevoegde) LDAP gebruikers."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json
index fbddeb1ef14..1fc8c58781e 100644
--- a/apps/user_ldap/l10n/nl.json
+++ b/apps/user_ldap/l10n/nl.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Plaatshouder veld",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in een externe opslag configuratie wordt vervangen door de waarde van het gespecificeerde attribuut",
"Internal Username" : "Interne gebruikersnaam",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standaard wordt de interne gebruikersnaam afgeleid van het UUID attribuut. dat zorgt ervoor dat de gebruikersnaam uniek is en dat tekens niet hoeven te worden geconverteerd. De interne gebruikersnaam heeft de beperking dat alleen deze tekens zijn toegestaan: [ a-zA-Z0-9_.@-]. Andere tekens worden vervangen door hun overeenkomstige ASCII-waarde of simpelweg weggelaten. Bij conflicten wordt een nummer toegevoegd/verhoogd. De interne gebruikersnaam wordt gebruikt om een gebruiker intern te identificeren. Het is ook de standaardnaam voor de thuis-map van de gebruiker. Het is ook onderdeel van de externe URLs, bijvoorbeeld voor alle *DAV services. Met deze instelling kan het standaardgedrag worden overschreven. Wijzigingen hebben alleen effect voor nieuw gekoppelde (toegevoegde) LDAP gebruikers.",
"Internal Username Attribute:" : "Interne gebruikersnaam attribuut:",
"Override UUID detection" : "Negeren UUID detectie",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Standaard wordt het UUID-attribuut automatisch herkend. Het UUID attribuut wordt gebruikt om LDAP-gebruikers en -groepen uniek te identificeren. Ook zal de interne gebruikersnaam worden aangemaakt op basis van het UUID, tenzij deze hierboven anders is aangegeven. Je kunt de instelling overschrijven en zelf een waarde voor het attribuut opgeven. Je moet ervoor zorgen dat het ingestelde attribuut kan worden opgehaald voor zowel gebruikers als groepen en dat het uniek is. Laat het leeg voor standaard gedrag. Veranderingen worden alleen doorgevoerd op nieuw gekoppelde (toegevoegde) LDAP-gebruikers en-groepen.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Gebruikersnaam-LDAP gebruikers vertaling",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Gebruikersnamen worden gebruikt om metadata op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een ​​LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving.",
"Clear Username-LDAP User Mapping" : "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling",
- "Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling"
+ "Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Standaard wordt de interne gebruikersnaam afgeleid van het UUID attribuut. dat zorgt ervoor dat de gebruikersnaam uniek is en dat tekens niet hoeven te worden geconverteerd. De interne gebruikersnaam heeft de beperking dat alleen deze tekens zijn toegestaan: [ a-zA-Z0-9_.@-]. Andere tekens worden vervangen door hun overeenkomstige ASCII-waarde of simpelweg weggelaten. Bij conflicten wordt een nummer toegevoegd/verhoogd. De interne gebruikersnaam wordt gebruikt om een gebruiker intern te identificeren. Het is ook de standaardnaam voor de thuis-map van de gebruiker. Het is ook onderdeel van de externe URLs, bijvoorbeeld voor alle *DAV services. Met deze instelling kan het standaardgedrag worden overschreven. Wijzigingen hebben alleen effect voor nieuw gekoppelde (toegevoegde) LDAP gebruikers."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js
index 06390f2838f..3d0f4b0ff3e 100644
--- a/apps/user_ldap/l10n/pl.js
+++ b/apps/user_ldap/l10n/pl.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Pole zastępcze \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home w zewnętrznej konfiguracji pamięci zostanie zastąpiony wartością określonego atrybutu",
"Internal Username" : "Wewnętrzna nazwa użytkownika",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług *DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste.",
"Internal Username Attribute:" : "Wewnętrzny atrybut nazwy uzżytkownika:",
"Override UUID detection" : "Zastąp wykrywanie UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Domyślnie, atrybut UUID jest wykrywany automatycznie. Atrybut UUID jest używany do niepodważalnej identyfikacji użytkowników i grup LDAP. Również wewnętrzna nazwa użytkownika zostanie stworzona na bazie UUID, jeśli nie zostanie podana powyżej. Możesz nadpisać to ustawienie i użyć atrybutu wedle uznania. Musisz się jednak upewnić, że atrybut ten może zostać pobrany zarówno dla użytkowników, jak i grup i jest unikalny. Pozostaw puste dla domyślnego zachowania. Zmiany będą miały wpływ tylko na nowo przypisanych (dodanych) użytkowników i grupy LDAP.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Mapowanie użytkownika LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nazwy użytkowników służą do przechowywania i przypisywania metadanych. Aby precyzyjnie zidentyfikować i rozpoznać użytkowników, każdy użytkownik LDAP będzie miał wewnętrzną nazwę użytkownika. Wymaga to mapowania z nazwy użytkownika na użytkownika LDAP. Utworzona nazwa użytkownika jest mapowana na UUID użytkownika LDAP. Dodatkowo DN jest buforowany w celu zmniejszenia interakcji LDAP, ale nie jest używany do identyfikacji. Zmiany zostaną wykryte jeśli DN zmieni się. Wewnętrzna nazwa użytkownika jest używana wszędzie. Wyczyszczenie mapowań pozostawi pozostałości po nim. Wyczyszczenie mapowań nie ma wpływu na konfigurację, ale ma wpływ na wszystkie konfiguracje LDAP! Nigdy nie usuwaj mapowań w środowisku produkcyjnym, tylko na etapie testowym lub eksperymentalnym.",
"Clear Username-LDAP User Mapping" : "Czyść Mapowanie użytkownika LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług *DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json
index 3d1267047f0..c4fe450110b 100644
--- a/apps/user_ldap/l10n/pl.json
+++ b/apps/user_ldap/l10n/pl.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Pole zastępcze \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home w zewnętrznej konfiguracji pamięci zostanie zastąpiony wartością określonego atrybutu",
"Internal Username" : "Wewnętrzna nazwa użytkownika",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług *DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste.",
"Internal Username Attribute:" : "Wewnętrzny atrybut nazwy uzżytkownika:",
"Override UUID detection" : "Zastąp wykrywanie UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Domyślnie, atrybut UUID jest wykrywany automatycznie. Atrybut UUID jest używany do niepodważalnej identyfikacji użytkowników i grup LDAP. Również wewnętrzna nazwa użytkownika zostanie stworzona na bazie UUID, jeśli nie zostanie podana powyżej. Możesz nadpisać to ustawienie i użyć atrybutu wedle uznania. Musisz się jednak upewnić, że atrybut ten może zostać pobrany zarówno dla użytkowników, jak i grup i jest unikalny. Pozostaw puste dla domyślnego zachowania. Zmiany będą miały wpływ tylko na nowo przypisanych (dodanych) użytkowników i grupy LDAP.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Mapowanie użytkownika LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nazwy użytkowników służą do przechowywania i przypisywania metadanych. Aby precyzyjnie zidentyfikować i rozpoznać użytkowników, każdy użytkownik LDAP będzie miał wewnętrzną nazwę użytkownika. Wymaga to mapowania z nazwy użytkownika na użytkownika LDAP. Utworzona nazwa użytkownika jest mapowana na UUID użytkownika LDAP. Dodatkowo DN jest buforowany w celu zmniejszenia interakcji LDAP, ale nie jest używany do identyfikacji. Zmiany zostaną wykryte jeśli DN zmieni się. Wewnętrzna nazwa użytkownika jest używana wszędzie. Wyczyszczenie mapowań pozostawi pozostałości po nim. Wyczyszczenie mapowań nie ma wpływu na konfigurację, ale ma wpływ na wszystkie konfiguracje LDAP! Nigdy nie usuwaj mapowań w środowisku produkcyjnym, tylko na etapie testowym lub eksperymentalnym.",
"Clear Username-LDAP User Mapping" : "Czyść Mapowanie użytkownika LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Domyślnie wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID. Zapewnia to unikalność nazwy użytkownika, a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika ma ograniczenie, dlatego dozwolone są tylko znaki: [a-zA-Z0-9_.@-]. Inne znaki są zastępowane przez ich odpowiedniki ASCII lub po prostu pomijane. W przypadku kolizji zostanie dodany/zwiększony numer. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest również domyślną nazwą katalogu domowego użytkownika oraz częścią zdalnych adresów URL, na przykład dla wszystkich usług *DAV. Dzięki temu ustawieniu można zastąpić domyślne zachowanie. Zmiany będą miały wpływ tylko na nowo zmapowanych (dodanych) użytkowników LDAP. Dla domyślnego zachowania pozostaw to puste."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js
index 8b58e1c10ba..5728774d652 100644
--- a/apps/user_ldap/l10n/pt_BR.js
+++ b/apps/user_ldap/l10n/pt_BR.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Campo Reservado \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home em uma configuração de armazenamento externo será substituído pelo valor do atributo especificado",
"Internal Username" : "Nome de usuário interno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por padrão, o nome de usuário interno será criado a partir do atributo UUID. Isso garante que o nome de usuário seja único e os caracteres não precisem ser convertidos. O nome de usuário interno tem a restrição de que apenas estes caracteres são permitidos: [a-zA-Z0-9 _. @ -]. Outros caracteres são substituídos por sua correspondência ASCII ou simplesmente omitidos. Em colisões, um número será adicionado / aumentado. O nome de usuário interno é usado para identificar um usuário internamente. É também o nome padrão da pasta inicial do usuário. Também faz parte de URLs remotos, por exemplo, para todos os serviços * DAV. Com essa configuração, o comportamento padrão pode ser substituído. As alterações terão efeito apenas em usuários LDAP recém-mapeados (adicionados). Deixe em branco para o comportamento padrão.",
"Internal Username Attribute:" : "Atributo Interno de Nome de Usuário:",
"Override UUID detection" : "Substituir detecção UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por padrão, o atributo UUID é detectado automaticamente. O atributo UUID é usado para identificar corretamente os usuários e grupos LDAP. Além disso, o nome de usuário interno será criado com base no UUID, se não especificado acima. Você pode substituir a configuração e passar um atributo de sua escolha. Você deve certificar-se de que o atributo de sua escolha pode ser lido tanto por usuários quanto por grupos, e que seja único. Deixe-o em branco para o comportamento padrão. As alterações terão efeito apenas para usuários e grupos LDAP recém mapeados (adicionados).",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Mapeamento de Usuário Username-LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Os nomes de usuários são usados para armazenar e atribuir metadados. Para identificar e reconhecer com precisão os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN também é armazenado em cache para reduzir a interação LDAP, mas não é usado para identificação. Se o DN mudar, as alterações serão encontradas. O nome de usuário interno é usado em todo lugar. Limpar os mapeamentos gerará sobras em todos os lugares. Limpar os mapeamentos não é sensível à configuração e afeta todas as configurações do LDAP! Nunca limpe os mapeamentos em um ambiente de produção, apenas em um estágio de teste ou experimental.",
"Clear Username-LDAP User Mapping" : "Limpar Mapeamento de Usuário username-LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por padrão, o nome de usuário interno será criado a partir do atributo UUID. Isso garante que o nome de usuário seja único e os caracteres não precisem ser convertidos. O nome de usuário interno tem a restrição de que apenas estes caracteres são permitidos: [a-zA-Z0-9 _. @ -]. Outros caracteres são substituídos por sua correspondência ASCII ou simplesmente omitidos. Em colisões, um número será adicionado / aumentado. O nome de usuário interno é usado para identificar um usuário internamente. É também o nome padrão da pasta inicial do usuário. Também faz parte de URLs remotos, por exemplo, para todos os serviços * DAV. Com essa configuração, o comportamento padrão pode ser substituído. As alterações terão efeito apenas em usuários LDAP recém-mapeados (adicionados). Deixe em branco para o comportamento padrão."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json
index d68c76225ea..c471ee4b424 100644
--- a/apps/user_ldap/l10n/pt_BR.json
+++ b/apps/user_ldap/l10n/pt_BR.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Campo Reservado \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home em uma configuração de armazenamento externo será substituído pelo valor do atributo especificado",
"Internal Username" : "Nome de usuário interno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por padrão, o nome de usuário interno será criado a partir do atributo UUID. Isso garante que o nome de usuário seja único e os caracteres não precisem ser convertidos. O nome de usuário interno tem a restrição de que apenas estes caracteres são permitidos: [a-zA-Z0-9 _. @ -]. Outros caracteres são substituídos por sua correspondência ASCII ou simplesmente omitidos. Em colisões, um número será adicionado / aumentado. O nome de usuário interno é usado para identificar um usuário internamente. É também o nome padrão da pasta inicial do usuário. Também faz parte de URLs remotos, por exemplo, para todos os serviços * DAV. Com essa configuração, o comportamento padrão pode ser substituído. As alterações terão efeito apenas em usuários LDAP recém-mapeados (adicionados). Deixe em branco para o comportamento padrão.",
"Internal Username Attribute:" : "Atributo Interno de Nome de Usuário:",
"Override UUID detection" : "Substituir detecção UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por padrão, o atributo UUID é detectado automaticamente. O atributo UUID é usado para identificar corretamente os usuários e grupos LDAP. Além disso, o nome de usuário interno será criado com base no UUID, se não especificado acima. Você pode substituir a configuração e passar um atributo de sua escolha. Você deve certificar-se de que o atributo de sua escolha pode ser lido tanto por usuários quanto por grupos, e que seja único. Deixe-o em branco para o comportamento padrão. As alterações terão efeito apenas para usuários e grupos LDAP recém mapeados (adicionados).",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Mapeamento de Usuário Username-LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Os nomes de usuários são usados para armazenar e atribuir metadados. Para identificar e reconhecer com precisão os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN também é armazenado em cache para reduzir a interação LDAP, mas não é usado para identificação. Se o DN mudar, as alterações serão encontradas. O nome de usuário interno é usado em todo lugar. Limpar os mapeamentos gerará sobras em todos os lugares. Limpar os mapeamentos não é sensível à configuração e afeta todas as configurações do LDAP! Nunca limpe os mapeamentos em um ambiente de produção, apenas em um estágio de teste ou experimental.",
"Clear Username-LDAP User Mapping" : "Limpar Mapeamento de Usuário username-LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Por padrão, o nome de usuário interno será criado a partir do atributo UUID. Isso garante que o nome de usuário seja único e os caracteres não precisem ser convertidos. O nome de usuário interno tem a restrição de que apenas estes caracteres são permitidos: [a-zA-Z0-9 _. @ -]. Outros caracteres são substituídos por sua correspondência ASCII ou simplesmente omitidos. Em colisões, um número será adicionado / aumentado. O nome de usuário interno é usado para identificar um usuário internamente. É também o nome padrão da pasta inicial do usuário. Também faz parte de URLs remotos, por exemplo, para todos os serviços * DAV. Com essa configuração, o comportamento padrão pode ser substituído. As alterações terão efeito apenas em usuários LDAP recém-mapeados (adicionados). Deixe em branco para o comportamento padrão."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js
index 875c27a9787..97c5dec096d 100644
--- a/apps/user_ldap/l10n/ru.js
+++ b/apps/user_ldap/l10n/ru.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Поле-заполнитель \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "В конфигурации внешнего хранилища $home будет заменен значением указанного атрибута",
"Internal Username" : "Внутреннее имя пользователя",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано из атрибута UUID. Это даёт гарантию того, что имя пользователя уникально и символы не нужно конвертировать. Внутреннее имя пользователя имеет ограничение на то, что только эти символы допустимы: [ a-zA-Z0-9_.@-]. Другие символы замещаются их корреспондирующими символами ASCII или же просто отбрасываются. При коллизиях добавляется или увеличивается номер. Внутреннее имя пользователя используется для идентификации пользователя внутри системы. Также это по умолчанию имя для домашней папки пользователя. Также это часть адресов URL, например для всех служб *DAV. С помощью этой установки, поведение по умолчанию может быть изменено. Оставьте его пустым для поведения по умолчанию. Изменения будут иметь эффект только для вновь спроецированных (добавленных) пользователей LDAP. ",
"Internal Username Attribute:" : "Атрибут для внутреннего имени:",
"Override UUID detection" : "Переопределить нахождение UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "По умолчанию ownCloud определяет атрибут UUID автоматически. Этот атрибут используется для того, чтобы достоверно идентифицировать пользователей и группы LDAP. Также на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Соответствия Имя-Пользователь LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Имена пользователей используются для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя используется повсеместно. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования.",
"Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано из атрибута UUID. Это даёт гарантию того, что имя пользователя уникально и символы не нужно конвертировать. Внутреннее имя пользователя имеет ограничение на то, что только эти символы допустимы: [ a-zA-Z0-9_.@-]. Другие символы замещаются их корреспондирующими символами ASCII или же просто отбрасываются. При коллизиях добавляется или увеличивается номер. Внутреннее имя пользователя используется для идентификации пользователя внутри системы. Также это по умолчанию имя для домашней папки пользователя. Также это часть адресов URL, например для всех служб *DAV. С помощью этой установки, поведение по умолчанию может быть изменено. Оставьте его пустым для поведения по умолчанию. Изменения будут иметь эффект только для вновь спроецированных (добавленных) пользователей LDAP. "
},
"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 15d8f44d1d0..b69e8d11da1 100644
--- a/apps/user_ldap/l10n/ru.json
+++ b/apps/user_ldap/l10n/ru.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Поле-заполнитель \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "В конфигурации внешнего хранилища $home будет заменен значением указанного атрибута",
"Internal Username" : "Внутреннее имя пользователя",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано из атрибута UUID. Это даёт гарантию того, что имя пользователя уникально и символы не нужно конвертировать. Внутреннее имя пользователя имеет ограничение на то, что только эти символы допустимы: [ a-zA-Z0-9_.@-]. Другие символы замещаются их корреспондирующими символами ASCII или же просто отбрасываются. При коллизиях добавляется или увеличивается номер. Внутреннее имя пользователя используется для идентификации пользователя внутри системы. Также это по умолчанию имя для домашней папки пользователя. Также это часть адресов URL, например для всех служб *DAV. С помощью этой установки, поведение по умолчанию может быть изменено. Оставьте его пустым для поведения по умолчанию. Изменения будут иметь эффект только для вновь спроецированных (добавленных) пользователей LDAP. ",
"Internal Username Attribute:" : "Атрибут для внутреннего имени:",
"Override UUID detection" : "Переопределить нахождение UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "По умолчанию ownCloud определяет атрибут UUID автоматически. Этот атрибут используется для того, чтобы достоверно идентифицировать пользователей и группы LDAP. Также на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Соответствия Имя-Пользователь LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Имена пользователей используются для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя используется повсеместно. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования.",
"Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "По умолчанию внутреннее имя пользователя будет создано из атрибута UUID. Это даёт гарантию того, что имя пользователя уникально и символы не нужно конвертировать. Внутреннее имя пользователя имеет ограничение на то, что только эти символы допустимы: [ a-zA-Z0-9_.@-]. Другие символы замещаются их корреспондирующими символами ASCII или же просто отбрасываются. При коллизиях добавляется или увеличивается номер. Внутреннее имя пользователя используется для идентификации пользователя внутри системы. Также это по умолчанию имя для домашней папки пользователя. Также это часть адресов URL, например для всех служб *DAV. С помощью этой установки, поведение по умолчанию может быть изменено. Оставьте его пустым для поведения по умолчанию. Изменения будут иметь эффект только для вновь спроецированных (добавленных) пользователей LDAP. "
},"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/sc.js b/apps/user_ldap/l10n/sc.js
index 1441ef541d6..1ee542957e2 100644
--- a/apps/user_ldap/l10n/sc.js
+++ b/apps/user_ldap/l10n/sc.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Campu sostitutu temporàneu",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in una cunfiguratzione de archiviatzione de foras s'at a cambiare cun su valore de s'atributu ispetzìficu",
"Internal Username" : "Nùmene utente de intro",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "A manera predefinida, su nùmene utente de intro s'at a creare dae s'atributu UUID. Si segurat chi su nùmene utente siat ùnicu e chi non si depant cunvertire is caràteres. Su nùmene utente de intro permitit s'impreu de caràteres ispetzìficos: [a-zA-Z0-9_.@-]. Is àteros caràteres si cambiant cun sa currispondèntzia ASCII o non si ponent. S'in casu de cunflitu, s'agiunghet/creschet unu nùmeru. Su nùmene utente de intro s'impreat pro identificare un'utente de intro. Est puru su nùmene predefinidu pro sa cartella printzipale de s'utente. Est puru una parte de URL remotos, pro esèmpiu pro totu is servìtzios *DAV. Cun custa impostatzione, su funtzionamentu predefinidu si podet brincare. Is càmbios ant a èssere efetivos isceti in is utèntzias noas assotziadas LDAP (agiuntas). Lassa bòidu pro funtzionamentu predefinidu.",
"Internal Username Attribute:" : "Atributu nùmene utente de intro:",
"Override UUID detection" : "Ignora rilevada UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "A manera predefinida, s'atributu UUID si rilevat in automàticu. S'atributu UUID est impreadu pro identificare cun seguresa is utentes e grupos LDAP. In prus, su nùmene utente de intro s'at a creare basadu subra de s'UUID, si non s'ispetzìficat àteru. Podes ignorare s'impostatzione e frunire un'atributu seberadu dae te. Ti depes segurare chi s'atributu seberadu si potzat otènnere siat pro utenets siat pro grupos e chi siat ùnicu. Lassa bòidu pro funtzionamentu predefinidu. Is càmbios ant a èssere efetivos isceti pro is ùtèntzias e grupos noos LDAP assotziados (agiuntos).",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Assòtziu Nùmene utente-Utente LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Is nùmenes utente d'impreant pro archiviare e assignare is metadatos. Pro identificare a pretzisu e connòschere is utentes, cada utente LDAP at a tènnere unu nùmene utente de intro. Custu rechedet un'assòtziu dae nùmene utente a utente LDAP. Su nùmene utente creadu est assotziadu a s'UUID de s'utente LDAP. In prus su DN si ponet in memòria temporànea pro minimare s'interatzione cun LDAP, ma non s'impreat pro s'identificatzione. Si su DN càmbiat, is càmbios s'ant a agatare. Su nùmene utente de intro s'impreat in totue. Limpiende is assòtzios s'ant a lassare arrastos a s'at a interessare totu sa cunfiguratzione LDAP! Non limpies mai is assòtzios in un'ambiente de produtzione, ma isceti in una fase de proa o isperimentos.",
"Clear Username-LDAP User Mapping" : "Lìmpia assòtziu Nùmene utente-Utente LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Lìmpia assòtziu Nùmene de su grupu-Grupu LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Lìmpia assòtziu Nùmene de su grupu-Grupu LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "A manera predefinida, su nùmene utente de intro s'at a creare dae s'atributu UUID. Si segurat chi su nùmene utente siat ùnicu e chi non si depant cunvertire is caràteres. Su nùmene utente de intro permitit s'impreu de caràteres ispetzìficos: [a-zA-Z0-9_.@-]. Is àteros caràteres si cambiant cun sa currispondèntzia ASCII o non si ponent. S'in casu de cunflitu, s'agiunghet/creschet unu nùmeru. Su nùmene utente de intro s'impreat pro identificare un'utente de intro. Est puru su nùmene predefinidu pro sa cartella printzipale de s'utente. Est puru una parte de URL remotos, pro esèmpiu pro totu is servìtzios *DAV. Cun custa impostatzione, su funtzionamentu predefinidu si podet brincare. Is càmbios ant a èssere efetivos isceti in is utèntzias noas assotziadas LDAP (agiuntas). Lassa bòidu pro funtzionamentu predefinidu."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/sc.json b/apps/user_ldap/l10n/sc.json
index 8ccfc45015c..aa853747535 100644
--- a/apps/user_ldap/l10n/sc.json
+++ b/apps/user_ldap/l10n/sc.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Campu sostitutu temporàneu",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$home in una cunfiguratzione de archiviatzione de foras s'at a cambiare cun su valore de s'atributu ispetzìficu",
"Internal Username" : "Nùmene utente de intro",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "A manera predefinida, su nùmene utente de intro s'at a creare dae s'atributu UUID. Si segurat chi su nùmene utente siat ùnicu e chi non si depant cunvertire is caràteres. Su nùmene utente de intro permitit s'impreu de caràteres ispetzìficos: [a-zA-Z0-9_.@-]. Is àteros caràteres si cambiant cun sa currispondèntzia ASCII o non si ponent. S'in casu de cunflitu, s'agiunghet/creschet unu nùmeru. Su nùmene utente de intro s'impreat pro identificare un'utente de intro. Est puru su nùmene predefinidu pro sa cartella printzipale de s'utente. Est puru una parte de URL remotos, pro esèmpiu pro totu is servìtzios *DAV. Cun custa impostatzione, su funtzionamentu predefinidu si podet brincare. Is càmbios ant a èssere efetivos isceti in is utèntzias noas assotziadas LDAP (agiuntas). Lassa bòidu pro funtzionamentu predefinidu.",
"Internal Username Attribute:" : "Atributu nùmene utente de intro:",
"Override UUID detection" : "Ignora rilevada UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "A manera predefinida, s'atributu UUID si rilevat in automàticu. S'atributu UUID est impreadu pro identificare cun seguresa is utentes e grupos LDAP. In prus, su nùmene utente de intro s'at a creare basadu subra de s'UUID, si non s'ispetzìficat àteru. Podes ignorare s'impostatzione e frunire un'atributu seberadu dae te. Ti depes segurare chi s'atributu seberadu si potzat otènnere siat pro utenets siat pro grupos e chi siat ùnicu. Lassa bòidu pro funtzionamentu predefinidu. Is càmbios ant a èssere efetivos isceti pro is ùtèntzias e grupos noos LDAP assotziados (agiuntos).",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Assòtziu Nùmene utente-Utente LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Is nùmenes utente d'impreant pro archiviare e assignare is metadatos. Pro identificare a pretzisu e connòschere is utentes, cada utente LDAP at a tènnere unu nùmene utente de intro. Custu rechedet un'assòtziu dae nùmene utente a utente LDAP. Su nùmene utente creadu est assotziadu a s'UUID de s'utente LDAP. In prus su DN si ponet in memòria temporànea pro minimare s'interatzione cun LDAP, ma non s'impreat pro s'identificatzione. Si su DN càmbiat, is càmbios s'ant a agatare. Su nùmene utente de intro s'impreat in totue. Limpiende is assòtzios s'ant a lassare arrastos a s'at a interessare totu sa cunfiguratzione LDAP! Non limpies mai is assòtzios in un'ambiente de produtzione, ma isceti in una fase de proa o isperimentos.",
"Clear Username-LDAP User Mapping" : "Lìmpia assòtziu Nùmene utente-Utente LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Lìmpia assòtziu Nùmene de su grupu-Grupu LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Lìmpia assòtziu Nùmene de su grupu-Grupu LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "A manera predefinida, su nùmene utente de intro s'at a creare dae s'atributu UUID. Si segurat chi su nùmene utente siat ùnicu e chi non si depant cunvertire is caràteres. Su nùmene utente de intro permitit s'impreu de caràteres ispetzìficos: [a-zA-Z0-9_.@-]. Is àteros caràteres si cambiant cun sa currispondèntzia ASCII o non si ponent. S'in casu de cunflitu, s'agiunghet/creschet unu nùmeru. Su nùmene utente de intro s'impreat pro identificare un'utente de intro. Est puru su nùmene predefinidu pro sa cartella printzipale de s'utente. Est puru una parte de URL remotos, pro esèmpiu pro totu is servìtzios *DAV. Cun custa impostatzione, su funtzionamentu predefinidu si podet brincare. Is càmbios ant a èssere efetivos isceti in is utèntzias noas assotziadas LDAP (agiuntas). Lassa bòidu pro funtzionamentu predefinidu."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/sk.js b/apps/user_ldap/l10n/sk.js
index d57816d18c3..db140b7d85f 100644
--- a/apps/user_ldap/l10n/sk.js
+++ b/apps/user_ldap/l10n/sk.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Výplňová kolónka „$home“",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$ home bude v nastavení externého úložiska nahradená hodnotou zadaného atribútu ",
"Internal Username" : "Interné používateľské meno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "V predvolenom nastavení sa interné používateľské meno vytvorí z atribútu UUID. Zabezpečuje jedinečnosť používateľského mena a nie je potrebné meniť znaky. Interné používateľské meno má obmedzenia, ktoré povoľujú iba tieto znaky: [a-zA-Z0-9 _. @ -]. Ostatné znaky sa nahradia zodpovedajúcimi znakmi ASCII alebo sa jednoducho vynechajú. Pri konfliktoch bude pridané/zvýšené číslo. Interné používateľské meno sa používa na internú identifikáciu používateľa. Je to tiež predvolený názov domovského priečinka používateľa. Je tiež súčasťou URL, napríklad pre všetky služby * DAV. Týmto nastavením môže byť predvolené správanie zmenené. Nechajte prázdne ak chcete nechať predvolené nastavenie. Zmeny majú vplyv iba na novo namapovaných (pridaných) užívateľov LDAP.",
"Internal Username Attribute:" : "Atribút interného používateľského mena:",
"Override UUID detection" : "Prepísať UUID detekciu",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "V predvolenom nastavení sa atribút UUID deteguje automaticky. Atribút UUID sa používa na jednoznačnú identifikáciu používateľov a skupín z LDAPu. Naviac sa na základe UUID vytvára aj interné používateľské meno, ak nie je nastavené inak. Môžete predvolené nastavenie prepísať a použiť atribút ktorý si sami zvolíte. Musíte sa ale ubezpečiť, že atribút, ktorý vyberiete, bude uvedený pri používateľoch aj pri skupinách a bude jedinečný. Ak voľbu ponecháte prázdnu, použije sa predvolené správanie. Zmena bude mať vplyv len na novo namapovaných (pridaných) používateľov a skupiny z LDAPu.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Mapovanie názvov LDAP používateľských mien",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Používateľské mená sa používajú na ukladanie a prideľovanie meta údajov. Pre presnú identifikáciu a rozpoznávanie má každý používateľ LDAP interné používateľské meno. To si vyžaduje mapovanie používateľského mena na užívateľa LDAP. Vytvorené meno používateľa je mapované na UUID používateľa LDAP. Okrem toho sa DN ukladá aj do vyrovnávacej pamäte, aby sa znížila interakcia LDAP, ale nepoužíva sa na identifikáciu. Ak sa DN zmení, zmeny sa nájdu. Interné používateľské meno sa používa všade. Vymazanie mápovania bude mať pozostatky všade. Vymazanie mapovania nie je citlivé na nastavenie, ovplyvňuje všetky nastavenia LDAP! Nikdy nemažte mapovanie vo produkčnom prostredí, ale iba v testovacej alebo experimentálnej fáze.",
"Clear Username-LDAP User Mapping" : "Zrušiť mapovanie LDAP používateľských mien",
- "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín"
+ "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "V predvolenom nastavení sa interné používateľské meno vytvorí z atribútu UUID. Zabezpečuje jedinečnosť používateľského mena a nie je potrebné meniť znaky. Interné používateľské meno má obmedzenia, ktoré povoľujú iba tieto znaky: [a-zA-Z0-9 _. @ -]. Ostatné znaky sa nahradia zodpovedajúcimi znakmi ASCII alebo sa jednoducho vynechajú. Pri konfliktoch bude pridané/zvýšené číslo. Interné používateľské meno sa používa na internú identifikáciu používateľa. Je to tiež predvolený názov domovského priečinka používateľa. Je tiež súčasťou URL, napríklad pre všetky služby * DAV. Týmto nastavením môže byť predvolené správanie zmenené. Nechajte prázdne ak chcete nechať predvolené nastavenie. Zmeny majú vplyv iba na novo namapovaných (pridaných) užívateľov LDAP."
},
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/user_ldap/l10n/sk.json b/apps/user_ldap/l10n/sk.json
index a4cf9f55c0b..fd49f95e6da 100644
--- a/apps/user_ldap/l10n/sk.json
+++ b/apps/user_ldap/l10n/sk.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Výplňová kolónka „$home“",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "$ home bude v nastavení externého úložiska nahradená hodnotou zadaného atribútu ",
"Internal Username" : "Interné používateľské meno",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "V predvolenom nastavení sa interné používateľské meno vytvorí z atribútu UUID. Zabezpečuje jedinečnosť používateľského mena a nie je potrebné meniť znaky. Interné používateľské meno má obmedzenia, ktoré povoľujú iba tieto znaky: [a-zA-Z0-9 _. @ -]. Ostatné znaky sa nahradia zodpovedajúcimi znakmi ASCII alebo sa jednoducho vynechajú. Pri konfliktoch bude pridané/zvýšené číslo. Interné používateľské meno sa používa na internú identifikáciu používateľa. Je to tiež predvolený názov domovského priečinka používateľa. Je tiež súčasťou URL, napríklad pre všetky služby * DAV. Týmto nastavením môže byť predvolené správanie zmenené. Nechajte prázdne ak chcete nechať predvolené nastavenie. Zmeny majú vplyv iba na novo namapovaných (pridaných) užívateľov LDAP.",
"Internal Username Attribute:" : "Atribút interného používateľského mena:",
"Override UUID detection" : "Prepísať UUID detekciu",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "V predvolenom nastavení sa atribút UUID deteguje automaticky. Atribút UUID sa používa na jednoznačnú identifikáciu používateľov a skupín z LDAPu. Naviac sa na základe UUID vytvára aj interné používateľské meno, ak nie je nastavené inak. Môžete predvolené nastavenie prepísať a použiť atribút ktorý si sami zvolíte. Musíte sa ale ubezpečiť, že atribút, ktorý vyberiete, bude uvedený pri používateľoch aj pri skupinách a bude jedinečný. Ak voľbu ponecháte prázdnu, použije sa predvolené správanie. Zmena bude mať vplyv len na novo namapovaných (pridaných) používateľov a skupiny z LDAPu.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Mapovanie názvov LDAP používateľských mien",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Používateľské mená sa používajú na ukladanie a prideľovanie meta údajov. Pre presnú identifikáciu a rozpoznávanie má každý používateľ LDAP interné používateľské meno. To si vyžaduje mapovanie používateľského mena na užívateľa LDAP. Vytvorené meno používateľa je mapované na UUID používateľa LDAP. Okrem toho sa DN ukladá aj do vyrovnávacej pamäte, aby sa znížila interakcia LDAP, ale nepoužíva sa na identifikáciu. Ak sa DN zmení, zmeny sa nájdu. Interné používateľské meno sa používa všade. Vymazanie mápovania bude mať pozostatky všade. Vymazanie mapovania nie je citlivé na nastavenie, ovplyvňuje všetky nastavenia LDAP! Nikdy nemažte mapovanie vo produkčnom prostredí, ale iba v testovacej alebo experimentálnej fáze.",
"Clear Username-LDAP User Mapping" : "Zrušiť mapovanie LDAP používateľských mien",
- "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín"
+ "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "V predvolenom nastavení sa interné používateľské meno vytvorí z atribútu UUID. Zabezpečuje jedinečnosť používateľského mena a nie je potrebné meniť znaky. Interné používateľské meno má obmedzenia, ktoré povoľujú iba tieto znaky: [a-zA-Z0-9 _. @ -]. Ostatné znaky sa nahradia zodpovedajúcimi znakmi ASCII alebo sa jednoducho vynechajú. Pri konfliktoch bude pridané/zvýšené číslo. Interné používateľské meno sa používa na internú identifikáciu používateľa. Je to tiež predvolený názov domovského priečinka používateľa. Je tiež súčasťou URL, napríklad pre všetky služby * DAV. Týmto nastavením môže byť predvolené správanie zmenené. Nechajte prázdne ak chcete nechať predvolené nastavenie. Zmeny majú vplyv iba na novo namapovaných (pridaných) užívateľov LDAP."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/sl.js b/apps/user_ldap/l10n/sl.js
index 529ea067e5a..f0ce477ab1a 100644
--- a/apps/user_ldap/l10n/sl.js
+++ b/apps/user_ldap/l10n/sl.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "Polje vsebnika »$home«",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Vrednost »$home« bo znotraj nastavitev zunanje shrambe zamenjaj z vrednostjo določenega atributa.",
"Internal Username" : "Programsko uporabniško ime",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Privzeto je notranje uporabniško ime ustvarjeno po atributu UUID. To zagotavlja, da je uporabniško ime enkratno in da znakov ni treba posebej pretvarjati. Notrajne uporabniško ime ima določeno omejitev uporabe izključno znakov [a-zA-Z0-9_.@- ]. Vsi drugi znaki so zamenjani z ustreznimi ASCII zamenjavami ali pa so enostavno izpuščeni. V primeru spora je k imenu dodana še številka. Notranje uporabniško ime je namenjeno določitvi istovetnosti in je hkrati tudi privzeto ime uporabnikove osebne mape. Je tudi del oddaljenega naslova URL, na primer za vse storitve *DAV. Ta možnost nastavitve privzetega sistema prepiše, spremembe pa se uveljavijo le za na novo dodane (preslikane) uporabnike LDAP. Za privzeto delovanje mora biti polje prazno.",
"Internal Username Attribute:" : "Programski atribut uporabniškega imena:",
"Override UUID detection" : "Prezri zaznavo UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Privzeto je atribut UUID samodejno zaznan. Uporabljen je za določevanje uporabnikov LDAP in skupin. Notranje uporabniško ime je določeno prav na atributu UUID, če ni določeno drugače. To nastavitev je mogoče prepisati in poslati poljuben atribut. Zagotoviti je treba le, da je ta pridobljen kot enolični podatek za uporabnika ali skupino. Prazno polje določa privzeti način. Spremembe bodo vplivale na novo preslikane (dodane) uporabnike LDAP in skupine.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Uporabniška preslikava uporabniškega imena na LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uporabniška imena se uporabljajo za shranjevanje in dodeljevanje metapodatkov. Za natančno določevanje uporabnikov je vsakemu uporabniku LDAP preslikano tudi notranje uporabniško ime in sicer na UUID uporabnika LDAP. Poleg tega se enoznačno ime DN shrani tudi v predpomnilnik, da se zmanjša število poslanih zahtevkov na strežnik, a se to ne uporablja za določevanje. Če se enoznačno ime spremeni, bodo usrezno usklajene tudi spremembe. Notranje uporabniško ime se sicer uporablja na več mestih, zato je pričakovati, da ostanejo pri čiščenju preslikav nepovezani podatki. To brisanje ne vpliva upošteva ravni nastavitev, ampak deluje na vse nastavitve LDAP! Preslikav ni nikoli piporočljivo počistiti v produkcijskem okolju, je pa to mogoče v preizkusnem. ",
"Clear Username-LDAP User Mapping" : "Izbriši preslikavo uporabniškega imena na LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Izbriši preslikavo skupine na LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Izbriši preslikavo skupine na LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Privzeto je notranje uporabniško ime ustvarjeno po atributu UUID. To zagotavlja, da je uporabniško ime enkratno in da znakov ni treba posebej pretvarjati. Notrajne uporabniško ime ima določeno omejitev uporabe izključno znakov [a-zA-Z0-9_.@- ]. Vsi drugi znaki so zamenjani z ustreznimi ASCII zamenjavami ali pa so enostavno izpuščeni. V primeru spora je k imenu dodana še številka. Notranje uporabniško ime je namenjeno določitvi istovetnosti in je hkrati tudi privzeto ime uporabnikove osebne mape. Je tudi del oddaljenega naslova URL, na primer za vse storitve *DAV. Ta možnost nastavitve privzetega sistema prepiše, spremembe pa se uveljavijo le za na novo dodane (preslikane) uporabnike LDAP. Za privzeto delovanje mora biti polje prazno."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/user_ldap/l10n/sl.json b/apps/user_ldap/l10n/sl.json
index 19608be27f4..b7297f70588 100644
--- a/apps/user_ldap/l10n/sl.json
+++ b/apps/user_ldap/l10n/sl.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "Polje vsebnika »$home«",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Vrednost »$home« bo znotraj nastavitev zunanje shrambe zamenjaj z vrednostjo določenega atributa.",
"Internal Username" : "Programsko uporabniško ime",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Privzeto je notranje uporabniško ime ustvarjeno po atributu UUID. To zagotavlja, da je uporabniško ime enkratno in da znakov ni treba posebej pretvarjati. Notrajne uporabniško ime ima določeno omejitev uporabe izključno znakov [a-zA-Z0-9_.@- ]. Vsi drugi znaki so zamenjani z ustreznimi ASCII zamenjavami ali pa so enostavno izpuščeni. V primeru spora je k imenu dodana še številka. Notranje uporabniško ime je namenjeno določitvi istovetnosti in je hkrati tudi privzeto ime uporabnikove osebne mape. Je tudi del oddaljenega naslova URL, na primer za vse storitve *DAV. Ta možnost nastavitve privzetega sistema prepiše, spremembe pa se uveljavijo le za na novo dodane (preslikane) uporabnike LDAP. Za privzeto delovanje mora biti polje prazno.",
"Internal Username Attribute:" : "Programski atribut uporabniškega imena:",
"Override UUID detection" : "Prezri zaznavo UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Privzeto je atribut UUID samodejno zaznan. Uporabljen je za določevanje uporabnikov LDAP in skupin. Notranje uporabniško ime je določeno prav na atributu UUID, če ni določeno drugače. To nastavitev je mogoče prepisati in poslati poljuben atribut. Zagotoviti je treba le, da je ta pridobljen kot enolični podatek za uporabnika ali skupino. Prazno polje določa privzeti način. Spremembe bodo vplivale na novo preslikane (dodane) uporabnike LDAP in skupine.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Uporabniška preslikava uporabniškega imena na LDAP",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uporabniška imena se uporabljajo za shranjevanje in dodeljevanje metapodatkov. Za natančno določevanje uporabnikov je vsakemu uporabniku LDAP preslikano tudi notranje uporabniško ime in sicer na UUID uporabnika LDAP. Poleg tega se enoznačno ime DN shrani tudi v predpomnilnik, da se zmanjša število poslanih zahtevkov na strežnik, a se to ne uporablja za določevanje. Če se enoznačno ime spremeni, bodo usrezno usklajene tudi spremembe. Notranje uporabniško ime se sicer uporablja na več mestih, zato je pričakovati, da ostanejo pri čiščenju preslikav nepovezani podatki. To brisanje ne vpliva upošteva ravni nastavitev, ampak deluje na vse nastavitve LDAP! Preslikav ni nikoli piporočljivo počistiti v produkcijskem okolju, je pa to mogoče v preizkusnem. ",
"Clear Username-LDAP User Mapping" : "Izbriši preslikavo uporabniškega imena na LDAP",
- "Clear Groupname-LDAP Group Mapping" : "Izbriši preslikavo skupine na LDAP"
+ "Clear Groupname-LDAP Group Mapping" : "Izbriši preslikavo skupine na LDAP",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Privzeto je notranje uporabniško ime ustvarjeno po atributu UUID. To zagotavlja, da je uporabniško ime enkratno in da znakov ni treba posebej pretvarjati. Notrajne uporabniško ime ima določeno omejitev uporabe izključno znakov [a-zA-Z0-9_.@- ]. Vsi drugi znaki so zamenjani z ustreznimi ASCII zamenjavami ali pa so enostavno izpuščeni. V primeru spora je k imenu dodana še številka. Notranje uporabniško ime je namenjeno določitvi istovetnosti in je hkrati tudi privzeto ime uporabnikove osebne mape. Je tudi del oddaljenega naslova URL, na primer za vse storitve *DAV. Ta možnost nastavitve privzetega sistema prepiše, spremembe pa se uveljavijo le za na novo dodane (preslikane) uporabnike LDAP. Za privzeto delovanje mora biti polje prazno."
},"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/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js
index 0ab0ffc0828..9141edee94f 100644
--- a/apps/user_ldap/l10n/tr.js
+++ b/apps/user_ldap/l10n/tr.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" Yer Belirleyici Alanı",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Bir dış depolama yapılandırmasında $home yerine belirtilen öznitelik konulur",
"Internal Username" : "İç kullanıcı adı",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Varsayılan olarak, iç kullanıcı adı UUID özniteliğinden oluşturulur. Böylece kullanıcı adının eşsiz olması ve dönüştürülmesi gereken karakterler içermediğinden emin olunur. İç kullanıcı adında kısıtlaması yalnızca şu karakterleri kullanılabilir: [ a-zA-Z0-9_.@-]. Diğer karakterler ASCII karşılıklarına dönüştürülür ya da yok sayılır. Çakışmalarda ada bir sayı eklenir. İç kullanıcı adı bir kullanıcıyı içsel olarak belirlemeye yarar. Aynı zamanda kullanıcı ana klasörünün varsayılan adı olarak da kullanılır. İnternet adreslerinin, örneğin *DAV servislerinin bir parçasıdır. Bu seçenek ile varsayılan davranış değiştirilebilir. Değişiklikler yalnızca yeni eşleştirilecek (eklenecek) LDAP kullanıcılarını etkiler. Varsayılan davranışı kullanmak için boş bırakın. ",
"Internal Username Attribute:" : "İç kullanıcı adı özniteliği:",
"Override UUID detection" : "UUID algılaması değiştirilsin",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Varsayılan olarak, UUID özniteliği otomatik olarak algılanır. UUID özniteliği LDAP kullanıcı ve gruplarını kesin olarak belirlemek için kullanılır. Yukarıda başka türlü belirtilmemişse, bu UUID için bir iç kullanıcı adı oluşturulur. Bu ayarı değiştirerek istenilen bir öznitelik belirtilebilir. Ancak istenilen özniteliğin eşsiz olduğundan ve hem kullanıcı hem de gruplar tarafından kullanıldığından emin olunmalıdır. Varsayılan davranış için boş bırakın. Değişiklikler yalnızca yeni eşleştirilen (eklenen) LDAP kullanıcı ve gruplarını etkiler.",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirme",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, üst veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnızca yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnızca sınama ya da deney aşamalarında kullanın.",
"Clear Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirmesini Kaldır",
- "Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır"
+ "Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Varsayılan olarak, iç kullanıcı adı UUID özniteliğinden oluşturulur. Böylece kullanıcı adının eşsiz olması ve dönüştürülmesi gereken karakterler içermediğinden emin olunur. İç kullanıcı adında kısıtlaması yalnızca şu karakterleri kullanılabilir: [ a-zA-Z0-9_.@-]. Diğer karakterler ASCII karşılıklarına dönüştürülür ya da yok sayılır. Çakışmalarda ada bir sayı eklenir. İç kullanıcı adı bir kullanıcıyı içsel olarak belirlemeye yarar. Aynı zamanda kullanıcı ana klasörünün varsayılan adı olarak da kullanılır. İnternet adreslerinin, örneğin *DAV servislerinin bir parçasıdır. Bu seçenek ile varsayılan davranış değiştirilebilir. Değişiklikler yalnızca yeni eşleştirilecek (eklenecek) LDAP kullanıcılarını etkiler. Varsayılan davranışı kullanmak için boş bırakın. "
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json
index 3682db0ec88..6009d4ed3cf 100644
--- a/apps/user_ldap/l10n/tr.json
+++ b/apps/user_ldap/l10n/tr.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" Yer Belirleyici Alanı",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "Bir dış depolama yapılandırmasında $home yerine belirtilen öznitelik konulur",
"Internal Username" : "İç kullanıcı adı",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Varsayılan olarak, iç kullanıcı adı UUID özniteliğinden oluşturulur. Böylece kullanıcı adının eşsiz olması ve dönüştürülmesi gereken karakterler içermediğinden emin olunur. İç kullanıcı adında kısıtlaması yalnızca şu karakterleri kullanılabilir: [ a-zA-Z0-9_.@-]. Diğer karakterler ASCII karşılıklarına dönüştürülür ya da yok sayılır. Çakışmalarda ada bir sayı eklenir. İç kullanıcı adı bir kullanıcıyı içsel olarak belirlemeye yarar. Aynı zamanda kullanıcı ana klasörünün varsayılan adı olarak da kullanılır. İnternet adreslerinin, örneğin *DAV servislerinin bir parçasıdır. Bu seçenek ile varsayılan davranış değiştirilebilir. Değişiklikler yalnızca yeni eşleştirilecek (eklenecek) LDAP kullanıcılarını etkiler. Varsayılan davranışı kullanmak için boş bırakın. ",
"Internal Username Attribute:" : "İç kullanıcı adı özniteliği:",
"Override UUID detection" : "UUID algılaması değiştirilsin",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Varsayılan olarak, UUID özniteliği otomatik olarak algılanır. UUID özniteliği LDAP kullanıcı ve gruplarını kesin olarak belirlemek için kullanılır. Yukarıda başka türlü belirtilmemişse, bu UUID için bir iç kullanıcı adı oluşturulur. Bu ayarı değiştirerek istenilen bir öznitelik belirtilebilir. Ancak istenilen özniteliğin eşsiz olduğundan ve hem kullanıcı hem de gruplar tarafından kullanıldığından emin olunmalıdır. Varsayılan davranış için boş bırakın. Değişiklikler yalnızca yeni eşleştirilen (eklenen) LDAP kullanıcı ve gruplarını etkiler.",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirme",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, üst veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnızca yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnızca sınama ya da deney aşamalarında kullanın.",
"Clear Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirmesini Kaldır",
- "Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır"
+ "Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "Varsayılan olarak, iç kullanıcı adı UUID özniteliğinden oluşturulur. Böylece kullanıcı adının eşsiz olması ve dönüştürülmesi gereken karakterler içermediğinden emin olunur. İç kullanıcı adında kısıtlaması yalnızca şu karakterleri kullanılabilir: [ a-zA-Z0-9_.@-]. Diğer karakterler ASCII karşılıklarına dönüştürülür ya da yok sayılır. Çakışmalarda ada bir sayı eklenir. İç kullanıcı adı bir kullanıcıyı içsel olarak belirlemeye yarar. Aynı zamanda kullanıcı ana klasörünün varsayılan adı olarak da kullanılır. İnternet adreslerinin, örneğin *DAV servislerinin bir parçasıdır. Bu seçenek ile varsayılan davranış değiştirilebilir. Değişiklikler yalnızca yeni eşleştirilecek (eklenecek) LDAP kullanıcılarını etkiler. Varsayılan davranışı kullanmak için boş bırakın. "
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/zh_CN.js b/apps/user_ldap/l10n/zh_CN.js
index 56d13cc3dcb..87f2a3b4518 100644
--- a/apps/user_ldap/l10n/zh_CN.js
+++ b/apps/user_ldap/l10n/zh_CN.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" 占位字段",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "位于外部存储配置的 $home 将被指定属性替换",
"Internal Username" : "内部用户名",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默认情况下,内部用户名将从UUID属性创建。它确保用户名是唯一的,并且不需要转换字符。内部用户名只允许下列字符:[a-zA-Z0-9_.@-]。其他字符被替换为它们的ASCII对应或简单地省略。在冲突时会增加/增大一个数字。内部用户名用于内部识别用户。它也是用户主文件夹的默认名称。它也是远程 URL 的一部分,例如所有*DAV服务。使用此设置,可以覆盖默认行为。更改仅对新映射(添加)的LDAP用户有效。留空代表使用默认行为。",
"Internal Username Attribute:" : "内部用户名属性:",
"Override UUID detection" : "覆盖 UUID 检测",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "ownCloud 默认会自动检测 UUID 属性。UUID 属性用来无误地识别 LDAP 用户和组。同时,如果上面没有特别设置,内部用户名也基于 UUID 创建。也可以覆盖设置,直接指定一个属性。但一定要确保指定的属性取得的用户和组是唯一的。留空,则执行默认操作。更改只影响新映射(或增加)的 LDAP 用户和组。",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "用户名-LDAP用户映射",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配元数据。为了精确的区分和识别用户,每个 LDAP 用户都会有一个内部的用户名。这要求建立一个用户名到 LDAP 用户的映射。创建的用户名会被映射到 LDAP 用户的 UUID。另外为了节省 LDAP 连接开销,DN 会被缓存,但不会用于识别。如果 DN 变了,这些变化会被识别到。在 Nextcloud 各个页面会使用内部用户名。清空映射会造成系统里面有大量的残留信息。清空映射会影响所有的 LDAP 配置,而不仅仅是当前配置。不要在生产环境里面应用清空映射,请仅用于测试环境或者早期验证步骤。",
"Clear Username-LDAP User Mapping" : "清除用户-LDAP用户映射",
- "Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射"
+ "Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默认情况下,内部用户名将从UUID属性创建。它确保用户名是唯一的,并且不需要转换字符。内部用户名只允许下列字符:[a-zA-Z0-9_.@-]。其他字符被替换为它们的ASCII对应或简单地省略。在冲突时会增加/增大一个数字。内部用户名用于内部识别用户。它也是用户主文件夹的默认名称。它也是远程 URL 的一部分,例如所有*DAV服务。使用此设置,可以覆盖默认行为。更改仅对新映射(添加)的LDAP用户有效。留空代表使用默认行为。"
},
"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/zh_CN.json b/apps/user_ldap/l10n/zh_CN.json
index 3b7d504b870..f1dda1ab41a 100644
--- a/apps/user_ldap/l10n/zh_CN.json
+++ b/apps/user_ldap/l10n/zh_CN.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" 占位字段",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "位于外部存储配置的 $home 将被指定属性替换",
"Internal Username" : "内部用户名",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默认情况下,内部用户名将从UUID属性创建。它确保用户名是唯一的,并且不需要转换字符。内部用户名只允许下列字符:[a-zA-Z0-9_.@-]。其他字符被替换为它们的ASCII对应或简单地省略。在冲突时会增加/增大一个数字。内部用户名用于内部识别用户。它也是用户主文件夹的默认名称。它也是远程 URL 的一部分,例如所有*DAV服务。使用此设置,可以覆盖默认行为。更改仅对新映射(添加)的LDAP用户有效。留空代表使用默认行为。",
"Internal Username Attribute:" : "内部用户名属性:",
"Override UUID detection" : "覆盖 UUID 检测",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "ownCloud 默认会自动检测 UUID 属性。UUID 属性用来无误地识别 LDAP 用户和组。同时,如果上面没有特别设置,内部用户名也基于 UUID 创建。也可以覆盖设置,直接指定一个属性。但一定要确保指定的属性取得的用户和组是唯一的。留空,则执行默认操作。更改只影响新映射(或增加)的 LDAP 用户和组。",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "用户名-LDAP用户映射",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配元数据。为了精确的区分和识别用户,每个 LDAP 用户都会有一个内部的用户名。这要求建立一个用户名到 LDAP 用户的映射。创建的用户名会被映射到 LDAP 用户的 UUID。另外为了节省 LDAP 连接开销,DN 会被缓存,但不会用于识别。如果 DN 变了,这些变化会被识别到。在 Nextcloud 各个页面会使用内部用户名。清空映射会造成系统里面有大量的残留信息。清空映射会影响所有的 LDAP 配置,而不仅仅是当前配置。不要在生产环境里面应用清空映射,请仅用于测试环境或者早期验证步骤。",
"Clear Username-LDAP User Mapping" : "清除用户-LDAP用户映射",
- "Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射"
+ "Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默认情况下,内部用户名将从UUID属性创建。它确保用户名是唯一的,并且不需要转换字符。内部用户名只允许下列字符:[a-zA-Z0-9_.@-]。其他字符被替换为它们的ASCII对应或简单地省略。在冲突时会增加/增大一个数字。内部用户名用于内部识别用户。它也是用户主文件夹的默认名称。它也是远程 URL 的一部分,例如所有*DAV服务。使用此设置,可以覆盖默认行为。更改仅对新映射(添加)的LDAP用户有效。留空代表使用默认行为。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/zh_HK.js b/apps/user_ldap/l10n/zh_HK.js
index 4fa4af97fa4..52085bc9c83 100644
--- a/apps/user_ldap/l10n/zh_HK.js
+++ b/apps/user_ldap/l10n/zh_HK.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" 佔位符字段",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "外部存儲配置中的 $home 將替換為指定屬性的值",
"Internal Username" : "內部用戶名稱",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默認情況下,內部用戶名將從UUID屬性創建。這樣可以確保用戶名是唯一的,並且不需要轉換任何字符。內部用戶名的限制是只能使用以下字符:[a-zA-Z0-9_.@-]。其他字符被替換為它們的ASCII對應或被略去。發生相抵觸時,將加入數字。內部用戶名用於在內部識別用戶。其也是用戶主資料夾的默認名稱。也是遠端URL的一部分,舉例來說,會用於所有 *DAV 服務。使用此設置,默認的行為可以被覆寫。更改僅對新映射(添加)的LDAP用戶有效。將其留空會使用默認行為。",
"Internal Username Attribute:" : "內部用戶名稱屬性:",
"Override UUID detection" : "偵測覆寫UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "預設情況下,UUID 屬性會自動偵測。UUID 屬性用來準確識別 LDAP 用戶及群組。此外,如果未在上方指定,內部用戶名稱會基於 UUID 建立。您能覆蓋設定並直接指定屬性,但一定要確保指定的屬性能被用戶及群組取得且唯一。留空則執行默認行為。變更只會對新映射(加入)的 LDAP 用戶及群組生效。",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "用戶名-LDAP 用戶 Mapping",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用戶名用於存儲和分配元數據。為了精確地區分和識別用戶,每個LDAP用戶都會有一個內部的用戶名。這要求建立一個用戶名到LDAP用戶的映射。創建的用戶名會被映射到 LDAP用戶的UUID。另外為了節省LDAP連接開銷,DN會被緩存,但不會使用識別。如果DN變了,這些變化會被識別到。在Nextcloud各個頁面會使用內部用戶名。清除映射會造成 系統裡面有大量的殘留信息。清除映射會影響所有的LDAP配置,同時進行雙向配置。不要在生產環境裡面應用可變映射,請僅用於測試環境或早期驗證步驟。",
"Clear Username-LDAP User Mapping" : "清除 用戶名-LDAP 用戶 Mapping",
- "Clear Groupname-LDAP Group Mapping" : "清除 群組名稱-LDAP 群組 Mapping"
+ "Clear Groupname-LDAP Group Mapping" : "清除 群組名稱-LDAP 群組 Mapping",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默認情況下,內部用戶名將從UUID屬性創建。這樣可以確保用戶名是唯一的,並且不需要轉換任何字符。內部用戶名的限制是只能使用以下字符:[a-zA-Z0-9_.@-]。其他字符被替換為它們的ASCII對應或被略去。發生相抵觸時,將加入數字。內部用戶名用於在內部識別用戶。其也是用戶主資料夾的默認名稱。也是遠端URL的一部分,舉例來說,會用於所有 *DAV 服務。使用此設置,默認的行為可以被覆寫。更改僅對新映射(添加)的LDAP用戶有效。將其留空會使用默認行為。"
},
"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/zh_HK.json b/apps/user_ldap/l10n/zh_HK.json
index 1f61bf0924b..8aab5d48f5d 100644
--- a/apps/user_ldap/l10n/zh_HK.json
+++ b/apps/user_ldap/l10n/zh_HK.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" 佔位符字段",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "外部存儲配置中的 $home 將替換為指定屬性的值",
"Internal Username" : "內部用戶名稱",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默認情況下,內部用戶名將從UUID屬性創建。這樣可以確保用戶名是唯一的,並且不需要轉換任何字符。內部用戶名的限制是只能使用以下字符:[a-zA-Z0-9_.@-]。其他字符被替換為它們的ASCII對應或被略去。發生相抵觸時,將加入數字。內部用戶名用於在內部識別用戶。其也是用戶主資料夾的默認名稱。也是遠端URL的一部分,舉例來說,會用於所有 *DAV 服務。使用此設置,默認的行為可以被覆寫。更改僅對新映射(添加)的LDAP用戶有效。將其留空會使用默認行為。",
"Internal Username Attribute:" : "內部用戶名稱屬性:",
"Override UUID detection" : "偵測覆寫UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "預設情況下,UUID 屬性會自動偵測。UUID 屬性用來準確識別 LDAP 用戶及群組。此外,如果未在上方指定,內部用戶名稱會基於 UUID 建立。您能覆蓋設定並直接指定屬性,但一定要確保指定的屬性能被用戶及群組取得且唯一。留空則執行默認行為。變更只會對新映射(加入)的 LDAP 用戶及群組生效。",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "用戶名-LDAP 用戶 Mapping",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用戶名用於存儲和分配元數據。為了精確地區分和識別用戶,每個LDAP用戶都會有一個內部的用戶名。這要求建立一個用戶名到LDAP用戶的映射。創建的用戶名會被映射到 LDAP用戶的UUID。另外為了節省LDAP連接開銷,DN會被緩存,但不會使用識別。如果DN變了,這些變化會被識別到。在Nextcloud各個頁面會使用內部用戶名。清除映射會造成 系統裡面有大量的殘留信息。清除映射會影響所有的LDAP配置,同時進行雙向配置。不要在生產環境裡面應用可變映射,請僅用於測試環境或早期驗證步驟。",
"Clear Username-LDAP User Mapping" : "清除 用戶名-LDAP 用戶 Mapping",
- "Clear Groupname-LDAP Group Mapping" : "清除 群組名稱-LDAP 群組 Mapping"
+ "Clear Groupname-LDAP Group Mapping" : "清除 群組名稱-LDAP 群組 Mapping",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "默認情況下,內部用戶名將從UUID屬性創建。這樣可以確保用戶名是唯一的,並且不需要轉換任何字符。內部用戶名的限制是只能使用以下字符:[a-zA-Z0-9_.@-]。其他字符被替換為它們的ASCII對應或被略去。發生相抵觸時,將加入數字。內部用戶名用於在內部識別用戶。其也是用戶主資料夾的默認名稱。也是遠端URL的一部分,舉例來說,會用於所有 *DAV 服務。使用此設置,默認的行為可以被覆寫。更改僅對新映射(添加)的LDAP用戶有效。將其留空會使用默認行為。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/zh_TW.js b/apps/user_ldap/l10n/zh_TW.js
index ae6bce46f4c..b534b1625ef 100644
--- a/apps/user_ldap/l10n/zh_TW.js
+++ b/apps/user_ldap/l10n/zh_TW.js
@@ -180,7 +180,6 @@ OC.L10N.register(
"\"$home\" Placeholder Field" : "\"$home\" 佔位字串欄位",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "外部儲存空間設定中的 $home 將會以指定屬性的值取代",
"Internal Username" : "內部使用者名稱",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "預設情況下,內部使用者名稱將從 UUID 屬性建立。其確保了使用者名稱是唯一且不需要轉換字元。內部使用者名稱的限制是只能使用下列字元:[a-zA-Z0-9_.@-]。其他字元會使用其 ASCII 對映或被忽略。發生碰撞時,將會加入數字。內部使用者名稱用於內部識別使用者。其也是使用者家資料夾的預設名稱。也是遠端 URL 的一部分,舉例來說,會用於所有 *DAV 服務。使用此設定,預設的行為將會被覆寫。變更僅對新映射(新增)的 LDAP 使用者有效。將其留空會使用預設行為。",
"Internal Username Attribute:" : "內部使用者名稱屬性:",
"Override UUID detection" : "偵測覆寫 UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "預設情況下,UUID 屬性會自動偵測。UUID 屬性用來準確識別 LDAP 使用者及群組。此外,如果未在上方指定,內部使用者名稱會以 UUID 為基礎建立。您能覆寫設定並直接指定屬性,但一定要確保指定的屬性能被使用者及群組取得且唯一。留空則執行預設行為。變更只會對新映射(新增)的 LDAP 使用者及群組生效。",
@@ -189,6 +188,7 @@ OC.L10N.register(
"Username-LDAP User Mapping" : "使用者-LDAP 使用者映射",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "使用者名稱用於儲存並指派詮釋資料。為了精確識別並認出使用者,每個 LDAP 使用者都將會有內部使用者名稱。這需要從使用者名稱到 LDAP 使用者的映射。已建立的使用者名稱會映射到 LDAP 使用者的 UUID。另外,DN 會被快取以減少 LDAP 互動,但不會用於識別。若 DN 變更,將會找到變更。內部使用者名稱將會全面使用。清除映射將會讓到處都是未連結的項目。清除映射對設定並不敏感,其會影響到所有 LDAP 設定!不要在生產環境中清除映射,僅將其用於測試或實驗階段。",
"Clear Username-LDAP User Mapping" : "清除使用者名稱-LDAP 使用者映射",
- "Clear Groupname-LDAP Group Mapping" : "清除群組名稱-LDAP 群組映射"
+ "Clear Groupname-LDAP Group Mapping" : "清除群組名稱-LDAP 群組映射",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "預設情況下,內部使用者名稱將從 UUID 屬性建立。其確保了使用者名稱是唯一且不需要轉換字元。內部使用者名稱的限制是只能使用下列字元:[a-zA-Z0-9_.@-]。其他字元會使用其 ASCII 對映或被忽略。發生碰撞時,將會加入數字。內部使用者名稱用於內部識別使用者。其也是使用者家資料夾的預設名稱。也是遠端 URL 的一部分,舉例來說,會用於所有 *DAV 服務。使用此設定,預設的行為將會被覆寫。變更僅對新映射(新增)的 LDAP 使用者有效。將其留空會使用預設行為。"
},
"nplurals=1; plural=0;");
diff --git a/apps/user_ldap/l10n/zh_TW.json b/apps/user_ldap/l10n/zh_TW.json
index 4bd8de1d127..1baef6bab2e 100644
--- a/apps/user_ldap/l10n/zh_TW.json
+++ b/apps/user_ldap/l10n/zh_TW.json
@@ -178,7 +178,6 @@
"\"$home\" Placeholder Field" : "\"$home\" 佔位字串欄位",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "外部儲存空間設定中的 $home 將會以指定屬性的值取代",
"Internal Username" : "內部使用者名稱",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "預設情況下,內部使用者名稱將從 UUID 屬性建立。其確保了使用者名稱是唯一且不需要轉換字元。內部使用者名稱的限制是只能使用下列字元:[a-zA-Z0-9_.@-]。其他字元會使用其 ASCII 對映或被忽略。發生碰撞時,將會加入數字。內部使用者名稱用於內部識別使用者。其也是使用者家資料夾的預設名稱。也是遠端 URL 的一部分,舉例來說,會用於所有 *DAV 服務。使用此設定,預設的行為將會被覆寫。變更僅對新映射(新增)的 LDAP 使用者有效。將其留空會使用預設行為。",
"Internal Username Attribute:" : "內部使用者名稱屬性:",
"Override UUID detection" : "偵測覆寫 UUID",
"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "預設情況下,UUID 屬性會自動偵測。UUID 屬性用來準確識別 LDAP 使用者及群組。此外,如果未在上方指定,內部使用者名稱會以 UUID 為基礎建立。您能覆寫設定並直接指定屬性,但一定要確保指定的屬性能被使用者及群組取得且唯一。留空則執行預設行為。變更只會對新映射(新增)的 LDAP 使用者及群組生效。",
@@ -187,6 +186,7 @@
"Username-LDAP User Mapping" : "使用者-LDAP 使用者映射",
"Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "使用者名稱用於儲存並指派詮釋資料。為了精確識別並認出使用者,每個 LDAP 使用者都將會有內部使用者名稱。這需要從使用者名稱到 LDAP 使用者的映射。已建立的使用者名稱會映射到 LDAP 使用者的 UUID。另外,DN 會被快取以減少 LDAP 互動,但不會用於識別。若 DN 變更,將會找到變更。內部使用者名稱將會全面使用。清除映射將會讓到處都是未連結的項目。清除映射對設定並不敏感,其會影響到所有 LDAP 設定!不要在生產環境中清除映射,僅將其用於測試或實驗階段。",
"Clear Username-LDAP User Mapping" : "清除使用者名稱-LDAP 使用者映射",
- "Clear Groupname-LDAP Group Mapping" : "清除群組名稱-LDAP 群組映射"
+ "Clear Groupname-LDAP Group Mapping" : "清除群組名稱-LDAP 群組映射",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior." : "預設情況下,內部使用者名稱將從 UUID 屬性建立。其確保了使用者名稱是唯一且不需要轉換字元。內部使用者名稱的限制是只能使用下列字元:[a-zA-Z0-9_.@-]。其他字元會使用其 ASCII 對映或被忽略。發生碰撞時,將會加入數字。內部使用者名稱用於內部識別使用者。其也是使用者家資料夾的預設名稱。也是遠端 URL 的一部分,舉例來說,會用於所有 *DAV 服務。使用此設定,預設的行為將會被覆寫。變更僅對新映射(新增)的 LDAP 使用者有效。將其留空會使用預設行為。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php
index 565fb415e58..89b58b7ebfd 100644
--- a/apps/user_ldap/lib/Connection.php
+++ b/apps/user_ldap/lib/Connection.php
@@ -128,7 +128,7 @@ class Connection extends LDAPUtility {
protected $ignoreValidation = false;
/**
- * @var array{dn?: mixed, hash?: string, result?: bool}
+ * @var array{sum?: string, result?: bool}
*/
protected $bindResult = [];
@@ -672,11 +672,7 @@ class Connection extends LDAPUtility {
if (
count($this->bindResult) !== 0
- && $this->bindResult['dn'] === $this->configuration->ldapAgentName
- && \OC::$server->getHasher()->verify(
- $this->configPrefix . $this->configuration->ldapAgentPassword,
- $this->bindResult['hash']
- )
+ && $this->bindResult['sum'] === md5($this->configuration->ldapAgentName . $this->configPrefix . $this->configuration->ldapAgentPassword)
) {
// don't attempt to bind again with the same data as before
// bind might have been invoked via getConnectionResource(),
@@ -689,8 +685,7 @@ class Connection extends LDAPUtility {
$this->configuration->ldapAgentPassword);
$this->bindResult = [
- 'dn' => $this->configuration->ldapAgentName,
- 'hash' => \OC::$server->getHasher()->hash($this->configPrefix . $this->configuration->ldapAgentPassword),
+ 'sum' => md5($this->configuration->ldapAgentName . $this->configPrefix . $this->configuration->ldapAgentPassword),
'result' => $ldapLogin,
];
diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php
index f9d9b061743..8fcb10cb850 100644
--- a/apps/user_ldap/lib/Group_LDAP.php
+++ b/apps/user_ldap/lib/Group_LDAP.php
@@ -55,12 +55,12 @@ use Psr\Log\LoggerInterface;
class Group_LDAP extends BackendUtility implements GroupInterface, IGroupLDAP, IGetDisplayNameBackend, IDeleteGroupBackend {
protected $enabled = false;
- /** @var string[][] $cachedGroupMembers array of users with gid as key */
- protected $cachedGroupMembers;
- /** @var string[] $cachedGroupsByMember array of groups with uid as key */
- protected $cachedGroupsByMember;
- /** @var string[] $cachedNestedGroups array of groups with gid (DN) as key */
- protected $cachedNestedGroups;
+ /** @var CappedMemoryCache<string[]> $cachedGroupMembers array of users with gid as key */
+ protected CappedMemoryCache $cachedGroupMembers;
+ /** @var CappedMemoryCache<string[]> $cachedGroupsByMember array of groups with uid as key */
+ protected CappedMemoryCache $cachedGroupsByMember;
+ /** @var CappedMemoryCache<string[]> $cachedNestedGroups array of groups with gid (DN) as key */
+ protected CappedMemoryCache $cachedNestedGroups;
/** @var GroupPluginManager */
protected $groupPluginManager;
/** @var LoggerInterface */
diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php
index 437fab6b6a8..3ca5de67874 100644
--- a/apps/user_ldap/lib/Helper.php
+++ b/apps/user_ldap/lib/Helper.php
@@ -35,15 +35,10 @@ use OCP\IConfig;
use OCP\IDBConnection;
class Helper {
-
- /** @var IConfig */
- private $config;
-
- /** @var IDBConnection */
- private $connection;
-
- /** @var CappedMemoryCache */
- protected $sanitizeDnCache;
+ private IConfig $config;
+ private IDBConnection $connection;
+ /** @var CappedMemoryCache<string> */
+ protected CappedMemoryCache $sanitizeDnCache;
public function __construct(IConfig $config,
IDBConnection $connection) {
diff --git a/apps/user_ldap/lib/User/Manager.php b/apps/user_ldap/lib/User/Manager.php
index e752b113e3f..e52b093f5af 100644
--- a/apps/user_ldap/lib/User/Manager.php
+++ b/apps/user_ldap/lib/User/Manager.php
@@ -47,43 +47,20 @@ use Psr\Log\LoggerInterface;
* cache
*/
class Manager {
- /** @var Access */
- protected $access;
-
- /** @var IConfig */
- protected $ocConfig;
-
- /** @var IDBConnection */
- protected $db;
-
- /** @var IUserManager */
- protected $userManager;
-
- /** @var INotificationManager */
- protected $notificationManager;
-
- /** @var FilesystemHelper */
- protected $ocFilesystem;
-
- /** @var LoggerInterface */
- protected $logger;
-
- /** @var Image */
- protected $image;
-
- /** @param \OCP\IAvatarManager */
- protected $avatarManager;
-
- /**
- * @var CappedMemoryCache $usersByDN
- */
- protected $usersByDN;
- /**
- * @var CappedMemoryCache $usersByUid
- */
- protected $usersByUid;
- /** @var IManager */
- private $shareManager;
+ protected ?Access $access = null;
+ protected IConfig $ocConfig;
+ protected IDBConnection $db;
+ protected IUserManager $userManager;
+ protected INotificationManager $notificationManager;
+ protected FilesystemHelper $ocFilesystem;
+ protected LoggerInterface $logger;
+ protected Image $image;
+ protected IAvatarManager $avatarManager;
+ /** @var CappedMemoryCache<User> $usersByDN */
+ protected CappedMemoryCache $usersByDN;
+ /** @var CappedMemoryCache<User> $usersByUid */
+ protected CappedMemoryCache $usersByUid;
+ private IManager $shareManager;
public function __construct(
IConfig $ocConfig,
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index 7c0f31663f0..3e11b89a7c4 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -125,7 +125,7 @@ style('user_ldap', 'settings');
</fieldset>
<fieldset id="ldapSettings-2">
<p><strong><?php p($l->t('Internal Username'));?></strong></p>
- <p class="ldapIndent"><?php p($l->t('By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior.'));?></p>
+ <p class="ldapIndent"><?php p($l->t('By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [a-zA-Z0-9_.@-]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all DAV services. With this setting, the default behavior can be overridden. Changes will have effect only on newly mapped (added) LDAP users. Leave it empty for default behavior.'));?></p>
<p class="ldapIndent"><label for="ldap_expert_username_attr"><?php p($l->t('Internal Username Attribute:'));?></label><input type="text" id="ldap_expert_username_attr" name="ldap_expert_username_attr" data-default="<?php p($_['ldap_expert_username_attr_default']); ?>" /></p>
<p><strong><?php p($l->t('Override UUID detection'));?></strong></p>
<p class="ldapIndent"><?php p($l->t('By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups.'));?></p>
diff --git a/apps/user_status/css/user-status-menu.css b/apps/user_status/css/user-status-menu.css
new file mode 100644
index 00000000000..9966be2f4ff
--- /dev/null
+++ b/apps/user_status/css/user-status-menu.css
@@ -0,0 +1,101 @@
+@charset "UTF-8";
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @copyright Copyright (c) 2020 Georg Ehrke
+ *
+ * @author Georg Ehrke <oc.list@georgehrke.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @copyright Copyright (c) 2018, John Molakvoæ (skjnldsv@protonmail.com)
+ *
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+/**
+ * @see core/src/icons.js
+ */
+/**
+ * SVG COLOR API
+ *
+ * @param string $icon the icon filename
+ * @param string $dir the icon folder within /core/img if $core or app name
+ * @param string $color the desired color in hexadecimal
+ * @param int $version the version of the file
+ * @param bool [$core] search icon in core
+ *
+ * @returns A background image with the url to the set to the requested icon.
+ */
+.icon-user-status {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-app-dark);
+}
+
+.icon-user-status-online {
+ background-image: url("../img/user-status-online.svg");
+}
+
+.icon-user-status-away {
+ background-image: url("../img/user-status-away.svg");
+}
+
+.icon-user-status-dnd {
+ background-image: url("../img/user-status-dnd.svg");
+}
+
+.icon-user-status-invisible {
+ /* $dir is the app name, so we add this to the icon var to avoid conflicts between apps */
+ background-image: var(--icon-user-status-invisible-dark);
+}
+
+/*# sourceMappingURL=user-status-menu.css.map */
diff --git a/apps/user_status/css/user-status-menu.css.map b/apps/user_status/css/user-status-menu.css.map
new file mode 100644
index 00000000000..0363c914a41
--- /dev/null
+++ b/apps/user_status/css/user-status-menu.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../core/css/variables.scss","user-status-menu.scss","../../../core/css/functions.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AD1BA;ACuCC;EAEA;;;ADrCD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAID;ACsBC;EAEA","file":"user-status-menu.css"} \ No newline at end of file
diff --git a/apps/user_status/css/user-status-menu.scss b/apps/user_status/css/user-status-menu.scss
index 0591bf15748..6dc681c1448 100644
--- a/apps/user_status/css/user-status-menu.scss
+++ b/apps/user_status/css/user-status-menu.scss
@@ -19,9 +19,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
+@use 'variables';
+@import 'functions';
.icon-user-status {
- @include icon-color('app', 'user_status', $color-black, 1);
+ @include icon-color('app', 'user_status', variables.$color-black, 1);
}
.icon-user-status-online {
@@ -38,5 +40,5 @@
// TODO: debug why icon-black-white does not work here
.icon-user-status-invisible {
- @include icon-color('user-status-invisible', 'user_status', $color-black, 1);
+ @include icon-color('user-status-invisible', 'user_status', variables.$color-black, 1);
}
diff --git a/apps/user_status/src/UserStatus.vue b/apps/user_status/src/UserStatus.vue
index 8baf31de1b7..644ff97d689 100644
--- a/apps/user_status/src/UserStatus.vue
+++ b/apps/user_status/src/UserStatus.vue
@@ -231,6 +231,11 @@ export default {
align-items: flex-start !important;
color: var(--color-main-text) !important;
+ &:focus-visible {
+ padding: 6px 8px 1px 8px !important;
+ margin: 2px !important;
+ }
+
&:not([href]) {
height: var(--header-menu-item-height) !important;
color: var(--color-text-maxcontrast) !important;
@@ -298,7 +303,7 @@ export default {
background-color: var(--color-background-hover);
}
&:focus {
- border: 2px solid var(--color-main-text)!important;
+ box-shadow: 0 0 0 2px var(--color-main-text) !important;
}
}
}
diff --git a/apps/weather_status/l10n/eu.js b/apps/weather_status/l10n/eu.js
index d36bcaaf2dd..f900f4afe01 100644
--- a/apps/weather_status/l10n/eu.js
+++ b/apps/weather_status/l10n/eu.js
@@ -21,18 +21,18 @@ OC.L10N.register(
"{temperature} {unit} partly cloudy" : "{temperature} {unit} hodei-tarteak",
"{temperature} {unit} foggy later today" : "{temperature} {unit} lainotu egingo da geroago",
"{temperature} {unit} foggy" : "{temperature} {unit} lainotsu",
- "{temperature} {unit} light rainfall later today" : "{tenperatura} {unitatea} eurite arina gaur beranduago",
- "{temperature} {unit} light rainfall" : "{tenperatura} {unitatea} prezipitazio arina",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} eurite arina gaur beranduago",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} prezipitazio arina",
"{temperature} {unit} rainfall later today" : "{temperature} {unit} prezipitazioa gaur beranduago",
- "{temperature} {unit} rainfall" : "{tenperatura} {unitatea} prezipitazioa",
- "{temperature} {unit} heavy rainfall later today" : "{tenperatura} {unitatea} eurite handia gaur beranduago",
- "{temperature} {unit} heavy rainfall" : "{tenperatura} {unitatea} euri-jasa",
+ "{temperature} {unit} rainfall" : "{temperature} {unit} prezipitazioa",
+ "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} eurite handia gaur beranduago",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} euri-jasa",
"{temperature} {unit} rainfall showers later today" : "{temperature} {unit} euri zaparrada gaur beranduago",
- "{temperature} {unit} rainfall showers" : "{tenperatura} {unitatea} euri zaparradak gaur beranduago",
+ "{temperature} {unit} rainfall showers" : "{temperature} {unit} euri zaparradak gaur beranduago",
"{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} zaparrada arinak gaur beranduago",
- "{temperature} {unit} light rainfall showers" : "{tenperatura} {unitatea} zaparrada arinak",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} zaparrada arinak",
"{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} euri zaparrada handiak gaur beranduago",
- "{temperature} {unit} heavy rainfall showers" : "{tenperatura} {unitatea} euri zaparrada handiak",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} euri zaparrada handiak",
"More weather for {adr}" : "Eguraldi gehiago {adr}-(e)rako",
"Loading weather" : "Eguraldia kargatzen",
"Remove from favorites" : "Kendu gogokoetatik",
diff --git a/apps/weather_status/l10n/eu.json b/apps/weather_status/l10n/eu.json
index 3e974d1dba5..4296fd48265 100644
--- a/apps/weather_status/l10n/eu.json
+++ b/apps/weather_status/l10n/eu.json
@@ -19,18 +19,18 @@
"{temperature} {unit} partly cloudy" : "{temperature} {unit} hodei-tarteak",
"{temperature} {unit} foggy later today" : "{temperature} {unit} lainotu egingo da geroago",
"{temperature} {unit} foggy" : "{temperature} {unit} lainotsu",
- "{temperature} {unit} light rainfall later today" : "{tenperatura} {unitatea} eurite arina gaur beranduago",
- "{temperature} {unit} light rainfall" : "{tenperatura} {unitatea} prezipitazio arina",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} eurite arina gaur beranduago",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} prezipitazio arina",
"{temperature} {unit} rainfall later today" : "{temperature} {unit} prezipitazioa gaur beranduago",
- "{temperature} {unit} rainfall" : "{tenperatura} {unitatea} prezipitazioa",
- "{temperature} {unit} heavy rainfall later today" : "{tenperatura} {unitatea} eurite handia gaur beranduago",
- "{temperature} {unit} heavy rainfall" : "{tenperatura} {unitatea} euri-jasa",
+ "{temperature} {unit} rainfall" : "{temperature} {unit} prezipitazioa",
+ "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} eurite handia gaur beranduago",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} euri-jasa",
"{temperature} {unit} rainfall showers later today" : "{temperature} {unit} euri zaparrada gaur beranduago",
- "{temperature} {unit} rainfall showers" : "{tenperatura} {unitatea} euri zaparradak gaur beranduago",
+ "{temperature} {unit} rainfall showers" : "{temperature} {unit} euri zaparradak gaur beranduago",
"{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} zaparrada arinak gaur beranduago",
- "{temperature} {unit} light rainfall showers" : "{tenperatura} {unitatea} zaparrada arinak",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} zaparrada arinak",
"{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} euri zaparrada handiak gaur beranduago",
- "{temperature} {unit} heavy rainfall showers" : "{tenperatura} {unitatea} euri zaparrada handiak",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} euri zaparrada handiak",
"More weather for {adr}" : "Eguraldi gehiago {adr}-(e)rako",
"Loading weather" : "Eguraldia kargatzen",
"Remove from favorites" : "Kendu gogokoetatik",
diff --git a/apps/weather_status/l10n/ro.js b/apps/weather_status/l10n/ro.js
new file mode 100644
index 00000000000..d9de644cf65
--- /dev/null
+++ b/apps/weather_status/l10n/ro.js
@@ -0,0 +1,37 @@
+OC.L10N.register(
+ "weather_status",
+ {
+ "Unknown address" : "Adresă necunoscută",
+ "No result." : "Niciun rezultat.",
+ "Malformed JSON data." : "Informațiile în format JSON au expirat.",
+ "Error" : "Eroare",
+ "Weather status" : "Starea vremii",
+ "Weather status in your dashboard" : "Starea vremii pe ecranul principal",
+ "Detect location" : "Detectează locația",
+ "Set custom address" : "Setează adresă personalizată",
+ "Favorites" : "Favorite",
+ "{temperature} {unit} clear sky later today" : "{temperature} {unit} cer senin astăzi mai târziu",
+ "{temperature} {unit} clear sky" : "{temperature} {unit} cer senin",
+ "{temperature} {unit} cloudy later today" : "{temperature} {unit} înourat mai târziu",
+ "{temperature} {unit} cloudy" : "{temperature} {unit} înourat",
+ "{temperature} {unit} fair weather later today" : "{temperature} {unit} vreme frumoasă astăzi mai târziu",
+ "{temperature} {unit} fair weather" : "{temperature} {unit} vreme frumoasă",
+ "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} parțial înourat astăzi mai târziu",
+ "{temperature} {unit} partly cloudy" : "{temperature} {unit} parțial înourat",
+ "{temperature} {unit} foggy later today" : "{temperature} {unit} încețoșat astăzi mai târziu",
+ "{temperature} {unit} foggy" : "{temperature} {unit} încețoșat",
+ "More weather for {adr}" : "Mai multe informații despre vreme pentru {adr}",
+ "Loading weather" : "Se încarcă datele despre vreme",
+ "Remove from favorites" : "Șterge din favorite",
+ "Add as favorite" : "Adaugă ca favorit",
+ "You are not logged in." : "Nu ești înregistrat",
+ "There was an error getting the weather status information." : "A apărut o eroare când sa încercat preluarea de informații despre vreme.",
+ "No weather information found" : "Nu s-au găsit informații despre vreme",
+ "Location not found" : "Locația nu a fost găsită",
+ "There was an error setting the location address." : "A apărut o eroare în timpul setării locației adresei.",
+ "There was an error setting the location." : "A apărut o eroare în timpul setării locației.",
+ "There was an error saving the mode." : "A apărut o eroare în timpul salvării modului.",
+ "There was an error using personal address." : "A apărut o eroare în timpul folosirii adresei perosnale.",
+ "Set location for weather" : "Setează locația pentru vreme"
+},
+"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/weather_status/l10n/ro.json b/apps/weather_status/l10n/ro.json
new file mode 100644
index 00000000000..e872a46c24c
--- /dev/null
+++ b/apps/weather_status/l10n/ro.json
@@ -0,0 +1,35 @@
+{ "translations": {
+ "Unknown address" : "Adresă necunoscută",
+ "No result." : "Niciun rezultat.",
+ "Malformed JSON data." : "Informațiile în format JSON au expirat.",
+ "Error" : "Eroare",
+ "Weather status" : "Starea vremii",
+ "Weather status in your dashboard" : "Starea vremii pe ecranul principal",
+ "Detect location" : "Detectează locația",
+ "Set custom address" : "Setează adresă personalizată",
+ "Favorites" : "Favorite",
+ "{temperature} {unit} clear sky later today" : "{temperature} {unit} cer senin astăzi mai târziu",
+ "{temperature} {unit} clear sky" : "{temperature} {unit} cer senin",
+ "{temperature} {unit} cloudy later today" : "{temperature} {unit} înourat mai târziu",
+ "{temperature} {unit} cloudy" : "{temperature} {unit} înourat",
+ "{temperature} {unit} fair weather later today" : "{temperature} {unit} vreme frumoasă astăzi mai târziu",
+ "{temperature} {unit} fair weather" : "{temperature} {unit} vreme frumoasă",
+ "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} parțial înourat astăzi mai târziu",
+ "{temperature} {unit} partly cloudy" : "{temperature} {unit} parțial înourat",
+ "{temperature} {unit} foggy later today" : "{temperature} {unit} încețoșat astăzi mai târziu",
+ "{temperature} {unit} foggy" : "{temperature} {unit} încețoșat",
+ "More weather for {adr}" : "Mai multe informații despre vreme pentru {adr}",
+ "Loading weather" : "Se încarcă datele despre vreme",
+ "Remove from favorites" : "Șterge din favorite",
+ "Add as favorite" : "Adaugă ca favorit",
+ "You are not logged in." : "Nu ești înregistrat",
+ "There was an error getting the weather status information." : "A apărut o eroare când sa încercat preluarea de informații despre vreme.",
+ "No weather information found" : "Nu s-au găsit informații despre vreme",
+ "Location not found" : "Locația nu a fost găsită",
+ "There was an error setting the location address." : "A apărut o eroare în timpul setării locației adresei.",
+ "There was an error setting the location." : "A apărut o eroare în timpul setării locației.",
+ "There was an error saving the mode." : "A apărut o eroare în timpul salvării modului.",
+ "There was an error using personal address." : "A apărut o eroare în timpul folosirii adresei perosnale.",
+ "Set location for weather" : "Setează locația pentru vreme"
+},"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/workflowengine/l10n/de_DE.js b/apps/workflowengine/l10n/de_DE.js
index 52515a22796..526b88d87c8 100644
--- a/apps/workflowengine/l10n/de_DE.js
+++ b/apps/workflowengine/l10n/de_DE.js
@@ -54,7 +54,7 @@ OC.L10N.register(
"Images" : "Bilder",
"Office documents" : "Office-Dokumente",
"PDF documents" : "PDF-Dokumente",
- "Custom mimetype" : "Benutzerdefinierter Mime-Typ",
+ "Custom mimetype" : "Benutzerdefinierter MIME-Typ",
"Select a tag" : "Schlagwort auswählen",
"No results" : "Keine Ergebnisse",
"%s (invisible)" : "%s (unsichtbar)",
diff --git a/apps/workflowengine/l10n/de_DE.json b/apps/workflowengine/l10n/de_DE.json
index 9c6debcdbe5..7102c73c8a7 100644
--- a/apps/workflowengine/l10n/de_DE.json
+++ b/apps/workflowengine/l10n/de_DE.json
@@ -52,7 +52,7 @@
"Images" : "Bilder",
"Office documents" : "Office-Dokumente",
"PDF documents" : "PDF-Dokumente",
- "Custom mimetype" : "Benutzerdefinierter Mime-Typ",
+ "Custom mimetype" : "Benutzerdefinierter MIME-Typ",
"Select a tag" : "Schlagwort auswählen",
"No results" : "Keine Ergebnisse",
"%s (invisible)" : "%s (unsichtbar)",
diff --git a/apps/workflowengine/lib/Manager.php b/apps/workflowengine/lib/Manager.php
index 34dbf507b91..f6c3e3086c2 100644
--- a/apps/workflowengine/lib/Manager.php
+++ b/apps/workflowengine/lib/Manager.php
@@ -109,8 +109,8 @@ class Manager implements IManager {
/** @var ILogger */
protected $logger;
- /** @var CappedMemoryCache */
- protected $operationsByScope = [];
+ /** @var CappedMemoryCache<int[]> */
+ protected CappedMemoryCache $operationsByScope;
/** @var IUserSession */
protected $session;
@@ -350,10 +350,11 @@ class Manager implements IManager {
$qb->setParameters(['scope' => $scopeContext->getScope(), 'scopeId' => $scopeContext->getScopeId()]);
$result = $qb->execute();
- $this->operationsByScope[$scopeContext->getHash()] = [];
+ $operations = [];
while (($opId = $result->fetchOne()) !== false) {
- $this->operationsByScope[$scopeContext->getHash()][] = (int)$opId;
+ $operations[] = (int)$opId;
}
+ $this->operationsByScope[$scopeContext->getHash()] = $operations;
$result->closeCursor();
return in_array($id, $this->operationsByScope[$scopeContext->getHash()], true);
diff --git a/apps/workflowengine/src/components/Event.vue b/apps/workflowengine/src/components/Event.vue
index 97f24af22f3..5f4b8dd87b0 100644
--- a/apps/workflowengine/src/components/Event.vue
+++ b/apps/workflowengine/src/components/Event.vue
@@ -111,7 +111,7 @@ export default {
}
.multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single {
- background-image: var(--icon-triangle-s-000);
+ background-image: var(--icon-triangle-s-dark);
background-repeat: no-repeat;
background-position: right center;
}
diff --git a/apps/workflowengine/src/components/Operation.vue b/apps/workflowengine/src/components/Operation.vue
index 47a40eca950..a148ef3097b 100644
--- a/apps/workflowengine/src/components/Operation.vue
+++ b/apps/workflowengine/src/components/Operation.vue
@@ -4,11 +4,9 @@
<div class="actions__item__description">
<h3>{{ operation.name }}</h3>
<small>{{ operation.description }}</small>
- <div>
- <button v-if="colored">
- {{ t('workflowengine', 'Add new flow') }}
- </button>
- </div>
+ <Button v-if="colored">
+ {{ t('workflowengine', 'Add new flow') }}
+ </Button>
</div>
<div class="actions__item_options">
<slot />
@@ -17,8 +15,13 @@
</template>
<script>
+import Button from '@nextcloud/vue/dist/Components/Button'
+
export default {
name: 'Operation',
+ components: {
+ Button,
+ },
props: {
operation: {
type: Object,
diff --git a/apps/workflowengine/src/components/Rule.vue b/apps/workflowengine/src/components/Rule.vue
index 6240b304968..3ee01680819 100644
--- a/apps/workflowengine/src/components/Rule.vue
+++ b/apps/workflowengine/src/components/Rule.vue
@@ -31,17 +31,19 @@
@input="updateOperation" />
</Operation>
<div class="buttons">
- <button class="status-button icon"
- :class="ruleStatus.class"
- @click="saveRule">
- {{ ruleStatus.title }}
- </button>
- <button v-if="rule.id < -1 || dirty" @click="cancelRule">
+ <Button v-if="rule.id < -1 || dirty" @click="cancelRule">
{{ t('workflowengine', 'Cancel') }}
- </button>
- <button v-else-if="!dirty" @click="deleteRule">
+ </Button>
+ <Button v-else-if="!dirty" @click="deleteRule">
{{ t('workflowengine', 'Delete') }}
- </button>
+ </Button>
+ <Button :type="ruleStatus.type"
+ @click="saveRule">
+ <template #icon>
+ <component :is="ruleStatus.icon" :size="20" />
+ </template>
+ {{ ruleStatus.title }}
+ </Button>
</div>
<p v-if="error" class="error-message">
{{ error }}
@@ -54,6 +56,11 @@
import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip'
import Actions from '@nextcloud/vue/dist/Components/Actions'
import ActionButton from '@nextcloud/vue/dist/Components/ActionButton'
+import Button from '@nextcloud/vue/dist/Components/Button'
+import ArrowRight from 'vue-material-design-icons/ArrowRight.vue'
+import CheckMark from 'vue-material-design-icons/Check.vue'
+import Close from 'vue-material-design-icons/Close.vue'
+
import Event from './Event'
import Check from './Check'
import Operation from './Operation'
@@ -61,7 +68,7 @@ import Operation from './Operation'
export default {
name: 'Rule',
components: {
- Operation, Check, Event, Actions, ActionButton,
+ Operation, Check, Event, Actions, ActionButton, Button, ArrowRight, CheckMark, Close,
},
directives: {
Tooltip,
@@ -89,14 +96,15 @@ export default {
if (this.error || !this.rule.valid || this.rule.checks.length === 0 || this.rule.checks.some((check) => check.invalid === true)) {
return {
title: t('workflowengine', 'The configuration is invalid'),
- class: 'icon-close-white invalid',
+ icon: 'Close',
+ type: 'warning',
tooltip: { placement: 'bottom', show: true, content: this.error },
}
}
if (!this.dirty) {
- return { title: t('workflowengine', 'Active'), class: 'icon icon-checkmark' }
+ return { title: t('workflowengine', 'Active'), icon: 'CheckMark', type: 'success' }
}
- return { title: t('workflowengine', 'Save'), class: 'icon-confirm-white primary' }
+ return { title: t('workflowengine', 'Save'), icon: 'ArrowRight', type: 'primary' }
},
lastCheckComplete() {
@@ -170,18 +178,16 @@ export default {
</script>
<style scoped lang="scss">
- button.icon {
- padding-left: 32px;
- background-position: 10px center;
- }
.buttons {
- display: block;
- overflow: hidden;
+ display: flex;
+ justify-content: end;
button {
- float: right;
- height: 34px;
+ margin-left: 5px;
+ }
+ button:last-child{
+ margin-right: 10px;
}
}
@@ -190,27 +196,6 @@ export default {
margin-right: 10px;
}
- .status-button {
- transition: 0.5s ease all;
- display: block;
- margin: 3px 10px 3px auto;
- }
- .status-button.primary {
- padding-left: 32px;
- background-position: 10px center;
- }
- .status-button:not(.primary) {
- background-color: var(--color-main-background);
- }
- .status-button.invalid {
- background-color: var(--color-warning);
- color: #fff;
- border: none;
- }
- .status-button.icon-checkmark {
- border: 1px solid var(--color-success);
- }
-
.flow-icon {
width: 44px;
}
diff --git a/apps/workflowengine/src/styles/operation.scss b/apps/workflowengine/src/styles/operation.scss
index 89c105d58fe..d936c64e2de 100644
--- a/apps/workflowengine/src/styles/operation.scss
+++ b/apps/workflowengine/src/styles/operation.scss
@@ -24,6 +24,7 @@
flex-grow: 1;
display: flex;
flex-direction: column;
+ align-items: center;
}
.actions__item_options {
width: 100%;