aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/admin_audit/l10n/ast.js7
-rw-r--r--apps/admin_audit/l10n/ast.json5
-rw-r--r--apps/admin_audit/l10n/eo.js7
-rw-r--r--apps/admin_audit/l10n/eo.json5
-rw-r--r--apps/cloud_federation_api/l10n/eo.js8
-rw-r--r--apps/cloud_federation_api/l10n/eo.json6
-rw-r--r--apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php111
-rw-r--r--apps/dashboard/l10n/uk.js2
-rw-r--r--apps/dashboard/l10n/uk.json2
-rw-r--r--apps/dashboard/src/DashboardApp.vue6
-rw-r--r--apps/dav/appinfo/info.xml2
-rw-r--r--apps/dav/appinfo/v1/carddav.php3
-rw-r--r--apps/dav/composer/composer/autoload_classmap.php3
-rw-r--r--apps/dav/composer/composer/autoload_static.php3
-rw-r--r--apps/dav/l10n/it.js1
-rw-r--r--apps/dav/l10n/it.json1
-rw-r--r--apps/dav/l10n/pl.js3
-rw-r--r--apps/dav/l10n/pl.json3
-rw-r--r--apps/dav/l10n/uk.js3
-rw-r--r--apps/dav/l10n/uk.json3
-rw-r--r--apps/dav/lib/CalDAV/Reminder/ReminderService.php2
-rw-r--r--apps/dav/lib/CalDAV/Schedule/IMipPlugin.php10
-rw-r--r--apps/dav/lib/CardDAV/AddressBookRoot.php13
-rw-r--r--apps/dav/lib/CardDAV/CardDavBackend.php5
-rw-r--r--apps/dav/lib/CardDAV/Converter.php100
-rw-r--r--apps/dav/lib/CardDAV/SyncService.php18
-rw-r--r--apps/dav/lib/CardDAV/SystemAddressbook.php252
-rw-r--r--apps/dav/lib/CardDAV/UserAddressBooks.php64
-rw-r--r--apps/dav/lib/Connector/Sabre/Auth.php6
-rw-r--r--apps/dav/lib/Connector/Sabre/Exception/TooManyRequests.php55
-rw-r--r--apps/dav/lib/Connector/Sabre/File.php18
-rw-r--r--apps/dav/lib/Migration/Version1027Date20230504122946.php54
-rw-r--r--apps/dav/lib/RootCollection.php9
-rw-r--r--apps/dav/lib/Settings/CalDAVSettings.php2
-rw-r--r--apps/dav/lib/SystemTag/SystemTagNode.php19
-rw-r--r--apps/dav/lib/SystemTag/SystemTagPlugin.php30
-rw-r--r--apps/dav/lib/SystemTag/SystemTagsInUseCollection.php108
-rw-r--r--apps/dav/lib/Upload/ChunkingV2Plugin.php16
-rw-r--r--apps/dav/lib/UserMigration/CalendarMigrator.php4
-rw-r--r--apps/dav/lib/UserMigration/ContactsMigrator.php4
-rw-r--r--apps/dav/src/settings.js4
-rw-r--r--apps/dav/src/views/CalDavSettings.spec.js10
-rw-r--r--apps/dav/src/views/CalDavSettings.vue6
-rw-r--r--apps/dav/tests/unit/CardDAV/ConverterTest.php52
-rw-r--r--apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php128
-rw-r--r--apps/dav/tests/unit/Settings/CalDAVSettingsTest.php4
-rw-r--r--apps/encryption/l10n/ru.js5
-rw-r--r--apps/encryption/l10n/ru.json5
-rw-r--r--apps/federation/lib/SyncFederationAddressBooks.php8
-rw-r--r--apps/files/appinfo/info.xml3
-rw-r--r--apps/files/composer/composer/autoload_classmap.php3
-rw-r--r--apps/files/composer/composer/autoload_static.php3
-rw-r--r--apps/files/css/files.css2
-rw-r--r--apps/files/css/files.css.map2
-rw-r--r--apps/files/css/files.scss12
-rw-r--r--apps/files/css/merged.css2
-rw-r--r--apps/files/css/merged.css.map2
-rw-r--r--apps/files/css/upload.css2
-rw-r--r--apps/files/css/upload.css.map2
-rw-r--r--apps/files/css/upload.scss4
-rw-r--r--apps/files/l10n/af.js2
-rw-r--r--apps/files/l10n/af.json2
-rw-r--r--apps/files/l10n/ar.js49
-rw-r--r--apps/files/l10n/ar.json49
-rw-r--r--apps/files/l10n/bg.js2
-rw-r--r--apps/files/l10n/bg.json2
-rw-r--r--apps/files/l10n/br.js2
-rw-r--r--apps/files/l10n/br.json2
-rw-r--r--apps/files/l10n/ca.js2
-rw-r--r--apps/files/l10n/ca.json2
-rw-r--r--apps/files/l10n/cs.js2
-rw-r--r--apps/files/l10n/cs.json2
-rw-r--r--apps/files/l10n/da.js2
-rw-r--r--apps/files/l10n/da.json2
-rw-r--r--apps/files/l10n/de.js2
-rw-r--r--apps/files/l10n/de.json2
-rw-r--r--apps/files/l10n/de_DE.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.js2
-rw-r--r--apps/files/l10n/eo.json2
-rw-r--r--apps/files/l10n/es.js4
-rw-r--r--apps/files/l10n/es.json4
-rw-r--r--apps/files/l10n/es_419.js2
-rw-r--r--apps/files/l10n/es_419.json2
-rw-r--r--apps/files/l10n/es_AR.js2
-rw-r--r--apps/files/l10n/es_AR.json2
-rw-r--r--apps/files/l10n/es_CL.js2
-rw-r--r--apps/files/l10n/es_CL.json2
-rw-r--r--apps/files/l10n/es_CO.js2
-rw-r--r--apps/files/l10n/es_CO.json2
-rw-r--r--apps/files/l10n/es_CR.js2
-rw-r--r--apps/files/l10n/es_CR.json2
-rw-r--r--apps/files/l10n/es_DO.js2
-rw-r--r--apps/files/l10n/es_DO.json2
-rw-r--r--apps/files/l10n/es_EC.js2
-rw-r--r--apps/files/l10n/es_EC.json2
-rw-r--r--apps/files/l10n/es_GT.js2
-rw-r--r--apps/files/l10n/es_GT.json2
-rw-r--r--apps/files/l10n/es_HN.js2
-rw-r--r--apps/files/l10n/es_HN.json2
-rw-r--r--apps/files/l10n/es_MX.js2
-rw-r--r--apps/files/l10n/es_MX.json2
-rw-r--r--apps/files/l10n/es_NI.js2
-rw-r--r--apps/files/l10n/es_NI.json2
-rw-r--r--apps/files/l10n/es_PA.js2
-rw-r--r--apps/files/l10n/es_PA.json2
-rw-r--r--apps/files/l10n/es_PE.js2
-rw-r--r--apps/files/l10n/es_PE.json2
-rw-r--r--apps/files/l10n/es_PR.js2
-rw-r--r--apps/files/l10n/es_PR.json2
-rw-r--r--apps/files/l10n/es_PY.js2
-rw-r--r--apps/files/l10n/es_PY.json2
-rw-r--r--apps/files/l10n/es_SV.js2
-rw-r--r--apps/files/l10n/es_SV.json2
-rw-r--r--apps/files/l10n/es_UY.js2
-rw-r--r--apps/files/l10n/es_UY.json2
-rw-r--r--apps/files/l10n/et_EE.js2
-rw-r--r--apps/files/l10n/et_EE.json2
-rw-r--r--apps/files/l10n/eu.js2
-rw-r--r--apps/files/l10n/eu.json2
-rw-r--r--apps/files/l10n/fa.js2
-rw-r--r--apps/files/l10n/fa.json2
-rw-r--r--apps/files/l10n/fi.js10
-rw-r--r--apps/files/l10n/fi.json10
-rw-r--r--apps/files/l10n/fr.js6
-rw-r--r--apps/files/l10n/fr.json6
-rw-r--r--apps/files/l10n/gl.js5
-rw-r--r--apps/files/l10n/gl.json5
-rw-r--r--apps/files/l10n/he.js2
-rw-r--r--apps/files/l10n/he.json2
-rw-r--r--apps/files/l10n/hr.js2
-rw-r--r--apps/files/l10n/hr.json2
-rw-r--r--apps/files/l10n/hu.js2
-rw-r--r--apps/files/l10n/hu.json2
-rw-r--r--apps/files/l10n/id.js2
-rw-r--r--apps/files/l10n/id.json2
-rw-r--r--apps/files/l10n/is.js2
-rw-r--r--apps/files/l10n/is.json2
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/ja.js2
-rw-r--r--apps/files/l10n/ja.json2
-rw-r--r--apps/files/l10n/ka_GE.js2
-rw-r--r--apps/files/l10n/ka_GE.json2
-rw-r--r--apps/files/l10n/ko.js2
-rw-r--r--apps/files/l10n/ko.json2
-rw-r--r--apps/files/l10n/lt_LT.js2
-rw-r--r--apps/files/l10n/lt_LT.json2
-rw-r--r--apps/files/l10n/lv.js2
-rw-r--r--apps/files/l10n/lv.json2
-rw-r--r--apps/files/l10n/mk.js2
-rw-r--r--apps/files/l10n/mk.json2
-rw-r--r--apps/files/l10n/mn.js2
-rw-r--r--apps/files/l10n/mn.json2
-rw-r--r--apps/files/l10n/nb.js2
-rw-r--r--apps/files/l10n/nb.json2
-rw-r--r--apps/files/l10n/nl.js2
-rw-r--r--apps/files/l10n/nl.json2
-rw-r--r--apps/files/l10n/pl.js2
-rw-r--r--apps/files/l10n/pl.json2
-rw-r--r--apps/files/l10n/ps.js2
-rw-r--r--apps/files/l10n/ps.json2
-rw-r--r--apps/files/l10n/pt_BR.js2
-rw-r--r--apps/files/l10n/pt_BR.json2
-rw-r--r--apps/files/l10n/pt_PT.js2
-rw-r--r--apps/files/l10n/pt_PT.json2
-rw-r--r--apps/files/l10n/ro.js2
-rw-r--r--apps/files/l10n/ro.json2
-rw-r--r--apps/files/l10n/ru.js5
-rw-r--r--apps/files/l10n/ru.json5
-rw-r--r--apps/files/l10n/sc.js2
-rw-r--r--apps/files/l10n/sc.json2
-rw-r--r--apps/files/l10n/sk.js2
-rw-r--r--apps/files/l10n/sk.json2
-rw-r--r--apps/files/l10n/sl.js2
-rw-r--r--apps/files/l10n/sl.json2
-rw-r--r--apps/files/l10n/sq.js2
-rw-r--r--apps/files/l10n/sq.json2
-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.js2
-rw-r--r--apps/files/l10n/th.json2
-rw-r--r--apps/files/l10n/tr.js5
-rw-r--r--apps/files/l10n/tr.json5
-rw-r--r--apps/files/l10n/uk.js5
-rw-r--r--apps/files/l10n/uk.json5
-rw-r--r--apps/files/l10n/vi.js2
-rw-r--r--apps/files/l10n/vi.json2
-rw-r--r--apps/files/l10n/zh_CN.js10
-rw-r--r--apps/files/l10n/zh_CN.json10
-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/Command/Delete.php116
-rw-r--r--apps/files/lib/Command/Get.php89
-rw-r--r--apps/files/lib/Command/Put.php86
-rw-r--r--apps/files/lib/Command/Scan.php69
-rw-r--r--apps/files/src/components/TemplatePreview.vue2
-rw-r--r--apps/files/src/views/TemplatePicker.vue13
-rw-r--r--apps/files_external/l10n/uk.js3
-rw-r--r--apps/files_external/l10n/uk.json3
-rw-r--r--apps/files_sharing/l10n/ar.js3
-rw-r--r--apps/files_sharing/l10n/ar.json3
-rw-r--r--apps/files_sharing/l10n/bg.js2
-rw-r--r--apps/files_sharing/l10n/bg.json2
-rw-r--r--apps/files_sharing/l10n/ca.js2
-rw-r--r--apps/files_sharing/l10n/ca.json2
-rw-r--r--apps/files_sharing/l10n/cs.js2
-rw-r--r--apps/files_sharing/l10n/cs.json2
-rw-r--r--apps/files_sharing/l10n/de.js2
-rw-r--r--apps/files_sharing/l10n/de.json2
-rw-r--r--apps/files_sharing/l10n/de_DE.js2
-rw-r--r--apps/files_sharing/l10n/de_DE.json2
-rw-r--r--apps/files_sharing/l10n/el.js5
-rw-r--r--apps/files_sharing/l10n/el.json5
-rw-r--r--apps/files_sharing/l10n/en_GB.js2
-rw-r--r--apps/files_sharing/l10n/en_GB.json2
-rw-r--r--apps/files_sharing/l10n/eo.js2
-rw-r--r--apps/files_sharing/l10n/eo.json2
-rw-r--r--apps/files_sharing/l10n/es.js2
-rw-r--r--apps/files_sharing/l10n/es.json2
-rw-r--r--apps/files_sharing/l10n/eu.js2
-rw-r--r--apps/files_sharing/l10n/eu.json2
-rw-r--r--apps/files_sharing/l10n/fa.js2
-rw-r--r--apps/files_sharing/l10n/fa.json2
-rw-r--r--apps/files_sharing/l10n/fi.js2
-rw-r--r--apps/files_sharing/l10n/fi.json2
-rw-r--r--apps/files_sharing/l10n/fr.js4
-rw-r--r--apps/files_sharing/l10n/fr.json4
-rw-r--r--apps/files_sharing/l10n/gl.js2
-rw-r--r--apps/files_sharing/l10n/gl.json2
-rw-r--r--apps/files_sharing/l10n/he.js2
-rw-r--r--apps/files_sharing/l10n/he.json2
-rw-r--r--apps/files_sharing/l10n/hr.js2
-rw-r--r--apps/files_sharing/l10n/hr.json2
-rw-r--r--apps/files_sharing/l10n/hu.js2
-rw-r--r--apps/files_sharing/l10n/hu.json2
-rw-r--r--apps/files_sharing/l10n/is.js2
-rw-r--r--apps/files_sharing/l10n/is.json2
-rw-r--r--apps/files_sharing/l10n/it.js2
-rw-r--r--apps/files_sharing/l10n/it.json2
-rw-r--r--apps/files_sharing/l10n/ja.js2
-rw-r--r--apps/files_sharing/l10n/ja.json2
-rw-r--r--apps/files_sharing/l10n/ko.js2
-rw-r--r--apps/files_sharing/l10n/ko.json2
-rw-r--r--apps/files_sharing/l10n/lt_LT.js2
-rw-r--r--apps/files_sharing/l10n/lt_LT.json2
-rw-r--r--apps/files_sharing/l10n/mk.js2
-rw-r--r--apps/files_sharing/l10n/mk.json2
-rw-r--r--apps/files_sharing/l10n/nb.js2
-rw-r--r--apps/files_sharing/l10n/nb.json2
-rw-r--r--apps/files_sharing/l10n/nl.js2
-rw-r--r--apps/files_sharing/l10n/nl.json2
-rw-r--r--apps/files_sharing/l10n/pl.js2
-rw-r--r--apps/files_sharing/l10n/pl.json2
-rw-r--r--apps/files_sharing/l10n/pt_BR.js2
-rw-r--r--apps/files_sharing/l10n/pt_BR.json2
-rw-r--r--apps/files_sharing/l10n/ru.js2
-rw-r--r--apps/files_sharing/l10n/ru.json2
-rw-r--r--apps/files_sharing/l10n/sc.js2
-rw-r--r--apps/files_sharing/l10n/sc.json2
-rw-r--r--apps/files_sharing/l10n/sk.js2
-rw-r--r--apps/files_sharing/l10n/sk.json2
-rw-r--r--apps/files_sharing/l10n/sl.js2
-rw-r--r--apps/files_sharing/l10n/sl.json2
-rw-r--r--apps/files_sharing/l10n/sr.js2
-rw-r--r--apps/files_sharing/l10n/sr.json2
-rw-r--r--apps/files_sharing/l10n/sv.js2
-rw-r--r--apps/files_sharing/l10n/sv.json2
-rw-r--r--apps/files_sharing/l10n/tr.js2
-rw-r--r--apps/files_sharing/l10n/tr.json2
-rw-r--r--apps/files_sharing/l10n/uk.js6
-rw-r--r--apps/files_sharing/l10n/uk.json6
-rw-r--r--apps/files_sharing/l10n/zh_CN.js8
-rw-r--r--apps/files_sharing/l10n/zh_CN.json8
-rw-r--r--apps/files_sharing/l10n/zh_HK.js2
-rw-r--r--apps/files_sharing/l10n/zh_HK.json2
-rw-r--r--apps/files_sharing/l10n/zh_TW.js2
-rw-r--r--apps/files_sharing/l10n/zh_TW.json2
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php49
-rw-r--r--apps/files_sharing/lib/Scanner.php5
-rw-r--r--apps/files_sharing/src/components/SharingEntryLink.vue3
-rw-r--r--apps/files_sharing/src/components/SharingInput.vue2
-rw-r--r--apps/files_sharing/src/share.js2
-rw-r--r--apps/files_sharing/tests/External/ScannerTest.php6
-rw-r--r--apps/files_trashbin/l10n/uk.js1
-rw-r--r--apps/files_trashbin/l10n/uk.json1
-rw-r--r--apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php4
-rw-r--r--apps/files_versions/l10n/pl.js3
-rw-r--r--apps/files_versions/l10n/pl.json3
-rw-r--r--apps/files_versions/lib/Storage.php39
-rw-r--r--apps/files_versions/lib/Versions/VersionManager.php51
-rw-r--r--apps/provisioning_api/lib/Controller/AUserData.php3
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php28
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php160
-rw-r--r--apps/settings/css/settings.css2
-rw-r--r--apps/settings/css/settings.css.map2
-rw-r--r--apps/settings/css/settings.scss32
-rw-r--r--apps/settings/l10n/ar.js2
-rw-r--r--apps/settings/l10n/ar.json2
-rw-r--r--apps/settings/l10n/bg.js6
-rw-r--r--apps/settings/l10n/bg.json6
-rw-r--r--apps/settings/l10n/br.js2
-rw-r--r--apps/settings/l10n/br.json2
-rw-r--r--apps/settings/l10n/ca.js6
-rw-r--r--apps/settings/l10n/ca.json6
-rw-r--r--apps/settings/l10n/cs.js6
-rw-r--r--apps/settings/l10n/cs.json6
-rw-r--r--apps/settings/l10n/da.js6
-rw-r--r--apps/settings/l10n/da.json6
-rw-r--r--apps/settings/l10n/de.js6
-rw-r--r--apps/settings/l10n/de.json6
-rw-r--r--apps/settings/l10n/de_DE.js8
-rw-r--r--apps/settings/l10n/de_DE.json8
-rw-r--r--apps/settings/l10n/el.js6
-rw-r--r--apps/settings/l10n/el.json6
-rw-r--r--apps/settings/l10n/en_GB.js8
-rw-r--r--apps/settings/l10n/en_GB.json8
-rw-r--r--apps/settings/l10n/eo.js2
-rw-r--r--apps/settings/l10n/eo.json2
-rw-r--r--apps/settings/l10n/es.js10
-rw-r--r--apps/settings/l10n/es.json10
-rw-r--r--apps/settings/l10n/es_419.js2
-rw-r--r--apps/settings/l10n/es_419.json2
-rw-r--r--apps/settings/l10n/es_AR.js2
-rw-r--r--apps/settings/l10n/es_AR.json2
-rw-r--r--apps/settings/l10n/es_CL.js2
-rw-r--r--apps/settings/l10n/es_CL.json2
-rw-r--r--apps/settings/l10n/es_CO.js2
-rw-r--r--apps/settings/l10n/es_CO.json2
-rw-r--r--apps/settings/l10n/es_CR.js2
-rw-r--r--apps/settings/l10n/es_CR.json2
-rw-r--r--apps/settings/l10n/es_DO.js2
-rw-r--r--apps/settings/l10n/es_DO.json2
-rw-r--r--apps/settings/l10n/es_EC.js2
-rw-r--r--apps/settings/l10n/es_EC.json2
-rw-r--r--apps/settings/l10n/es_GT.js2
-rw-r--r--apps/settings/l10n/es_GT.json2
-rw-r--r--apps/settings/l10n/es_HN.js2
-rw-r--r--apps/settings/l10n/es_HN.json2
-rw-r--r--apps/settings/l10n/es_MX.js2
-rw-r--r--apps/settings/l10n/es_MX.json2
-rw-r--r--apps/settings/l10n/es_NI.js2
-rw-r--r--apps/settings/l10n/es_NI.json2
-rw-r--r--apps/settings/l10n/es_PA.js2
-rw-r--r--apps/settings/l10n/es_PA.json2
-rw-r--r--apps/settings/l10n/es_PE.js2
-rw-r--r--apps/settings/l10n/es_PE.json2
-rw-r--r--apps/settings/l10n/es_PR.js2
-rw-r--r--apps/settings/l10n/es_PR.json2
-rw-r--r--apps/settings/l10n/es_PY.js2
-rw-r--r--apps/settings/l10n/es_PY.json2
-rw-r--r--apps/settings/l10n/es_SV.js2
-rw-r--r--apps/settings/l10n/es_SV.json2
-rw-r--r--apps/settings/l10n/es_UY.js2
-rw-r--r--apps/settings/l10n/es_UY.json2
-rw-r--r--apps/settings/l10n/et_EE.js2
-rw-r--r--apps/settings/l10n/et_EE.json2
-rw-r--r--apps/settings/l10n/eu.js6
-rw-r--r--apps/settings/l10n/eu.json6
-rw-r--r--apps/settings/l10n/fa.js2
-rw-r--r--apps/settings/l10n/fa.json2
-rw-r--r--apps/settings/l10n/fi.js7
-rw-r--r--apps/settings/l10n/fi.json7
-rw-r--r--apps/settings/l10n/fr.js6
-rw-r--r--apps/settings/l10n/fr.json6
-rw-r--r--apps/settings/l10n/gl.js6
-rw-r--r--apps/settings/l10n/gl.json6
-rw-r--r--apps/settings/l10n/he.js6
-rw-r--r--apps/settings/l10n/he.json6
-rw-r--r--apps/settings/l10n/hr.js6
-rw-r--r--apps/settings/l10n/hr.json6
-rw-r--r--apps/settings/l10n/hu.js6
-rw-r--r--apps/settings/l10n/hu.json6
-rw-r--r--apps/settings/l10n/id.js2
-rw-r--r--apps/settings/l10n/id.json2
-rw-r--r--apps/settings/l10n/is.js2
-rw-r--r--apps/settings/l10n/is.json2
-rw-r--r--apps/settings/l10n/it.js7
-rw-r--r--apps/settings/l10n/it.json7
-rw-r--r--apps/settings/l10n/ja.js6
-rw-r--r--apps/settings/l10n/ja.json6
-rw-r--r--apps/settings/l10n/ka_GE.js2
-rw-r--r--apps/settings/l10n/ka_GE.json2
-rw-r--r--apps/settings/l10n/ko.js2
-rw-r--r--apps/settings/l10n/ko.json2
-rw-r--r--apps/settings/l10n/lt_LT.js2
-rw-r--r--apps/settings/l10n/lt_LT.json2
-rw-r--r--apps/settings/l10n/lv.js2
-rw-r--r--apps/settings/l10n/lv.json2
-rw-r--r--apps/settings/l10n/mk.js6
-rw-r--r--apps/settings/l10n/mk.json6
-rw-r--r--apps/settings/l10n/nb.js2
-rw-r--r--apps/settings/l10n/nb.json2
-rw-r--r--apps/settings/l10n/nl.js6
-rw-r--r--apps/settings/l10n/nl.json6
-rw-r--r--apps/settings/l10n/nn_NO.js2
-rw-r--r--apps/settings/l10n/nn_NO.json2
-rw-r--r--apps/settings/l10n/oc.js2
-rw-r--r--apps/settings/l10n/oc.json2
-rw-r--r--apps/settings/l10n/pl.js6
-rw-r--r--apps/settings/l10n/pl.json6
-rw-r--r--apps/settings/l10n/pt_BR.js6
-rw-r--r--apps/settings/l10n/pt_BR.json6
-rw-r--r--apps/settings/l10n/pt_PT.js2
-rw-r--r--apps/settings/l10n/pt_PT.json2
-rw-r--r--apps/settings/l10n/ro.js6
-rw-r--r--apps/settings/l10n/ro.json6
-rw-r--r--apps/settings/l10n/ru.js10
-rw-r--r--apps/settings/l10n/ru.json10
-rw-r--r--apps/settings/l10n/sc.js6
-rw-r--r--apps/settings/l10n/sc.json6
-rw-r--r--apps/settings/l10n/sk.js6
-rw-r--r--apps/settings/l10n/sk.json6
-rw-r--r--apps/settings/l10n/sl.js6
-rw-r--r--apps/settings/l10n/sl.json6
-rw-r--r--apps/settings/l10n/sq.js2
-rw-r--r--apps/settings/l10n/sq.json2
-rw-r--r--apps/settings/l10n/sr.js16
-rw-r--r--apps/settings/l10n/sr.json16
-rw-r--r--apps/settings/l10n/sv.js8
-rw-r--r--apps/settings/l10n/sv.json8
-rw-r--r--apps/settings/l10n/th.js2
-rw-r--r--apps/settings/l10n/th.json2
-rw-r--r--apps/settings/l10n/tr.js6
-rw-r--r--apps/settings/l10n/tr.json6
-rw-r--r--apps/settings/l10n/uk.js7
-rw-r--r--apps/settings/l10n/uk.json7
-rw-r--r--apps/settings/l10n/vi.js2
-rw-r--r--apps/settings/l10n/vi.json2
-rw-r--r--apps/settings/l10n/zh_CN.js12
-rw-r--r--apps/settings/l10n/zh_CN.json12
-rw-r--r--apps/settings/l10n/zh_HK.js8
-rw-r--r--apps/settings/l10n/zh_HK.json8
-rw-r--r--apps/settings/l10n/zh_TW.js8
-rw-r--r--apps/settings/l10n/zh_TW.json8
-rw-r--r--apps/settings/lib/UserMigration/AccountMigrator.php4
-rw-r--r--apps/settings/src/admin.js2
-rw-r--r--apps/settings/src/components/BasicSettings/BackgroundJob.vue4
-rw-r--r--apps/settings/src/components/PersonalInfo/DisplayNameSection.vue1
-rw-r--r--apps/settings/src/components/PersonalInfo/EmailSection/Email.vue2
-rw-r--r--apps/settings/src/components/PersonalInfo/LocationSection.vue1
-rw-r--r--apps/settings/src/components/PersonalInfo/OrganisationSection.vue1
-rw-r--r--apps/settings/src/components/PersonalInfo/PhoneSection.vue1
-rw-r--r--apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue4
-rw-r--r--apps/settings/src/components/PersonalInfo/RoleSection.vue1
-rw-r--r--apps/settings/src/components/PersonalInfo/WebsiteSection.vue1
-rw-r--r--apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue6
-rw-r--r--apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue4
-rw-r--r--apps/settings/src/components/UserList.vue203
-rw-r--r--apps/settings/src/components/UserList/UserRow.vue197
-rw-r--r--apps/settings/src/components/UserList/UserRowSimple.vue53
-rw-r--r--apps/settings/src/store/users.js44
-rw-r--r--apps/settings/templates/settings/admin/overview.php2
-rw-r--r--apps/settings/templates/settings/admin/sharing.php6
-rw-r--r--apps/systemtags/l10n/eu.js4
-rw-r--r--apps/systemtags/l10n/eu.json4
-rw-r--r--apps/systemtags/l10n/ru.js9
-rw-r--r--apps/systemtags/l10n/ru.json9
-rw-r--r--apps/systemtags/l10n/uk.js10
-rw-r--r--apps/systemtags/l10n/uk.json10
-rw-r--r--apps/theming/css/default.css6
-rw-r--r--apps/theming/l10n/eo.js4
-rw-r--r--apps/theming/l10n/eo.json4
-rw-r--r--apps/theming/lib/Themes/CommonThemeTrait.php36
-rw-r--r--apps/theming/lib/Util.php28
-rw-r--r--apps/theming/src/AdminTheming.vue2
-rw-r--r--apps/theming/src/components/BackgroundSettings.vue4
-rw-r--r--apps/theming/src/components/admin/ColorPickerField.vue18
-rw-r--r--apps/theming/tests/CapabilitiesTest.php18
-rw-r--r--apps/theming/tests/UtilTest.php29
-rw-r--r--apps/updatenotification/l10n/it.js1
-rw-r--r--apps/updatenotification/l10n/it.json1
-rw-r--r--apps/updatenotification/l10n/pl.js1
-rw-r--r--apps/updatenotification/l10n/pl.json1
-rw-r--r--apps/updatenotification/l10n/uk.js1
-rw-r--r--apps/updatenotification/l10n/uk.json1
-rw-r--r--apps/user_ldap/l10n/eu.js6
-rw-r--r--apps/user_ldap/l10n/eu.json6
-rw-r--r--apps/user_ldap/l10n/ru.js19
-rw-r--r--apps/user_ldap/l10n/ru.json19
-rw-r--r--apps/user_status/l10n/tr.js4
-rw-r--r--apps/user_status/l10n/tr.json4
-rw-r--r--apps/user_status/l10n/uk.js7
-rw-r--r--apps/user_status/l10n/uk.json7
-rw-r--r--apps/user_status/lib/Controller/UserStatusController.php10
-rw-r--r--apps/user_status/src/components/OnlineStatusSelect.vue2
-rw-r--r--apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php9
-rw-r--r--apps/weather_status/l10n/it.js12
-rw-r--r--apps/weather_status/l10n/it.json12
-rw-r--r--apps/weather_status/l10n/zh_CN.js34
-rw-r--r--apps/weather_status/l10n/zh_CN.json34
-rw-r--r--apps/weather_status/src/App.vue1
-rw-r--r--apps/workflowengine/l10n/bg.js6
-rw-r--r--apps/workflowengine/l10n/bg.json6
-rw-r--r--apps/workflowengine/l10n/ca.js6
-rw-r--r--apps/workflowengine/l10n/ca.json6
-rw-r--r--apps/workflowengine/l10n/cs.js6
-rw-r--r--apps/workflowengine/l10n/cs.json6
-rw-r--r--apps/workflowengine/l10n/da.js6
-rw-r--r--apps/workflowengine/l10n/da.json6
-rw-r--r--apps/workflowengine/l10n/de.js6
-rw-r--r--apps/workflowengine/l10n/de.json6
-rw-r--r--apps/workflowengine/l10n/de_DE.js8
-rw-r--r--apps/workflowengine/l10n/de_DE.json8
-rw-r--r--apps/workflowengine/l10n/el.js6
-rw-r--r--apps/workflowengine/l10n/el.json6
-rw-r--r--apps/workflowengine/l10n/en_GB.js8
-rw-r--r--apps/workflowengine/l10n/en_GB.json8
-rw-r--r--apps/workflowengine/l10n/eo.js6
-rw-r--r--apps/workflowengine/l10n/eo.json6
-rw-r--r--apps/workflowengine/l10n/es.js8
-rw-r--r--apps/workflowengine/l10n/es.json8
-rw-r--r--apps/workflowengine/l10n/es_AR.js4
-rw-r--r--apps/workflowengine/l10n/es_AR.json4
-rw-r--r--apps/workflowengine/l10n/es_MX.js4
-rw-r--r--apps/workflowengine/l10n/es_MX.json4
-rw-r--r--apps/workflowengine/l10n/eu.js6
-rw-r--r--apps/workflowengine/l10n/eu.json6
-rw-r--r--apps/workflowengine/l10n/fa.js6
-rw-r--r--apps/workflowengine/l10n/fa.json6
-rw-r--r--apps/workflowengine/l10n/fi.js6
-rw-r--r--apps/workflowengine/l10n/fi.json6
-rw-r--r--apps/workflowengine/l10n/fr.js6
-rw-r--r--apps/workflowengine/l10n/fr.json6
-rw-r--r--apps/workflowengine/l10n/gl.js6
-rw-r--r--apps/workflowengine/l10n/gl.json6
-rw-r--r--apps/workflowengine/l10n/he.js6
-rw-r--r--apps/workflowengine/l10n/he.json6
-rw-r--r--apps/workflowengine/l10n/hr.js6
-rw-r--r--apps/workflowengine/l10n/hr.json6
-rw-r--r--apps/workflowengine/l10n/hu.js6
-rw-r--r--apps/workflowengine/l10n/hu.json6
-rw-r--r--apps/workflowengine/l10n/is.js4
-rw-r--r--apps/workflowengine/l10n/is.json4
-rw-r--r--apps/workflowengine/l10n/it.js6
-rw-r--r--apps/workflowengine/l10n/it.json6
-rw-r--r--apps/workflowengine/l10n/ja.js6
-rw-r--r--apps/workflowengine/l10n/ja.json6
-rw-r--r--apps/workflowengine/l10n/ko.js6
-rw-r--r--apps/workflowengine/l10n/ko.json6
-rw-r--r--apps/workflowengine/l10n/lt_LT.js6
-rw-r--r--apps/workflowengine/l10n/lt_LT.json6
-rw-r--r--apps/workflowengine/l10n/lv.js6
-rw-r--r--apps/workflowengine/l10n/lv.json6
-rw-r--r--apps/workflowengine/l10n/mk.js4
-rw-r--r--apps/workflowengine/l10n/mk.json4
-rw-r--r--apps/workflowengine/l10n/nb.js6
-rw-r--r--apps/workflowengine/l10n/nb.json6
-rw-r--r--apps/workflowengine/l10n/nl.js6
-rw-r--r--apps/workflowengine/l10n/nl.json6
-rw-r--r--apps/workflowengine/l10n/pl.js6
-rw-r--r--apps/workflowengine/l10n/pl.json6
-rw-r--r--apps/workflowengine/l10n/pt_BR.js6
-rw-r--r--apps/workflowengine/l10n/pt_BR.json6
-rw-r--r--apps/workflowengine/l10n/pt_PT.js4
-rw-r--r--apps/workflowengine/l10n/pt_PT.json4
-rw-r--r--apps/workflowengine/l10n/ru.js6
-rw-r--r--apps/workflowengine/l10n/ru.json6
-rw-r--r--apps/workflowengine/l10n/sc.js6
-rw-r--r--apps/workflowengine/l10n/sc.json6
-rw-r--r--apps/workflowengine/l10n/sk.js6
-rw-r--r--apps/workflowengine/l10n/sk.json6
-rw-r--r--apps/workflowengine/l10n/sl.js6
-rw-r--r--apps/workflowengine/l10n/sl.json6
-rw-r--r--apps/workflowengine/l10n/sq.js4
-rw-r--r--apps/workflowengine/l10n/sq.json4
-rw-r--r--apps/workflowengine/l10n/sr.js8
-rw-r--r--apps/workflowengine/l10n/sr.json8
-rw-r--r--apps/workflowengine/l10n/sv.js8
-rw-r--r--apps/workflowengine/l10n/sv.json8
-rw-r--r--apps/workflowengine/l10n/tr.js8
-rw-r--r--apps/workflowengine/l10n/tr.json8
-rw-r--r--apps/workflowengine/l10n/uk.js6
-rw-r--r--apps/workflowengine/l10n/uk.json6
-rw-r--r--apps/workflowengine/l10n/zh_CN.js6
-rw-r--r--apps/workflowengine/l10n/zh_CN.json6
-rw-r--r--apps/workflowengine/l10n/zh_HK.js8
-rw-r--r--apps/workflowengine/l10n/zh_HK.json8
-rw-r--r--apps/workflowengine/l10n/zh_TW.js8
-rw-r--r--apps/workflowengine/l10n/zh_TW.json8
-rw-r--r--apps/workflowengine/src/components/Check.vue59
-rw-r--r--apps/workflowengine/src/components/Checks/FileMimeType.vue90
-rw-r--r--apps/workflowengine/src/components/Checks/RequestTime.vue8
-rw-r--r--apps/workflowengine/src/components/Checks/RequestURL.vue75
-rw-r--r--apps/workflowengine/src/components/Checks/RequestUserAgent.vue80
-rw-r--r--apps/workflowengine/src/components/Checks/RequestUserGroup.vue14
-rw-r--r--apps/workflowengine/src/components/Rule.vue10
-rw-r--r--apps/workflowengine/src/styles/operation.scss2
597 files changed, 3569 insertions, 1524 deletions
diff --git a/apps/admin_audit/l10n/ast.js b/apps/admin_audit/l10n/ast.js
new file mode 100644
index 00000000000..862f01ddb6d
--- /dev/null
+++ b/apps/admin_audit/l10n/ast.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "admin_audit",
+ {
+ "Auditing / Logging" : "Auditoría / Rexistru",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Forne la capacidá de rexistrar, por exemplu, l'accesu a los ficheros o a otres aiciones sensibles de Nextcloud"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/admin_audit/l10n/ast.json b/apps/admin_audit/l10n/ast.json
new file mode 100644
index 00000000000..61715be4851
--- /dev/null
+++ b/apps/admin_audit/l10n/ast.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Auditing / Logging" : "Auditoría / Rexistru",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Forne la capacidá de rexistrar, por exemplu, l'accesu a los ficheros o a otres aiciones sensibles de Nextcloud"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/admin_audit/l10n/eo.js b/apps/admin_audit/l10n/eo.js
new file mode 100644
index 00000000000..3ab916b0b54
--- /dev/null
+++ b/apps/admin_audit/l10n/eo.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "admin_audit",
+ {
+ "Auditing / Logging" : "Ekzamenado / Protokolado",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Provizi protokolado-kapablojn por Nextcloud, kiel ekzemple protokolado de aliroj al dosieroj aŭ aliaj delikataj agoj."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/admin_audit/l10n/eo.json b/apps/admin_audit/l10n/eo.json
new file mode 100644
index 00000000000..eef1c6821c5
--- /dev/null
+++ b/apps/admin_audit/l10n/eo.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Auditing / Logging" : "Ekzamenado / Protokolado",
+ "Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Provizi protokolado-kapablojn por Nextcloud, kiel ekzemple protokolado de aliroj al dosieroj aŭ aliaj delikataj agoj."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/cloud_federation_api/l10n/eo.js b/apps/cloud_federation_api/l10n/eo.js
new file mode 100644
index 00000000000..d01810bba74
--- /dev/null
+++ b/apps/cloud_federation_api/l10n/eo.js
@@ -0,0 +1,8 @@
+OC.L10N.register(
+ "cloud_federation_api",
+ {
+ "Cloud Federation API" : "API de Nuba Federacio",
+ "Enable clouds to communicate with each other and exchange data" : "Ebligi interkomunikadon inter diversaj nuboj kaj la interŝanĝon de datumoj",
+ "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API de Nuba Federacio ebligas diversajn instancojn de Nextcloud interkomuniki kaj interŝanĝi datumojn inter si."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/cloud_federation_api/l10n/eo.json b/apps/cloud_federation_api/l10n/eo.json
new file mode 100644
index 00000000000..17dd80538d8
--- /dev/null
+++ b/apps/cloud_federation_api/l10n/eo.json
@@ -0,0 +1,6 @@
+{ "translations": {
+ "Cloud Federation API" : "API de Nuba Federacio",
+ "Enable clouds to communicate with each other and exchange data" : "Ebligi interkomunikadon inter diversaj nuboj kaj la interŝanĝon de datumoj",
+ "The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "La API de Nuba Federacio ebligas diversajn instancojn de Nextcloud interkomuniki kaj interŝanĝi datumojn inter si."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php b/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php
index 0d776bb9fcc..2064136c392 100644
--- a/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php
+++ b/apps/contactsinteraction/lib/Listeners/ContactInteractionListener.php
@@ -28,10 +28,12 @@ namespace OCA\ContactsInteraction\Listeners;
use OCA\ContactsInteraction\Db\CardSearchDao;
use OCA\ContactsInteraction\Db\RecentContact;
use OCA\ContactsInteraction\Db\RecentContactMapper;
+use OCP\AppFramework\Db\TTransactional;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Contacts\Events\ContactInteractedWithEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
+use OCP\IDBConnection;
use OCP\IL10N;
use OCP\IUserManager;
use Psr\Log\LoggerInterface;
@@ -41,9 +43,13 @@ use Sabre\VObject\UUIDUtil;
use Throwable;
class ContactInteractionListener implements IEventListener {
+
+ use TTransactional;
+
private RecentContactMapper $mapper;
private CardSearchDao $cardSearchDao;
private IUserManager $userManager;
+ private IDBConnection $dbConnection;
private ITimeFactory $timeFactory;
private IL10N $l10n;
private LoggerInterface $logger;
@@ -51,12 +57,14 @@ class ContactInteractionListener implements IEventListener {
public function __construct(RecentContactMapper $mapper,
CardSearchDao $cardSearchDao,
IUserManager $userManager,
+ IDBConnection $connection,
ITimeFactory $timeFactory,
IL10N $l10nFactory,
LoggerInterface $logger) {
$this->mapper = $mapper;
$this->cardSearchDao = $cardSearchDao;
$this->userManager = $userManager;
+ $this->dbConnection = $connection;
$this->timeFactory = $timeFactory;
$this->l10n = $l10nFactory;
$this->logger = $logger;
@@ -77,58 +85,63 @@ class ContactInteractionListener implements IEventListener {
return;
}
- $existing = $this->mapper->findMatch(
- $event->getActor(),
- $event->getUid(),
- $event->getEmail(),
- $event->getFederatedCloudId()
- );
- if (!empty($existing)) {
- $now = $this->timeFactory->getTime();
- foreach ($existing as $c) {
- $c->setLastContact($now);
- $this->mapper->update($c);
+ $this->atomic(function () use ($event) {
+ $uid = $event->getUid();
+ $email = $event->getEmail();
+ $federatedCloudId = $event->getFederatedCloudId();
+ $existing = $this->mapper->findMatch(
+ $event->getActor(),
+ $uid,
+ $email,
+ $federatedCloudId
+ );
+ if (!empty($existing)) {
+ $now = $this->timeFactory->getTime();
+ foreach ($existing as $c) {
+ $c->setLastContact($now);
+ $this->mapper->update($c);
+ }
+
+ return;
}
- return;
- }
-
- $contact = new RecentContact();
- $contact->setActorUid($event->getActor()->getUID());
- if ($event->getUid() !== null) {
- $contact->setUid($event->getUid());
- }
- if ($event->getEmail() !== null) {
- $contact->setEmail($event->getEmail());
- }
- if ($event->getFederatedCloudId() !== null) {
- $contact->setFederatedCloudId($event->getFederatedCloudId());
- }
- $contact->setLastContact($this->timeFactory->getTime());
-
- $copy = $this->cardSearchDao->findExisting(
- $event->getActor(),
- $event->getUid(),
- $event->getEmail(),
- $event->getFederatedCloudId()
- );
- if ($copy !== null) {
- try {
- $parsed = Reader::read($copy, Reader::OPTION_FORGIVING);
- $parsed->CATEGORIES = $this->l10n->t('Recently contacted');
- $contact->setCard($parsed->serialize());
- } catch (Throwable $e) {
- $this->logger->warning(
- 'Could not parse card to add recent category: ' . $e->getMessage(),
- [
- 'exception' => $e,
- ]);
- $contact->setCard($copy);
+ $contact = new RecentContact();
+ $contact->setActorUid($event->getActor()->getUID());
+ if ($uid !== null) {
+ $contact->setUid($uid);
}
- } else {
- $contact->setCard($this->generateCard($contact));
- }
- $this->mapper->insert($contact);
+ if ($email !== null) {
+ $contact->setEmail($email);
+ }
+ if ($federatedCloudId !== null) {
+ $contact->setFederatedCloudId($federatedCloudId);
+ }
+ $contact->setLastContact($this->timeFactory->getTime());
+
+ $copy = $this->cardSearchDao->findExisting(
+ $event->getActor(),
+ $uid,
+ $email,
+ $federatedCloudId
+ );
+ if ($copy !== null) {
+ try {
+ $parsed = Reader::read($copy, Reader::OPTION_FORGIVING);
+ $parsed->CATEGORIES = $this->l10n->t('Recently contacted');
+ $contact->setCard($parsed->serialize());
+ } catch (Throwable $e) {
+ $this->logger->warning(
+ 'Could not parse card to add recent category: ' . $e->getMessage(),
+ [
+ 'exception' => $e,
+ ]);
+ $contact->setCard($copy);
+ }
+ } else {
+ $contact->setCard($this->generateCard($contact));
+ }
+ $this->mapper->insert($contact);
+ }, $this->dbConnection);
}
private function getDisplayName(?string $uid): ?string {
diff --git a/apps/dashboard/l10n/uk.js b/apps/dashboard/l10n/uk.js
index ec06ae3cfdd..93bbf92c540 100644
--- a/apps/dashboard/l10n/uk.js
+++ b/apps/dashboard/l10n/uk.js
@@ -3,6 +3,8 @@ OC.L10N.register(
{
"Dashboard" : "Майстерня",
"Dashboard app" : "Застосунок з панеллю віджетів ",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Почніть свій день поінформовано\n\nІнформаційна панель Nextcloud - це ваша відправна точка дня, яка дає вам огляд майбутніх зустрічей, термінових електронних листів, повідомлень в чаті, призначених завдань, останніх твітів і багато іншого! Користувачі можуть додавати віджети, які їм подобаються, і змінювати фон на свій смак.",
+ "\"{title} icon\"" : "\"{title} \"іконка\"",
"Customize" : "Редагувати",
"Edit widgets" : "Редагувати віджети",
"Get more widgets from the App Store" : "Більше віджетів у каталозі застосунків",
diff --git a/apps/dashboard/l10n/uk.json b/apps/dashboard/l10n/uk.json
index 7d6d51956c3..decc964d3f4 100644
--- a/apps/dashboard/l10n/uk.json
+++ b/apps/dashboard/l10n/uk.json
@@ -1,6 +1,8 @@
{ "translations": {
"Dashboard" : "Майстерня",
"Dashboard app" : "Застосунок з панеллю віджетів ",
+ "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! Users can add the widgets they like and change the background to their liking." : "Почніть свій день поінформовано\n\nІнформаційна панель Nextcloud - це ваша відправна точка дня, яка дає вам огляд майбутніх зустрічей, термінових електронних листів, повідомлень в чаті, призначених завдань, останніх твітів і багато іншого! Користувачі можуть додавати віджети, які їм подобаються, і змінювати фон на свій смак.",
+ "\"{title} icon\"" : "\"{title} \"іконка\"",
"Customize" : "Редагувати",
"Edit widgets" : "Редагувати віджети",
"Get more widgets from the App Store" : "Більше віджетів у каталозі застосунків",
diff --git a/apps/dashboard/src/DashboardApp.vue b/apps/dashboard/src/DashboardApp.vue
index dffcd783516..4eb820848a5 100644
--- a/apps/dashboard/src/DashboardApp.vue
+++ b/apps/dashboard/src/DashboardApp.vue
@@ -386,7 +386,7 @@ export default {
background-attachment: fixed;
> h2 {
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
text-align: center;
font-size: 32px;
line-height: 130%;
@@ -561,7 +561,7 @@ export default {
}
&:hover {
- border-color: var(--color-primary);
+ border-color: var(--color-primary-element);
}
}
@@ -577,7 +577,7 @@ export default {
}
input:focus + label {
- border-color: var(--color-primary);
+ border-color: var(--color-primary-element);
}
}
diff --git a/apps/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml
index b37e73fa5b6..9140c674716 100644
--- a/apps/dav/appinfo/info.xml
+++ b/apps/dav/appinfo/info.xml
@@ -5,7 +5,7 @@
<name>WebDAV</name>
<summary>WebDAV endpoint</summary>
<description>WebDAV endpoint</description>
- <version>1.26.0</version>
+ <version>1.27.0</version>
<licence>agpl</licence>
<author>owncloud.org</author>
<namespace>DAV</namespace>
diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php
index 2b3001e80bd..e7faa9314e2 100644
--- a/apps/dav/appinfo/v1/carddav.php
+++ b/apps/dav/appinfo/v1/carddav.php
@@ -10,6 +10,7 @@
* @author Morris Jobke <hey@morrisjobke.de>
* @author Thomas Citharel <nextcloud@tcit.fr>
* @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Anna Larch <anna.larch@gmx.net>
*
* @license AGPL-3.0
*
@@ -72,7 +73,7 @@ $principalCollection = new \Sabre\CalDAV\Principal\Collection($principalBackend)
$principalCollection->disableListing = !$debugging; // Disable listing
$pluginManager = new PluginManager(\OC::$server, \OC::$server->query(IAppManager::class));
-$addressBookRoot = new AddressBookRoot($principalBackend, $cardDavBackend, $pluginManager);
+$addressBookRoot = new AddressBookRoot($principalBackend, $cardDavBackend, $pluginManager, \OC::$server->getUserSession()->getUser(), \OC::$server->get(\OCP\IGroupManager::class));
$addressBookRoot->disableListing = !$debugging; // Disable listing
$nodes = [
diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php
index db7de8c9ac6..f5c44579ed9 100644
--- a/apps/dav/composer/composer/autoload_classmap.php
+++ b/apps/dav/composer/composer/autoload_classmap.php
@@ -165,6 +165,7 @@ return array(
'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/Forbidden.php',
'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
+ 'OCA\\DAV\\Connector\\Sabre\\Exception\\TooManyRequests' => $baseDir . '/../lib/Connector/Sabre/Exception/TooManyRequests.php',
'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir . '/../lib/Connector/Sabre/File.php',
@@ -292,6 +293,7 @@ return array(
'OCA\\DAV\\Migration\\Version1017Date20210216083742' => $baseDir . '/../lib/Migration/Version1017Date20210216083742.php',
'OCA\\DAV\\Migration\\Version1018Date20210312100735' => $baseDir . '/../lib/Migration/Version1018Date20210312100735.php',
'OCA\\DAV\\Migration\\Version1024Date20211221144219' => $baseDir . '/../lib/Migration/Version1024Date20211221144219.php',
+ 'OCA\\DAV\\Migration\\Version1027Date20230504122946' => $baseDir . '/../lib/Migration/Version1027Date20230504122946.php',
'OCA\\DAV\\Profiler\\ProfilerPlugin' => $baseDir . '/../lib/Profiler/ProfilerPlugin.php',
'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
@@ -309,6 +311,7 @@ return array(
'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir . '/../lib/SystemTag/SystemTagNode.php',
'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir . '/../lib/SystemTag/SystemTagPlugin.php',
'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir . '/../lib/SystemTag/SystemTagsByIdCollection.php',
+ 'OCA\\DAV\\SystemTag\\SystemTagsInUseCollection' => $baseDir . '/../lib/SystemTag/SystemTagsInUseCollection.php',
'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php
index c29d93d72a8..ea7da582b3e 100644
--- a/apps/dav/composer/composer/autoload_static.php
+++ b/apps/dav/composer/composer/autoload_static.php
@@ -180,6 +180,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/Forbidden.php',
'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
+ 'OCA\\DAV\\Connector\\Sabre\\Exception\\TooManyRequests' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/TooManyRequests.php',
'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__ . '/..' . '/../lib/Connector/Sabre/File.php',
@@ -307,6 +308,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Migration\\Version1017Date20210216083742' => __DIR__ . '/..' . '/../lib/Migration/Version1017Date20210216083742.php',
'OCA\\DAV\\Migration\\Version1018Date20210312100735' => __DIR__ . '/..' . '/../lib/Migration/Version1018Date20210312100735.php',
'OCA\\DAV\\Migration\\Version1024Date20211221144219' => __DIR__ . '/..' . '/../lib/Migration/Version1024Date20211221144219.php',
+ 'OCA\\DAV\\Migration\\Version1027Date20230504122946' => __DIR__ . '/..' . '/../lib/Migration/Version1027Date20230504122946.php',
'OCA\\DAV\\Profiler\\ProfilerPlugin' => __DIR__ . '/..' . '/../lib/Profiler/ProfilerPlugin.php',
'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
@@ -324,6 +326,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagNode.php',
'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagPlugin.php',
'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsByIdCollection.php',
+ 'OCA\\DAV\\SystemTag\\SystemTagsInUseCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsInUseCollection.php',
'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
diff --git a/apps/dav/l10n/it.js b/apps/dav/l10n/it.js
index d4f12d7ff44..d394091ac15 100644
--- a/apps/dav/l10n/it.js
+++ b/apps/dav/l10n/it.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"Due on %s by %s" : "Scade il %s per %s",
"Due on %s" : "Scade il %s",
"Migrated calendar (%1$s)" : "Calendario migrato (%1$s)",
+ "Calendars including events, details and attendees" : "Calendari inclusi eventi, dettagli e partecipanti",
"Contacts and groups" : "Contatti e gruppi",
"WebDAV" : "WebDAV",
"WebDAV endpoint" : "Terminatore WebDAV",
diff --git a/apps/dav/l10n/it.json b/apps/dav/l10n/it.json
index 0c04c8960be..9f0195aee28 100644
--- a/apps/dav/l10n/it.json
+++ b/apps/dav/l10n/it.json
@@ -123,6 +123,7 @@
"Due on %s by %s" : "Scade il %s per %s",
"Due on %s" : "Scade il %s",
"Migrated calendar (%1$s)" : "Calendario migrato (%1$s)",
+ "Calendars including events, details and attendees" : "Calendari inclusi eventi, dettagli e partecipanti",
"Contacts and groups" : "Contatti e gruppi",
"WebDAV" : "WebDAV",
"WebDAV endpoint" : "Terminatore WebDAV",
diff --git a/apps/dav/l10n/pl.js b/apps/dav/l10n/pl.js
index d0454c424da..af760bd33d1 100644
--- a/apps/dav/l10n/pl.js
+++ b/apps/dav/l10n/pl.js
@@ -75,6 +75,9 @@ OC.L10N.register(
"Cancelled: %1$s" : "Anulowane: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" zostało anulowane",
"Re: %1$s" : "Odp: %1$s",
+ "%1$s has accepted your invitation" : "Twoje zaproszenie zostało zaakceptowane przez %1$s",
+ "%1$s has tentatively accepted your invitation" : "Twoje zaproszenie zostało wstępnie zaakceptowane przez %1$s",
+ "%1$s has declined your invitation" : "Twoje zaproszenie zostało odrzucone przez %1$s",
"%1$s has responded to your invitation" : "%1$s odpowiedział/a na Twoje zaproszenie",
"Invitation updated: %1$s" : "Zaktualizowano zaproszenie: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s zaktualizował/a wydarzenie \"%2$s\"",
diff --git a/apps/dav/l10n/pl.json b/apps/dav/l10n/pl.json
index 2560da78ef1..5332f810cac 100644
--- a/apps/dav/l10n/pl.json
+++ b/apps/dav/l10n/pl.json
@@ -73,6 +73,9 @@
"Cancelled: %1$s" : "Anulowane: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" zostało anulowane",
"Re: %1$s" : "Odp: %1$s",
+ "%1$s has accepted your invitation" : "Twoje zaproszenie zostało zaakceptowane przez %1$s",
+ "%1$s has tentatively accepted your invitation" : "Twoje zaproszenie zostało wstępnie zaakceptowane przez %1$s",
+ "%1$s has declined your invitation" : "Twoje zaproszenie zostało odrzucone przez %1$s",
"%1$s has responded to your invitation" : "%1$s odpowiedział/a na Twoje zaproszenie",
"Invitation updated: %1$s" : "Zaktualizowano zaproszenie: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s zaktualizował/a wydarzenie \"%2$s\"",
diff --git a/apps/dav/l10n/uk.js b/apps/dav/l10n/uk.js
index 965f3dd3f50..4ee15546809 100644
--- a/apps/dav/l10n/uk.js
+++ b/apps/dav/l10n/uk.js
@@ -75,6 +75,9 @@ OC.L10N.register(
"Cancelled: %1$s" : "Скасовано: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" скасовано",
"Re: %1$s" : "Re: %1$s",
+ "%1$s has accepted your invitation" : "%1$s прийняв ваше запрошення",
+ "%1$s has tentatively accepted your invitation" : "%1$s попередньо прийняв ваше запрошення",
+ "%1$s has declined your invitation" : "%1$s відмовився від вашого запрошення",
"%1$s has responded to your invitation" : "%1$sвідповів(-ла) на ваше запрошення",
"Invitation updated: %1$s" : "Запрошення оновлено: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s оновив подію \"%2$s\"",
diff --git a/apps/dav/l10n/uk.json b/apps/dav/l10n/uk.json
index c06144693b7..33f9363dbb6 100644
--- a/apps/dav/l10n/uk.json
+++ b/apps/dav/l10n/uk.json
@@ -73,6 +73,9 @@
"Cancelled: %1$s" : "Скасовано: %1$s",
"\"%1$s\" has been canceled" : "\"%1$s\" скасовано",
"Re: %1$s" : "Re: %1$s",
+ "%1$s has accepted your invitation" : "%1$s прийняв ваше запрошення",
+ "%1$s has tentatively accepted your invitation" : "%1$s попередньо прийняв ваше запрошення",
+ "%1$s has declined your invitation" : "%1$s відмовився від вашого запрошення",
"%1$s has responded to your invitation" : "%1$sвідповів(-ла) на ваше запрошення",
"Invitation updated: %1$s" : "Запрошення оновлено: %1$s",
"%1$s updated the event \"%2$s\"" : "%1$s оновив подію \"%2$s\"",
diff --git a/apps/dav/lib/CalDAV/Reminder/ReminderService.php b/apps/dav/lib/CalDAV/Reminder/ReminderService.php
index bca154a48e8..984e29f1e4d 100644
--- a/apps/dav/lib/CalDAV/Reminder/ReminderService.php
+++ b/apps/dav/lib/CalDAV/Reminder/ReminderService.php
@@ -179,7 +179,7 @@ class ReminderService {
continue;
}
- if ($this->config->getAppValue('dav', 'sendEventRemindersToSharedGroupMembers', 'yes') === 'no') {
+ if ($this->config->getAppValue('dav', 'sendEventRemindersToSharedUsers', 'yes') === 'no') {
$users = $this->getAllUsersWithWriteAccessToCalendar($reminder['calendar_id']);
} else {
$users = [];
diff --git a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
index 329197445dd..e164e420ae3 100644
--- a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
+++ b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
@@ -299,14 +299,12 @@ class IMipPlugin extends SabreIMipPlugin {
$message->useTemplate($template);
- $vCalendar = $this->imipService->generateVCalendar($iTipMessage, $vEvent);
-
- $attachment = $this->mailer->createAttachment(
- $vCalendar->serialize(),
+ $itip_msg = $iTipMessage->message->serialize();
+ $message->attachInline(
+ $itip_msg,
'event.ics',
- 'text/calendar; method=' . $iTipMessage->method
+ 'text/calendar; method=' . $iTipMessage->method,
);
- $message->attach($attachment);
try {
$failed = $this->mailer->send($message);
diff --git a/apps/dav/lib/CardDAV/AddressBookRoot.php b/apps/dav/lib/CardDAV/AddressBookRoot.php
index 897ed819071..c82943d2879 100644
--- a/apps/dav/lib/CardDAV/AddressBookRoot.php
+++ b/apps/dav/lib/CardDAV/AddressBookRoot.php
@@ -5,6 +5,7 @@
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Joas Schilling <coding@schilljs.com>
* @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Anna Larch <anna.larch@gmx.net>
*
* @license AGPL-3.0
*
@@ -24,11 +25,15 @@
namespace OCA\DAV\CardDAV;
use OCA\DAV\AppInfo\PluginManager;
+use OCP\IGroupManager;
+use OCP\IUser;
class AddressBookRoot extends \Sabre\CardDAV\AddressBookRoot {
/** @var PluginManager */
private $pluginManager;
+ private ?IUser $user;
+ private ?IGroupManager $groupManager;
/**
* @param \Sabre\DAVACL\PrincipalBackend\BackendInterface $principalBackend
@@ -38,9 +43,13 @@ class AddressBookRoot extends \Sabre\CardDAV\AddressBookRoot {
public function __construct(\Sabre\DAVACL\PrincipalBackend\BackendInterface $principalBackend,
\Sabre\CardDAV\Backend\BackendInterface $carddavBackend,
PluginManager $pluginManager,
- $principalPrefix = 'principals') {
+ ?IUser $user,
+ ?IGroupManager $groupManager,
+ string $principalPrefix = 'principals') {
parent::__construct($principalBackend, $carddavBackend, $principalPrefix);
$this->pluginManager = $pluginManager;
+ $this->user = $user;
+ $this->groupManager = $groupManager;
}
/**
@@ -55,7 +64,7 @@ class AddressBookRoot extends \Sabre\CardDAV\AddressBookRoot {
* @return \Sabre\DAV\INode
*/
public function getChildForPrincipal(array $principal) {
- return new UserAddressBooks($this->carddavBackend, $principal['uri'], $this->pluginManager);
+ return new UserAddressBooks($this->carddavBackend, $principal['uri'], $this->pluginManager, $this->user, $this->groupManager);
}
public function getName() {
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index 577d7282eae..5f5b8f1e65f 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -311,6 +311,11 @@ class CardDavBackend implements BackendInterface, SyncSupport {
'{http://sabredav.org/ns}sync-token' => $row['synctoken'] ?: '0',
];
+ // system address books are always read only
+ if ($principal === 'principals/system/system') {
+ $addressBook['{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}read-only'] = true;
+ }
+
$this->addOwnerPrincipal($addressBook);
return $addressBook;
diff --git a/apps/dav/lib/CardDAV/Converter.php b/apps/dav/lib/CardDAV/Converter.php
index 340e3127f0a..d2d646a5a59 100644
--- a/apps/dav/lib/CardDAV/Converter.php
+++ b/apps/dav/lib/CardDAV/Converter.php
@@ -31,20 +31,23 @@ use Exception;
use OCP\Accounts\IAccountManager;
use OCP\IImage;
use OCP\IUser;
+use OCP\IUserManager;
use Sabre\VObject\Component\VCard;
use Sabre\VObject\Property\Text;
class Converter {
-
/** @var IAccountManager */
private $accountManager;
+ private IUserManager $userManager;
- public function __construct(IAccountManager $accountManager) {
+ public function __construct(IAccountManager $accountManager,
+ IUserManager $userManager) {
$this->accountManager = $accountManager;
+ $this->userManager = $userManager;
}
public function createCardFromUser(IUser $user): ?VCard {
- $userProperties = $this->accountManager->getAccount($user)->getProperties();
+ $userProperties = $this->accountManager->getAccount($user)->getAllProperties();
$uid = $user->getUID();
$cloudId = $user->getCloudId();
@@ -57,40 +60,63 @@ class Converter {
$publish = false;
foreach ($userProperties as $property) {
- $shareWithTrustedServers =
- $property->getScope() === IAccountManager::SCOPE_FEDERATED ||
- $property->getScope() === IAccountManager::SCOPE_PUBLISHED;
-
- $emptyValue = $property->getValue() === '';
-
- if ($shareWithTrustedServers && !$emptyValue) {
- $publish = true;
- switch ($property->getName()) {
- case IAccountManager::PROPERTY_DISPLAYNAME:
- $vCard->add(new Text($vCard, 'FN', $property->getValue()));
- $vCard->add(new Text($vCard, 'N', $this->splitFullName($property->getValue())));
- break;
- case IAccountManager::PROPERTY_AVATAR:
- if ($image !== null) {
- $vCard->add('PHOTO', $image->data(), ['ENCODING' => 'b', 'TYPE' => $image->mimeType()]);
- }
- break;
- case IAccountManager::PROPERTY_EMAIL:
- $vCard->add(new Text($vCard, 'EMAIL', $property->getValue(), ['TYPE' => 'OTHER']));
- break;
- case IAccountManager::PROPERTY_WEBSITE:
- $vCard->add(new Text($vCard, 'URL', $property->getValue()));
- break;
- case IAccountManager::PROPERTY_PHONE:
- $vCard->add(new Text($vCard, 'TEL', $property->getValue(), ['TYPE' => 'OTHER']));
- break;
- case IAccountManager::PROPERTY_ADDRESS:
- $vCard->add(new Text($vCard, 'ADR', $property->getValue(), ['TYPE' => 'OTHER']));
- break;
- case IAccountManager::PROPERTY_TWITTER:
- $vCard->add(new Text($vCard, 'X-SOCIALPROFILE', $property->getValue(), ['TYPE' => 'TWITTER']));
- break;
- }
+ if (empty($property->getValue())) {
+ continue;
+ }
+
+ $scope = $property->getScope();
+ // Do not write private data to the system address book at all
+ if ($scope === IAccountManager::SCOPE_PRIVATE || empty($scope)) {
+ continue;
+ }
+
+ $publish = true;
+ switch ($property->getName()) {
+ case IAccountManager::PROPERTY_DISPLAYNAME:
+ $vCard->add(new Text($vCard, 'FN', $property->getValue(), ['X-NC-SCOPE' => $scope]));
+ $vCard->add(new Text($vCard, 'N', $this->splitFullName($property->getValue()), ['X-NC-SCOPE' => $scope]));
+ break;
+ case IAccountManager::PROPERTY_AVATAR:
+ if ($image !== null) {
+ $vCard->add('PHOTO', $image->data(), ['ENCODING' => 'b', 'TYPE' => $image->mimeType(), ['X-NC-SCOPE' => $scope]]);
+ }
+ break;
+ case IAccountManager::COLLECTION_EMAIL:
+ case IAccountManager::PROPERTY_EMAIL:
+ $vCard->add(new Text($vCard, 'EMAIL', $property->getValue(), ['TYPE' => 'OTHER', 'X-NC-SCOPE' => $scope]));
+ break;
+ case IAccountManager::PROPERTY_WEBSITE:
+ $vCard->add(new Text($vCard, 'URL', $property->getValue(), ['X-NC-SCOPE' => $scope]));
+ break;
+ case IAccountManager::PROPERTY_PHONE:
+ $vCard->add(new Text($vCard, 'TEL', $property->getValue(), ['TYPE' => 'OTHER', 'X-NC-SCOPE' => $scope]));
+ break;
+ case IAccountManager::PROPERTY_ADDRESS:
+ $vCard->add(new Text($vCard, 'ADR', $property->getValue(), ['TYPE' => 'OTHER', 'X-NC-SCOPE' => $scope]));
+ break;
+ case IAccountManager::PROPERTY_TWITTER:
+ $vCard->add(new Text($vCard, 'X-SOCIALPROFILE', $property->getValue(), ['TYPE' => 'TWITTER', 'X-NC-SCOPE' => $scope]));
+ break;
+ case IAccountManager::PROPERTY_ORGANISATION:
+ $vCard->add(new Text($vCard, 'ORG', $property->getValue(), ['X-NC-SCOPE' => $scope]));
+ break;
+ case IAccountManager::PROPERTY_ROLE:
+ $vCard->add(new Text($vCard, 'TITLE', $property->getValue(), ['X-NC-SCOPE' => $scope]));
+ break;
+ }
+ }
+
+ // Local properties
+ $managers = $user->getManagerUids();
+ // X-MANAGERSNAME only allows a single value, so we take the first manager
+ if (isset($managers[0])) {
+ $displayName = $this->userManager->getDisplayName($managers[0]);
+ // Only set the manager if a user object is found
+ if ($displayName !== null) {
+ $vCard->add(new Text($vCard, 'X-MANAGERSNAME', $displayName, [
+ 'uid' => $managers[0],
+ 'X-NC-SCOPE' => IAccountManager::SCOPE_LOCAL,
+ ]));
}
}
diff --git a/apps/dav/lib/CardDAV/SyncService.php b/apps/dav/lib/CardDAV/SyncService.php
index da798c5768e..b228d45f067 100644
--- a/apps/dav/lib/CardDAV/SyncService.php
+++ b/apps/dav/lib/CardDAV/SyncService.php
@@ -10,6 +10,7 @@
* @author Morris Jobke <hey@morrisjobke.de>
* @author Thomas Citharel <nextcloud@tcit.fr>
* @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Anna Larch <anna.larch@gmx.net>
*
* @license AGPL-3.0
*
@@ -209,10 +210,8 @@ class SyncService {
public function updateUser(IUser $user) {
$systemAddressBook = $this->getLocalSystemAddressBook();
$addressBookId = $systemAddressBook['id'];
- $name = $user->getBackendClassName();
- $userId = $user->getUID();
- $cardId = "$name:$userId.vcf";
+ $cardId = self::getCardUri($user);
if ($user->isEnabled()) {
$card = $this->backend->getCard($addressBookId, $cardId);
if ($card === false) {
@@ -239,10 +238,7 @@ class SyncService {
public function deleteUser($userOrCardId) {
$systemAddressBook = $this->getLocalSystemAddressBook();
if ($userOrCardId instanceof IUser) {
- $name = $userOrCardId->getBackendClassName();
- $userId = $userOrCardId->getUID();
-
- $userOrCardId = "$name:$userId.vcf";
+ $userOrCardId = self::getCardUri($userOrCardId);
}
$this->backend->deleteCard($systemAddressBook['id'], $userOrCardId);
}
@@ -281,4 +277,12 @@ class SyncService {
}
}
}
+
+ /**
+ * @param IUser $user
+ * @return string
+ */
+ public static function getCardUri(IUser $user): string {
+ return $user->getBackendClassName() . ':' . $user->getUID() . '.vcf';
+ }
}
diff --git a/apps/dav/lib/CardDAV/SystemAddressbook.php b/apps/dav/lib/CardDAV/SystemAddressbook.php
index 502e353acb3..17900fd033e 100644
--- a/apps/dav/lib/CardDAV/SystemAddressbook.php
+++ b/apps/dav/lib/CardDAV/SystemAddressbook.php
@@ -8,6 +8,7 @@ declare(strict_types=1);
* @author Joas Schilling <coding@schilljs.com>
* @author Julius Härtl <jus@bitgrid.net>
* @author Roeland Jago Douma <roeland@famdouma.nl>
+ * @author Anna Larch <anna.larch@gmx.net>
*
* @license GNU AGPL version 3 or any later version
*
@@ -27,27 +28,272 @@ declare(strict_types=1);
*/
namespace OCA\DAV\CardDAV;
+use OCA\DAV\Exception\UnsupportedLimitOnInitialSyncException;
+use OCA\Federation\TrustedServers;
+use OCP\Accounts\IAccountManager;
use OCP\IConfig;
+use OCP\IGroupManager;
use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IUser;
+use OCP\IUserSession;
+use Sabre\CardDAV\Backend\SyncSupport;
use Sabre\CardDAV\Backend\BackendInterface;
+use Sabre\CardDAV\Card;
+use Sabre\DAV\Exception\Forbidden;
+use Sabre\DAV\Exception\NotFound;
+use Sabre\DAV\ICollection;
+use Sabre\VObject\Component\VCard;
+use Sabre\VObject\Reader;
+use function array_unique;
class SystemAddressbook extends AddressBook {
+ public const URI_SHARED = 'z-server-generated--system';
/** @var IConfig */
private $config;
+ private IUserSession $userSession;
+ private ?TrustedServers $trustedServers;
+ private ?IRequest $request;
+ private ?IGroupManager $groupManager;
- public function __construct(BackendInterface $carddavBackend, array $addressBookInfo, IL10N $l10n, IConfig $config) {
+ public function __construct(BackendInterface $carddavBackend,
+ array $addressBookInfo,
+ IL10N $l10n,
+ IConfig $config,
+ IUserSession $userSession,
+ ?IRequest $request = null,
+ ?TrustedServers $trustedServers = null,
+ ?IGroupManager $groupManager) {
parent::__construct($carddavBackend, $addressBookInfo, $l10n);
$this->config = $config;
+ $this->userSession = $userSession;
+ $this->request = $request;
+ $this->trustedServers = $trustedServers;
+ $this->groupManager = $groupManager;
+
+ $this->addressBookInfo['{DAV:}displayname'] = $l10n->t('Accounts');
+ $this->addressBookInfo['{' . Plugin::NS_CARDDAV . '}addressbook-description'] = $l10n->t('System address book which holds all accounts');
}
+ /**
+ * No checkbox checked -> Show only the same user
+ * 'Allow username autocompletion in share dialog' -> show everyone
+ * 'Allow username autocompletion in share dialog' + 'Allow username autocompletion to users within the same groups' -> show only users in intersecting groups
+ * 'Allow username autocompletion in share dialog' + 'Allow username autocompletion to users based on phone number integration' -> show only the same user
+ * 'Allow username autocompletion in share dialog' + 'Allow username autocompletion to users within the same groups' + 'Allow username autocompletion to users based on phone number integration' -> show only users in intersecting groups
+ */
public function getChildren() {
$shareEnumeration = $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes') === 'yes';
$shareEnumerationGroup = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes';
$shareEnumerationPhone = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no') === 'yes';
- if (!$shareEnumeration || $shareEnumerationGroup || $shareEnumerationPhone) {
+ $user = $this->userSession->getUser();
+ if (!$user) {
+ // Should never happen because we don't allow anonymous access
return [];
}
+ if (!$shareEnumeration || !$shareEnumerationGroup && $shareEnumerationPhone) {
+ $name = SyncService::getCardUri($user);
+ try {
+ return [parent::getChild($name)];
+ } catch (NotFound $e) {
+ return [];
+ }
+ }
+ if ($shareEnumerationGroup) {
+ if ($this->groupManager === null) {
+ // Group manager is not available, so we can't determine which data is safe
+ return [];
+ }
+ $groups = $this->groupManager->getUserGroups($user);
+ $names = [];
+ foreach ($groups as $group) {
+ $users = $group->getUsers();
+ foreach ($users as $groupUser) {
+ if ($groupUser->getBackendClassName() === 'Guests') {
+ continue;
+ }
+ $names[] = SyncService::getCardUri($groupUser);
+ }
+ }
+ return parent::getMultipleChildren(array_unique($names));
+ }
+
+ $children = parent::getChildren();
+ return array_filter($children, function (Card $child) {
+ // check only for URIs that begin with Guests:
+ return strpos($child->getName(), 'Guests:') !== 0;
+ });
+ }
+
+ /**
+ * @param array $paths
+ * @return Card[]
+ * @throws NotFound
+ */
+ public function getMultipleChildren($paths): array {
+ if (!$this->isFederation()) {
+ return parent::getMultipleChildren($paths);
+ }
+
+ $objs = $this->carddavBackend->getMultipleCards($this->addressBookInfo['id'], $paths);
+ $children = [];
+ /** @var array $obj */
+ foreach ($objs as $obj) {
+ if (empty($obj)) {
+ continue;
+ }
+ $carddata = $this->extractCarddata($obj);
+ if (empty($carddata)) {
+ continue;
+ } else {
+ $obj['carddata'] = $carddata;
+ }
+ $children[] = new Card($this->carddavBackend, $this->addressBookInfo, $obj);
+ }
+ return $children;
+ }
+
+ /**
+ * @param string $name
+ * @return Card
+ * @throws NotFound
+ * @throws Forbidden
+ */
+ public function getChild($name): Card {
+ if (!$this->isFederation()) {
+ return parent::getChild($name);
+ }
+
+ $obj = $this->carddavBackend->getCard($this->addressBookInfo['id'], $name);
+ if (!$obj) {
+ throw new NotFound('Card not found');
+ }
+ $carddata = $this->extractCarddata($obj);
+ if (empty($carddata)) {
+ throw new Forbidden();
+ } else {
+ $obj['carddata'] = $carddata;
+ }
+ return new Card($this->carddavBackend, $this->addressBookInfo, $obj);
+ }
+
+ /**
+ * @throws UnsupportedLimitOnInitialSyncException
+ */
+ public function getChanges($syncToken, $syncLevel, $limit = null) {
+ if (!$syncToken && $limit) {
+ throw new UnsupportedLimitOnInitialSyncException();
+ }
+
+ if (!$this->carddavBackend instanceof SyncSupport) {
+ return null;
+ }
+
+ if (!$this->isFederation()) {
+ return parent::getChanges($syncToken, $syncLevel, $limit);
+ }
+
+ $changed = $this->carddavBackend->getChangesForAddressBook(
+ $this->addressBookInfo['id'],
+ $syncToken,
+ $syncLevel,
+ $limit
+ );
- return parent::getChildren();
+ if (empty($changed)) {
+ return $changed;
+ }
+
+ $added = $modified = $deleted = [];
+ foreach ($changed['added'] as $uri) {
+ try {
+ $this->getChild($uri);
+ $added[] = $uri;
+ } catch (NotFound | Forbidden $e) {
+ $deleted[] = $uri;
+ }
+ }
+ foreach ($changed['modified'] as $uri) {
+ try {
+ $this->getChild($uri);
+ $modified[] = $uri;
+ } catch (NotFound | Forbidden $e) {
+ $deleted[] = $uri;
+ }
+ }
+ $changed['added'] = $added;
+ $changed['modified'] = $modified;
+ $changed['deleted'] = $deleted;
+ return $changed;
+ }
+
+ private function isFederation(): bool {
+ if ($this->trustedServers === null || $this->request === null) {
+ return false;
+ }
+
+ /** @psalm-suppress NoInterfaceProperties */
+ if ($this->request->server['PHP_AUTH_USER'] !== 'system') {
+ return false;
+ }
+
+ /** @psalm-suppress NoInterfaceProperties */
+ $sharedSecret = $this->request->server['PHP_AUTH_PW'];
+ if ($sharedSecret === null) {
+ return false;
+ }
+
+ $servers = $this->trustedServers->getServers();
+ $trusted = array_filter($servers, function ($trustedServer) use ($sharedSecret) {
+ return $trustedServer['shared_secret'] === $sharedSecret;
+ });
+ // Authentication is fine, but it's not for a federated share
+ if (empty($trusted)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * If the validation doesn't work the card is "not found" so we
+ * return empty carddata even if the carddata might exist in the local backend.
+ * This can happen when a user sets the required properties
+ * FN, N to a local scope only but the request is from
+ * a federated share.
+ *
+ * @see https://github.com/nextcloud/server/issues/38042
+ *
+ * @param array $obj
+ * @return string|null
+ */
+ private function extractCarddata(array $obj): ?string {
+ $obj['acl'] = $this->getChildACL();
+ $cardData = $obj['carddata'];
+ /** @var VCard $vCard */
+ $vCard = Reader::read($cardData);
+ foreach ($vCard->children() as $child) {
+ $scope = $child->offsetGet('X-NC-SCOPE');
+ if ($scope !== null && $scope->getValue() === IAccountManager::SCOPE_LOCAL) {
+ $vCard->remove($child);
+ }
+ }
+ $messages = $vCard->validate();
+ if (!empty($messages)) {
+ return null;
+ }
+
+ return $vCard->serialize();
+ }
+
+ /**
+ * @return mixed
+ * @throws Forbidden
+ */
+ public function delete() {
+ if ($this->isFederation()) {
+ parent::delete();
+ }
+ throw new Forbidden();
}
}
diff --git a/apps/dav/lib/CardDAV/UserAddressBooks.php b/apps/dav/lib/CardDAV/UserAddressBooks.php
index 98957301120..938575bd1a7 100644
--- a/apps/dav/lib/CardDAV/UserAddressBooks.php
+++ b/apps/dav/lib/CardDAV/UserAddressBooks.php
@@ -9,6 +9,7 @@ declare(strict_types=1);
* @author Joas Schilling <coding@schilljs.com>
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Anna Larch <anna.larch@gmx.net>
*
* @license AGPL-3.0
*
@@ -30,8 +31,16 @@ namespace OCA\DAV\CardDAV;
use OCA\DAV\AppInfo\PluginManager;
use OCA\DAV\CardDAV\Integration\IAddressBookProvider;
use OCA\DAV\CardDAV\Integration\ExternalAddressBook;
+use OCA\Federation\TrustedServers;
+use OCP\AppFramework\QueryException;
use OCP\IConfig;
+use OCP\IGroupManager;
use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IUser;
+use OCP\IUserSession;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
use Sabre\CardDAV\Backend;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\CardDAV\IAddressBook;
@@ -39,7 +48,6 @@ use function array_map;
use Sabre\DAV\MkCol;
class UserAddressBooks extends \Sabre\CardDAV\AddressBookHome {
-
/** @var IL10N */
protected $l10n;
@@ -48,12 +56,18 @@ class UserAddressBooks extends \Sabre\CardDAV\AddressBookHome {
/** @var PluginManager */
private $pluginManager;
+ private ?IUser $user;
+ private ?IGroupManager $groupManager;
public function __construct(Backend\BackendInterface $carddavBackend,
string $principalUri,
- PluginManager $pluginManager) {
+ PluginManager $pluginManager,
+ ?IUser $user,
+ ?IGroupManager $groupManager) {
parent::__construct($carddavBackend, $principalUri);
$this->pluginManager = $pluginManager;
+ $this->user = $user;
+ $this->groupManager = $groupManager;
}
/**
@@ -69,15 +83,49 @@ class UserAddressBooks extends \Sabre\CardDAV\AddressBookHome {
$this->config = \OC::$server->getConfig();
}
+ /** @var string|array $principal */
+ $principal = $this->principalUri;
$addressBooks = $this->carddavBackend->getAddressBooksForUser($this->principalUri);
- /** @var IAddressBook[] $objects */
- $objects = array_map(function (array $addressBook) {
- if ($addressBook['principaluri'] === 'principals/system/system') {
- return new SystemAddressbook($this->carddavBackend, $addressBook, $this->l10n, $this->config);
+ // add the system address book
+ $systemAddressBook = null;
+ if (is_string($principal) && $principal !== 'principals/system/system' && $this->carddavBackend instanceof CardDavBackend) {
+ $systemAddressBook = $this->carddavBackend->getAddressBooksByUri('principals/system/system', 'system');
+ if ($systemAddressBook !== null) {
+ $systemAddressBook['uri'] = SystemAddressbook::URI_SHARED;
}
+ }
+ if (!is_null($systemAddressBook)) {
+ $addressBooks[] = $systemAddressBook;
+ }
- return new AddressBook($this->carddavBackend, $addressBook, $this->l10n);
- }, $addressBooks);
+ $objects = [];
+ if (!empty($addressBooks)) {
+ /** @var IAddressBook[] $objects */
+ $objects = array_map(function (array $addressBook) {
+ $trustedServers = null;
+ $request = null;
+ try {
+ $trustedServers = \OC::$server->get(TrustedServers::class);
+ $request = \OC::$server->get(IRequest::class);
+ } catch (NotFoundExceptionInterface | ContainerExceptionInterface $e) {
+ // nothing to do, the request / trusted servers don't exist
+ }
+ if ($addressBook['principaluri'] === 'principals/system/system') {
+ return new SystemAddressbook(
+ $this->carddavBackend,
+ $addressBook,
+ $this->l10n,
+ $this->config,
+ \OCP\Server::get(IUserSession::class),
+ $request,
+ $trustedServers,
+ $this->groupManager
+ );
+ }
+
+ return new AddressBook($this->carddavBackend, $addressBook, $this->l10n);
+ }, $addressBooks);
+ }
/** @var IAddressBook[][] $objectsFromPlugins */
$objectsFromPlugins = array_map(function (IAddressBookProvider $plugin): array {
return $plugin->fetchAllForAddressBookHome($this->principalUri);
diff --git a/apps/dav/lib/Connector/Sabre/Auth.php b/apps/dav/lib/Connector/Sabre/Auth.php
index 69821c63c21..69e3946bb11 100644
--- a/apps/dav/lib/Connector/Sabre/Auth.php
+++ b/apps/dav/lib/Connector/Sabre/Auth.php
@@ -37,10 +37,13 @@ use Exception;
use OC\Authentication\Exceptions\PasswordLoginForbiddenException;
use OC\Authentication\TwoFactorAuth\Manager;
use OC\Security\Bruteforce\Throttler;
+use OC\User\LoginException;
use OC\User\Session;
use OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden;
+use OCA\DAV\Connector\Sabre\Exception\TooManyRequests;
use OCP\IRequest;
use OCP\ISession;
+use OCP\Security\Bruteforce\MaxDelayReached;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Auth\Backend\AbstractBasic;
use Sabre\DAV\Exception\NotAuthenticated;
@@ -119,6 +122,9 @@ class Auth extends AbstractBasic {
} catch (PasswordLoginForbiddenException $ex) {
$this->session->close();
throw new PasswordLoginForbidden();
+ } catch (MaxDelayReached $ex) {
+ $this->session->close();
+ throw new TooManyRequests();
}
}
}
diff --git a/apps/dav/lib/Connector/Sabre/Exception/TooManyRequests.php b/apps/dav/lib/Connector/Sabre/Exception/TooManyRequests.php
new file mode 100644
index 00000000000..1110797aed4
--- /dev/null
+++ b/apps/dav/lib/Connector/Sabre/Exception/TooManyRequests.php
@@ -0,0 +1,55 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2023 Joas Schilling <coding@schilljs.com>
+ *
+ * @author Joas Schilling <coding@schilljs.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/>.
+ *
+ */
+
+namespace OCA\DAV\Connector\Sabre\Exception;
+
+use DOMElement;
+use Sabre\DAV\Exception\NotAuthenticated;
+use Sabre\DAV\Server;
+
+class TooManyRequests extends NotAuthenticated {
+ public const NS_OWNCLOUD = 'http://owncloud.org/ns';
+
+ public function getHTTPCode() {
+ return 429;
+ }
+
+ /**
+ * This method allows the exception to include additional information
+ * into the WebDAV error response
+ *
+ * @param Server $server
+ * @param DOMElement $errorNode
+ * @return void
+ */
+ public function serialize(Server $server, DOMElement $errorNode) {
+
+ // set ownCloud namespace
+ $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
+
+ $error = $errorNode->ownerDocument->createElementNS('o:', 'o:hint', 'too many requests');
+ $errorNode->appendChild($error);
+ }
+}
diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php
index b0f17417d21..a7cafeb4a5e 100644
--- a/apps/dav/lib/Connector/Sabre/File.php
+++ b/apps/dav/lib/Connector/Sabre/File.php
@@ -422,14 +422,15 @@ class File extends Node implements IFile {
}
}
- /**
- * @param string $path
- */
- private function emitPreHooks($exists, $path = null) {
+ private function emitPreHooks(bool $exists, ?string $path = null): bool {
if (is_null($path)) {
$path = $this->path;
}
$hookPath = Filesystem::getView()->getRelativePath($this->fileView->getAbsolutePath($path));
+ if ($hookPath === null) {
+ // We only trigger hooks from inside default view
+ return true;
+ }
$run = true;
if (!$exists) {
@@ -450,14 +451,15 @@ class File extends Node implements IFile {
return $run;
}
- /**
- * @param string $path
- */
- private function emitPostHooks($exists, $path = null) {
+ private function emitPostHooks(bool $exists, ?string $path = null): void {
if (is_null($path)) {
$path = $this->path;
}
$hookPath = Filesystem::getView()->getRelativePath($this->fileView->getAbsolutePath($path));
+ if ($hookPath === null) {
+ // We only trigger hooks from inside default view
+ return;
+ }
if (!$exists) {
\OC_Hook::emit(\OC\Files\Filesystem::CLASSNAME, \OC\Files\Filesystem::signal_post_create, [
\OC\Files\Filesystem::signal_param_path => $hookPath
diff --git a/apps/dav/lib/Migration/Version1027Date20230504122946.php b/apps/dav/lib/Migration/Version1027Date20230504122946.php
new file mode 100644
index 00000000000..e9ae174f56e
--- /dev/null
+++ b/apps/dav/lib/Migration/Version1027Date20230504122946.php
@@ -0,0 +1,54 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2023 Anna Larch <anna.larch@gmx.net>
+ *
+ * @author Anna Larch <anna.larch@gmx.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\DAV\Migration;
+
+use Closure;
+use OCA\DAV\CardDAV\SyncService;
+use OCP\DB\ISchemaWrapper;
+use OCP\Migration\IOutput;
+use OCP\Migration\SimpleMigrationStep;
+use Psr\Container\ContainerExceptionInterface;
+use Psr\Container\NotFoundExceptionInterface;
+use Psr\Log\LoggerInterface;
+
+class Version1027Date20230504122946 extends SimpleMigrationStep {
+ private SyncService $syncService;
+ private LoggerInterface $logger;
+
+ public function __construct(SyncService $syncService, LoggerInterface $logger) {
+ $this->syncService = $syncService;
+ $this->logger = $logger;
+ }
+ /**
+ * @param IOutput $output
+ * @param Closure(): ISchemaWrapper $schemaClosure
+ * @param array $options
+ */
+ public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void {
+ $this->syncService->syncInstance();
+ }
+}
diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php
index bacb550b415..80d96f0d748 100644
--- a/apps/dav/lib/RootCollection.php
+++ b/apps/dav/lib/RootCollection.php
@@ -48,7 +48,9 @@ use OCP\Accounts\IAccountManager;
use OCP\App\IAppManager;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\EventDispatcher\IEventDispatcher;
+use OCP\Files\IRootFolder;
use OCP\IConfig;
+use OCP\IGroupManager;
use Psr\Log\LoggerInterface;
use Sabre\DAV\SimpleCollection;
@@ -65,6 +67,7 @@ class RootCollection extends SimpleCollection {
$dispatcher = \OC::$server->get(IEventDispatcher::class);
$config = \OC::$server->get(IConfig::class);
$proxyMapper = \OC::$server->query(ProxyMapper::class);
+ $rootFolder = \OCP\Server::get(IRootFolder::class);
$userPrincipalBackend = new Principal(
$userManager,
@@ -131,6 +134,7 @@ class RootCollection extends SimpleCollection {
$groupManager,
\OC::$server->getEventDispatcher()
);
+ $systemTagInUseCollection = \OCP\Server::get(SystemTag\SystemTagsInUseCollection::class);
$commentsCollection = new Comments\RootCollection(
\OC::$server->getCommentsManager(),
$userManager,
@@ -141,11 +145,11 @@ class RootCollection extends SimpleCollection {
$pluginManager = new PluginManager(\OC::$server, \OC::$server->query(IAppManager::class));
$usersCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $dispatcher);
- $usersAddressBookRoot = new AddressBookRoot($userPrincipalBackend, $usersCardDavBackend, $pluginManager, 'principals/users');
+ $usersAddressBookRoot = new AddressBookRoot($userPrincipalBackend, $usersCardDavBackend, $pluginManager, $userSession->getUser(), $groupManager, 'principals/users');
$usersAddressBookRoot->disableListing = $disableListing;
$systemCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $dispatcher);
- $systemAddressBookRoot = new AddressBookRoot(new SystemPrincipalBackend(), $systemCardDavBackend, $pluginManager, 'principals/system');
+ $systemAddressBookRoot = new AddressBookRoot(new SystemPrincipalBackend(), $systemCardDavBackend, $pluginManager, $userSession->getUser(), $groupManager, 'principals/system');
$systemAddressBookRoot->disableListing = $disableListing;
$uploadCollection = new Upload\RootCollection(
@@ -179,6 +183,7 @@ class RootCollection extends SimpleCollection {
$systemAddressBookRoot]),
$systemTagCollection,
$systemTagRelationsCollection,
+ $systemTagInUseCollection,
$commentsCollection,
$uploadCollection,
$avatarCollection,
diff --git a/apps/dav/lib/Settings/CalDAVSettings.php b/apps/dav/lib/Settings/CalDAVSettings.php
index 6d60b2611e0..b3825a6a37c 100644
--- a/apps/dav/lib/Settings/CalDAVSettings.php
+++ b/apps/dav/lib/Settings/CalDAVSettings.php
@@ -46,7 +46,7 @@ class CalDAVSettings implements IDelegatedSettings {
'sendInvitations' => 'yes',
'generateBirthdayCalendar' => 'yes',
'sendEventReminders' => 'yes',
- 'sendEventRemindersToSharedGroupMembers' => 'yes',
+ 'sendEventRemindersToSharedUsers' => 'yes',
'sendEventRemindersPush' => 'no',
];
diff --git a/apps/dav/lib/SystemTag/SystemTagNode.php b/apps/dav/lib/SystemTag/SystemTagNode.php
index 7310cdb19a2..8ade5085b03 100644
--- a/apps/dav/lib/SystemTag/SystemTagNode.php
+++ b/apps/dav/lib/SystemTag/SystemTagNode.php
@@ -64,6 +64,9 @@ class SystemTagNode implements \Sabre\DAV\INode {
*/
protected $isAdmin;
+ protected int $numberOfFiles = -1;
+ protected int $referenceFileId = -1;
+
/**
* Sets up the node, expects a full path name
*
@@ -179,4 +182,20 @@ class SystemTagNode implements \Sabre\DAV\INode {
throw new NotFound('Tag with id ' . $this->tag->getId() . ' not found', 0, $e);
}
}
+
+ public function getNumberOfFiles(): int {
+ return $this->numberOfFiles;
+ }
+
+ public function setNumberOfFiles(int $numberOfFiles): void {
+ $this->numberOfFiles = $numberOfFiles;
+ }
+
+ public function getReferenceFileId(): int {
+ return $this->referenceFileId;
+ }
+
+ public function setReferenceFileId(int $referenceFileId): void {
+ $this->referenceFileId = $referenceFileId;
+ }
}
diff --git a/apps/dav/lib/SystemTag/SystemTagPlugin.php b/apps/dav/lib/SystemTag/SystemTagPlugin.php
index c5c828cfbff..c5d200d578e 100644
--- a/apps/dav/lib/SystemTag/SystemTagPlugin.php
+++ b/apps/dav/lib/SystemTag/SystemTagPlugin.php
@@ -34,6 +34,7 @@ use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\TagAlreadyExistsException;
+use OCP\Util;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\Conflict;
use Sabre\DAV\Exception\Forbidden;
@@ -61,6 +62,8 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
public const GROUPS_PROPERTYNAME = '{http://owncloud.org/ns}groups';
public const CANASSIGN_PROPERTYNAME = '{http://owncloud.org/ns}can-assign';
public const SYSTEM_TAGS_PROPERTYNAME = '{http://nextcloud.org/ns}system-tags';
+ public const NUM_FILES_PROPERTYNAME = '{http://nextcloud.org/ns}files-assigned';
+ public const FILEID_PROPERTYNAME = '{http://nextcloud.org/ns}reference-fileid';
/**
* @var \Sabre\DAV\Server $server
@@ -242,6 +245,11 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
return;
}
+ // child nodes from systemtags-assigned should point to normal tag endpoint
+ if (preg_match('/^systemtags-assigned\/[0-9]+/', $propFind->getPath())) {
+ $propFind->setPath(str_replace('systemtags-assigned/', 'systemtags/', $propFind->getPath()));
+ }
+
$propFind->handle(self::ID_PROPERTYNAME, function () use ($node) {
return $node->getSystemTag()->getId();
});
@@ -276,6 +284,16 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
}
return implode('|', $groups);
});
+
+ if ($node instanceof SystemTagNode) {
+ $propFind->handle(self::NUM_FILES_PROPERTYNAME, function () use ($node): int {
+ return $node->getNumberOfFiles();
+ });
+
+ $propFind->handle(self::FILEID_PROPERTYNAME, function () use ($node): int {
+ return $node->getReferenceFileId();
+ });
+ }
}
private function propfindForFile(PropFind $propFind, Node $node): void {
@@ -306,8 +324,11 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
if ($user === null) {
return;
}
-
+
$tags = $this->getTagsForFile($node->getId(), $user);
+ usort($tags, function (ISystemTag $tagA, ISystemTag $tagB): int {
+ return Util::naturalSortCompare($tagA->getName(), $tagB->getName());
+ });
return new SystemTagList($tags, $this->tagManager, $user);
});
}
@@ -370,6 +391,8 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
self::USERVISIBLE_PROPERTYNAME,
self::USERASSIGNABLE_PROPERTYNAME,
self::GROUPS_PROPERTYNAME,
+ self::NUM_FILES_PROPERTYNAME,
+ self::FILEID_PROPERTYNAME,
], function ($props) use ($node) {
$tag = $node->getSystemTag();
$name = $tag->getName();
@@ -406,6 +429,11 @@ class SystemTagPlugin extends \Sabre\DAV\ServerPlugin {
$this->tagManager->setTagGroups($tag, $groupIds);
}
+ if (isset($props[self::NUM_FILES_PROPERTYNAME]) || isset($props[self::FILEID_PROPERTYNAME])) {
+ // read-only properties
+ throw new Forbidden();
+ }
+
if ($updateTag) {
$node->update($name, $userVisible, $userAssignable);
}
diff --git a/apps/dav/lib/SystemTag/SystemTagsInUseCollection.php b/apps/dav/lib/SystemTag/SystemTagsInUseCollection.php
new file mode 100644
index 00000000000..b57e685e7e7
--- /dev/null
+++ b/apps/dav/lib/SystemTag/SystemTagsInUseCollection.php
@@ -0,0 +1,108 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2023 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\DAV\SystemTag;
+
+use OC\SystemTag\SystemTag;
+use OC\SystemTag\SystemTagsInFilesDetector;
+use OC\User\NoUserException;
+use OCP\Files\IRootFolder;
+use OCP\Files\NotPermittedException;
+use OCP\IUserSession;
+use OCP\SystemTag\ISystemTagManager;
+use Sabre\DAV\Exception\Forbidden;
+use Sabre\DAV\Exception\NotFound;
+use Sabre\DAV\SimpleCollection;
+
+class SystemTagsInUseCollection extends SimpleCollection {
+ protected IUserSession $userSession;
+ protected IRootFolder $rootFolder;
+ protected string $mediaType;
+ protected ISystemTagManager $systemTagManager;
+ protected SystemTagsInFilesDetector $systemTagsInFilesDetector;
+
+ /** @noinspection PhpMissingParentConstructorInspection */
+ public function __construct(
+ IUserSession $userSession,
+ IRootFolder $rootFolder,
+ ISystemTagManager $systemTagManager,
+ SystemTagsInFilesDetector $systemTagsInFilesDetector,
+ string $mediaType = ''
+ ) {
+ $this->userSession = $userSession;
+ $this->rootFolder = $rootFolder;
+ $this->systemTagManager = $systemTagManager;
+ $this->mediaType = $mediaType;
+ $this->systemTagsInFilesDetector = $systemTagsInFilesDetector;
+ $this->name = 'systemtags-assigned';
+ if ($this->mediaType != '') {
+ $this->name .= '/' . $this->mediaType;
+ }
+ }
+
+ public function setName($name): void {
+ throw new Forbidden('Permission denied to rename this collection');
+ }
+
+ public function getChild($name): self {
+ if ($this->mediaType !== '') {
+ throw new NotFound('Invalid media type');
+ }
+ return new self($this->userSession, $this->rootFolder, $this->systemTagManager, $this->systemTagsInFilesDetector, $name);
+ }
+
+ /**
+ * @return SystemTagNode[]
+ * @throws NotPermittedException
+ * @throws Forbidden
+ */
+ public function getChildren(): array {
+ $user = $this->userSession->getUser();
+ $userFolder = null;
+ try {
+ if ($user) {
+ $userFolder = $this->rootFolder->getUserFolder($user->getUID());
+ }
+ } catch (NoUserException) {
+ // will throw a Sabre exception in the next step.
+ }
+ if ($user === null || $userFolder === null) {
+ throw new Forbidden('Permission denied to read this collection');
+ }
+
+ $result = $this->systemTagsInFilesDetector->detectAssignedSystemTagsIn($userFolder, $this->mediaType);
+ $children = [];
+ foreach ($result as $tagData) {
+ $tag = new SystemTag((string)$tagData['id'], $tagData['name'], (bool)$tagData['visibility'], (bool)$tagData['editable']);
+ // read only, so we can submit the isAdmin parameter as false generally
+ $node = new SystemTagNode($tag, $user, false, $this->systemTagManager);
+ $node->setNumberOfFiles($tagData['number_files']);
+ $node->setReferenceFileId($tagData['ref_file_id']);
+ $children[] = $node;
+ }
+ return $children;
+ }
+}
diff --git a/apps/dav/lib/Upload/ChunkingV2Plugin.php b/apps/dav/lib/Upload/ChunkingV2Plugin.php
index cb7c802125c..6b660fb7c6f 100644
--- a/apps/dav/lib/Upload/ChunkingV2Plugin.php
+++ b/apps/dav/lib/Upload/ChunkingV2Plugin.php
@@ -255,17 +255,15 @@ class ChunkingV2Plugin extends ServerPlugin {
public function beforeDelete(RequestInterface $request, ResponseInterface $response) {
try {
- $this->prepareUpload($request->getPath());
- if (!$this->uploadFolder instanceof UploadFolder) {
- return true;
- }
-
- [$storage, $storagePath] = $this->getUploadStorage($this->uploadPath);
- $storage->cancelChunkedWrite($storagePath, $this->uploadId);
- return true;
- } catch (NotFound $e) {
+ $this->prepareUpload(dirname($request->getPath()));
+ $this->checkPrerequisites();
+ } catch (StorageInvalidException|BadRequest|NotFound $e) {
return true;
}
+
+ [$storage, $storagePath] = $this->getUploadStorage($this->uploadPath);
+ $storage->cancelChunkedWrite($storagePath, $this->uploadId);
+ return true;
}
/**
diff --git a/apps/dav/lib/UserMigration/CalendarMigrator.php b/apps/dav/lib/UserMigration/CalendarMigrator.php
index 057f7dce77d..e5b404e785f 100644
--- a/apps/dav/lib/UserMigration/CalendarMigrator.php
+++ b/apps/dav/lib/UserMigration/CalendarMigrator.php
@@ -211,7 +211,7 @@ class CalendarMigrator implements IMigrator, ISizeEstimationMigrator {
/**
* {@inheritDoc}
*/
- public function getEstimatedExportSize(IUser $user): int {
+ public function getEstimatedExportSize(IUser $user): int|float {
$calendarExports = $this->getCalendarExports($user, new NullOutput());
$calendarCount = count($calendarExports);
@@ -230,7 +230,7 @@ class CalendarMigrator implements IMigrator, ISizeEstimationMigrator {
// 450B for each component (events, todos, alarms, etc.)
$size += ($componentCount * 450) / 1024;
- return (int)ceil($size);
+ return ceil($size);
}
/**
diff --git a/apps/dav/lib/UserMigration/ContactsMigrator.php b/apps/dav/lib/UserMigration/ContactsMigrator.php
index 196d0a6110a..58e267ab28c 100644
--- a/apps/dav/lib/UserMigration/ContactsMigrator.php
+++ b/apps/dav/lib/UserMigration/ContactsMigrator.php
@@ -202,7 +202,7 @@ class ContactsMigrator implements IMigrator, ISizeEstimationMigrator {
/**
* {@inheritDoc}
*/
- public function getEstimatedExportSize(IUser $user): int {
+ public function getEstimatedExportSize(IUser $user): int|float {
$addressBookExports = $this->getAddressBookExports($user, new NullOutput());
$addressBookCount = count($addressBookExports);
@@ -217,7 +217,7 @@ class ContactsMigrator implements IMigrator, ISizeEstimationMigrator {
// 350B for each contact
$size += ($contactsCount * 350) / 1024;
- return (int)ceil($size);
+ return ceil($size);
}
/**
diff --git a/apps/dav/src/settings.js b/apps/dav/src/settings.js
index a99db386d69..56b9c7f3fb9 100644
--- a/apps/dav/src/settings.js
+++ b/apps/dav/src/settings.js
@@ -16,9 +16,9 @@ const CalDavSettingsView = new View({
'generateBirthdayCalendar'
),
sendEventReminders: loadState('dav', 'sendEventReminders'),
- sendEventRemindersToSharedGroupMembers: loadState(
+ sendEventRemindersToSharedUsers: loadState(
'dav',
- 'sendEventRemindersToSharedGroupMembers'
+ 'sendEventRemindersToSharedUsers'
),
sendEventRemindersPush: loadState('dav', 'sendEventRemindersPush'),
}
diff --git a/apps/dav/src/views/CalDavSettings.spec.js b/apps/dav/src/views/CalDavSettings.spec.js
index 7bc6e2f7b40..311c8923dc3 100644
--- a/apps/dav/src/views/CalDavSettings.spec.js
+++ b/apps/dav/src/views/CalDavSettings.spec.js
@@ -43,7 +43,7 @@ describe('CalDavSettings', () => {
sendInvitations: true,
generateBirthdayCalendar: true,
sendEventReminders: true,
- sendEventRemindersToSharedGroupMembers: true,
+ sendEventRemindersToSharedUsers: true,
sendEventRemindersPush: true,
}
},
@@ -65,10 +65,10 @@ describe('CalDavSettings', () => {
'Send notifications for events'
)
expect(sendEventReminders).toBeChecked()
- const sendEventRemindersToSharedGroupMembers = TLUtils.getByLabelText(
+ const sendEventRemindersToSharedUsers = TLUtils.getByLabelText(
'Send reminder notifications to calendar sharees as well'
)
- expect(sendEventRemindersToSharedGroupMembers).toBeChecked()
+ expect(sendEventRemindersToSharedUsers).toBeChecked()
const sendEventRemindersPush = TLUtils.getByLabelText(
'Enable notifications for events via push'
)
@@ -114,7 +114,7 @@ describe('CalDavSettings', () => {
'no'
)
- expect(sendEventRemindersToSharedGroupMembers).toBeDisabled()
+ expect(sendEventRemindersToSharedUsers).toBeDisabled()
expect(sendEventRemindersPush).toBeDisabled()
OCP.AppConfig.setValue.mockClear()
@@ -126,7 +126,7 @@ describe('CalDavSettings', () => {
'yes'
)
- expect(sendEventRemindersToSharedGroupMembers).toBeEnabled()
+ expect(sendEventRemindersToSharedUsers).toBeEnabled()
expect(sendEventRemindersPush).toBeEnabled()
*/
})
diff --git a/apps/dav/src/views/CalDavSettings.vue b/apps/dav/src/views/CalDavSettings.vue
index 6755cbd171d..ff870f4b2d4 100644
--- a/apps/dav/src/views/CalDavSettings.vue
+++ b/apps/dav/src/views/CalDavSettings.vue
@@ -51,7 +51,7 @@
</p>
<p class="indented">
<NcCheckboxRadioSwitch id="caldavSendEventRemindersToSharedGroupMembers"
- :checked.sync="sendEventRemindersToSharedGroupMembers"
+ :checked.sync="sendEventRemindersToSharedUsers"
type="switch"
:disabled="!sendEventReminders">
{{ $t('dav', 'Send reminder notifications to calendar sharees as well' ) }}
@@ -130,10 +130,10 @@ export default {
sendEventReminders(value) {
OCP.AppConfig.setValue('dav', 'sendEventReminders', value ? 'yes' : 'no')
},
- sendEventRemindersToSharedGroupMembers(value) {
+ sendEventRemindersToSharedUsers(value) {
OCP.AppConfig.setValue(
'dav',
- 'sendEventRemindersToSharedGroupMembers',
+ 'sendEventRemindersToSharedUsers',
value ? 'yes' : 'no'
)
},
diff --git a/apps/dav/tests/unit/CardDAV/ConverterTest.php b/apps/dav/tests/unit/CardDAV/ConverterTest.php
index fe45e4e5430..6b589ec3874 100644
--- a/apps/dav/tests/unit/CardDAV/ConverterTest.php
+++ b/apps/dav/tests/unit/CardDAV/ConverterTest.php
@@ -1,4 +1,7 @@
<?php
+
+declare(strict_types=1);
+
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -33,6 +36,7 @@ use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
use OCP\IImage;
use OCP\IUser;
+use OCP\IUserManager;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
@@ -40,11 +44,14 @@ class ConverterTest extends TestCase {
/** @var IAccountManager|\PHPUnit\Framework\MockObject\MockObject */
private $accountManager;
+ /** @var IUserManager|(IUserManager&MockObject)|MockObject */
+ private IUserManager|MockObject $userManager;
protected function setUp(): void {
parent::setUp();
$this->accountManager = $this->createMock(IAccountManager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
}
/**
@@ -70,17 +77,15 @@ class ConverterTest extends TestCase {
public function getAccountManager(IUser $user) {
$account = $this->createMock(IAccount::class);
$account->expects($this->any())
- ->method('getProperties')
+ ->method('getAllProperties')
->willReturnCallback(function () use ($user) {
- return [
- $this->getAccountPropertyMock(IAccountManager::PROPERTY_DISPLAYNAME, $user->getDisplayName(), IAccountManager::SCOPE_FEDERATED),
- $this->getAccountPropertyMock(IAccountManager::PROPERTY_ADDRESS, '', IAccountManager::SCOPE_LOCAL),
- $this->getAccountPropertyMock(IAccountManager::PROPERTY_WEBSITE, '', IAccountManager::SCOPE_LOCAL),
- $this->getAccountPropertyMock(IAccountManager::PROPERTY_EMAIL, $user->getEMailAddress(), IAccountManager::SCOPE_FEDERATED),
- $this->getAccountPropertyMock(IAccountManager::PROPERTY_AVATAR, $user->getAvatarImage(-1)->data(), IAccountManager::SCOPE_FEDERATED),
- $this->getAccountPropertyMock(IAccountManager::PROPERTY_PHONE, '', IAccountManager::SCOPE_LOCAL),
- $this->getAccountPropertyMock(IAccountManager::PROPERTY_TWITTER, '', IAccountManager::SCOPE_LOCAL),
- ];
+ yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_DISPLAYNAME, $user->getDisplayName(), IAccountManager::SCOPE_FEDERATED);
+ yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_ADDRESS, '', IAccountManager::SCOPE_LOCAL);
+ yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_WEBSITE, '', IAccountManager::SCOPE_LOCAL);
+ yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_EMAIL, $user->getEMailAddress(), IAccountManager::SCOPE_FEDERATED);
+ yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_AVATAR, $user->getAvatarImage(-1)->data(), IAccountManager::SCOPE_FEDERATED);
+ yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_PHONE, '', IAccountManager::SCOPE_LOCAL);
+ yield $this->getAccountPropertyMock(IAccountManager::PROPERTY_TWITTER, '', IAccountManager::SCOPE_LOCAL);
});
$accountManager = $this->getMockBuilder(IAccountManager::class)
@@ -98,7 +103,7 @@ class ConverterTest extends TestCase {
$user = $this->getUserMock((string)$displayName, $eMailAddress, $cloudId);
$accountManager = $this->getAccountManager($user);
- $converter = new Converter($accountManager);
+ $converter = new Converter($accountManager, $this->userManager);
$vCard = $converter->createCardFromUser($user);
if ($expectedVCard !== null) {
$this->assertInstanceOf('Sabre\VObject\Component\VCard', $vCard);
@@ -109,6 +114,29 @@ class ConverterTest extends TestCase {
}
}
+ public function testManagerProp(): void {
+ $user = $this->getUserMock("user", "user@domain.tld", "user@cloud.domain.tld");
+ $user->method('getManagerUids')
+ ->willReturn(['mgr']);
+ $this->userManager->expects(self::once())
+ ->method('getDisplayName')
+ ->with('mgr')
+ ->willReturn('Manager');
+ $accountManager = $this->getAccountManager($user);
+
+ $converter = new Converter($accountManager, $this->userManager);
+ $vCard = $converter->createCardFromUser($user);
+
+ $this->compareData(
+ [
+ 'cloud' => 'user@cloud.domain.tld',
+ 'email' => 'user@domain.tld',
+ 'x-managersname' => 'Manager',
+ ],
+ $vCard->jsonSerialize()
+ );
+ }
+
protected function compareData($expected, $data) {
foreach ($expected as $key => $value) {
$found = false;
@@ -184,7 +212,7 @@ class ConverterTest extends TestCase {
* @param $fullName
*/
public function testNameSplitter($expected, $fullName): void {
- $converter = new Converter($this->accountManager);
+ $converter = new Converter($this->accountManager, $this->userManager);
$r = $converter->splitFullName($fullName);
$r = implode(';', $r);
$this->assertEquals($expected, $r);
diff --git a/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php b/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
new file mode 100644
index 00000000000..a753a1c5a73
--- /dev/null
+++ b/apps/dav/tests/unit/CardDAV/SystemAddressBookTest.php
@@ -0,0 +1,128 @@
+<?php
+
+declare(strict_types=1);
+
+/*
+ * @copyright 2023 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @author 2023 Christoph Wurst <christoph@winzerhof-wurst.at>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+namespace OCA\DAV\Tests\unit\CardDAV;
+
+use OC\AppFramework\Http\Request;
+use OCA\DAV\CardDAV\SystemAddressbook;
+use OCA\Federation\TrustedServers;
+use OCP\Accounts\IAccountManager;
+use OCP\IConfig;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IUserSession;
+use PHPUnit\Framework\MockObject\MockObject;
+use Sabre\CardDAV\Backend\BackendInterface;
+use Sabre\VObject\Component\VCard;
+use Sabre\VObject\Reader;
+use Test\TestCase;
+
+class SystemAddressBookTest extends TestCase {
+
+ private MockObject|BackendInterface $cardDavBackend;
+ private array $addressBookInfo;
+ private IL10N|MockObject $l10n;
+ private IConfig|MockObject $config;
+ private IUserSession $userSession;
+ private IRequest|MockObject $request;
+ private array $server;
+ private TrustedServers|MockObject $trustedServers;
+ private SystemAddressbook $addressBook;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->cardDavBackend = $this->createMock(BackendInterface::class);
+ $this->addressBookInfo = [
+ 'id' => 123,
+ '{DAV:}displayname' => 'Accounts',
+ 'principaluri' => 'principals/system/system',
+ ];
+ $this->l10n = $this->createMock(IL10N::class);
+ $this->config = $this->createMock(IConfig::class);
+ $this->userSession = $this->createMock(IUserSession::class);
+ $this->request = $this->createMock(Request::class);
+ $this->server = [
+ 'PHP_AUTH_USER' => 'system',
+ 'PHP_AUTH_PW' => 'shared123',
+ ];
+ $this->request->method('__get')->with('server')->willReturn($this->server);
+ $this->trustedServers = $this->createMock(TrustedServers::class);
+
+ $this->addressBook = new SystemAddressbook(
+ $this->cardDavBackend,
+ $this->addressBookInfo,
+ $this->l10n,
+ $this->config,
+ $this->userSession,
+ $this->request,
+ $this->trustedServers,
+ null,
+ );
+ }
+
+ public function testGetFilteredChildForFederation(): void {
+ $this->trustedServers->expects(self::once())
+ ->method('getServers')
+ ->willReturn([
+ [
+ 'shared_secret' => 'shared123',
+ ],
+ ]);
+ $vcfWithScopes = <<<VCF
+BEGIN:VCARD
+VERSION:3.0
+PRODID:-//Sabre//Sabre VObject 4.4.2//EN
+UID:admin
+FN;X-NC-SCOPE=v2-federated:admin
+N;X-NC-SCOPE=v2-federated:admin;;;;
+ADR;TYPE=OTHER;X-NC-SCOPE=v2-local:Testing test test test;;;;;;
+EMAIL;TYPE=OTHER;X-NC-SCOPE=v2-federated:miau_lalala@gmx.net
+TEL;TYPE=OTHER;X-NC-SCOPE=v2-local:+435454454544
+CLOUD:admin@http://localhost
+END:VCARD
+VCF;
+ $originalCard = [
+ 'carddata' => $vcfWithScopes,
+ ];
+ $this->cardDavBackend->expects(self::once())
+ ->method('getCard')
+ ->with(123, 'user.vcf')
+ ->willReturn($originalCard);
+
+ $card = $this->addressBook->getChild("user.vcf");
+
+ /** @var VCard $vCard */
+ $vCard = Reader::read($card->get());
+ foreach ($vCard->children() as $child) {
+ $scope = $child->offsetGet('X-NC-SCOPE');
+ if ($scope !== null) {
+ self::assertNotEquals(IAccountManager::SCOPE_PRIVATE, $scope->getValue());
+ self::assertNotEquals(IAccountManager::SCOPE_LOCAL, $scope->getValue());
+ }
+ }
+ }
+
+}
diff --git a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
index 6bf1707c437..7d285a830d9 100644
--- a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
+++ b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
@@ -61,7 +61,7 @@ class CalDAVSettingsTest extends TestCase {
['dav', 'sendInvitations', 'yes'],
['dav', 'generateBirthdayCalendar', 'yes'],
['dav', 'sendEventReminders', 'yes'],
- ['dav', 'sendEventRemindersToSharedGroupMembers', 'yes'],
+ ['dav', 'sendEventRemindersToSharedUsers', 'yes'],
['dav', 'sendEventRemindersPush', 'no'],
)
->will($this->onConsecutiveCalls('yes', 'no', 'yes', 'yes', 'yes'));
@@ -76,7 +76,7 @@ class CalDAVSettingsTest extends TestCase {
['sendInvitations', true],
['generateBirthdayCalendar', false],
['sendEventReminders', true],
- ['sendEventRemindersToSharedGroupMembers', true],
+ ['sendEventRemindersToSharedUsers', true],
['sendEventRemindersPush', true],
);
$result = $this->settings->getForm();
diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js
index bb114955720..eb4b88d51bf 100644
--- a/apps/encryption/l10n/ru.js
+++ b/apps/encryption/l10n/ru.js
@@ -28,10 +28,15 @@ OC.L10N.register(
"Bad Signature" : "Неверная подпись",
"Missing Signature" : "Подпись отсутствует",
"one-time password for server-side-encryption" : "одноразовый пароль для шифрования на стороне сервера",
+ "Encryption password" : "Пароль шифрования",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Администратор включил шифрование на стороне сервера. Ваши файлы были зашифрованы с помощью пароля <strong>%s</strong>.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Администратор включил шифрование на стороне сервера. Ваши файлы были зашифрованы с помощью пароля \"%s\".",
+ "Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old log-in password\" field and your current login-password." : "Пожалуйста, войдите в веб-интерфейс, перейдите в раздел \"Безопасность\" ваших личных настроек и обновите свой пароль шифрования, введя этот пароль в поле \"Старый пароль для входа\" и ваш текущий логин/пароль.",
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удаётся расшифровать этот файл, вероятно, это файл общего доступа. Пожалуйста, попросите владельца файла предоставить доступ повторно.",
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу прочитать этот файл, вероятно, это общий файл. Пожалуйста, попросите владельца файла повторно поделиться им с вами.",
"Default encryption module" : "Модуль шифрования по умолчанию",
"Default encryption module for server-side encryption" : "Используемый по умолчанию модуль для шифрования данных на сервере",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Чтобы использовать этот модуль шифрования, вам необходимо включить шифрование на стороне сервера в настройках администратора. После включения этот модуль будет прозрачно шифровать все ваши файлы. Шифрование основано на ключах AES 256.\nМодуль не будет касаться существующих файлов, только новые файлы будут зашифрованы после включения шифрования на стороне сервера. Также невозможно снова отключить шифрование и переключиться обратно на незашифрованную систему.\nПожалуйста, ознакомьтесь с документацией, чтобы узнать обо всех последствиях, прежде чем вы решите включить шифрование на стороне сервера.",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
"Encrypt the home storage" : "Шифровать домашнюю директорию",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "При включении данного параметра будут зашифрованы все файлы, хранящиеся в основном хранилище. В противном случае шифруются только файлы на внешних хранилищах.",
diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json
index bc76acc030c..82ad3039d1a 100644
--- a/apps/encryption/l10n/ru.json
+++ b/apps/encryption/l10n/ru.json
@@ -26,10 +26,15 @@
"Bad Signature" : "Неверная подпись",
"Missing Signature" : "Подпись отсутствует",
"one-time password for server-side-encryption" : "одноразовый пароль для шифрования на стороне сервера",
+ "Encryption password" : "Пароль шифрования",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>." : "Администратор включил шифрование на стороне сервера. Ваши файлы были зашифрованы с помощью пароля <strong>%s</strong>.",
+ "The administration enabled server-side-encryption. Your files were encrypted using the password \"%s\"." : "Администратор включил шифрование на стороне сервера. Ваши файлы были зашифрованы с помощью пароля \"%s\".",
+ "Please login to the web interface, go to the \"Security\" section of your personal settings and update your encryption password by entering this password into the \"Old log-in password\" field and your current login-password." : "Пожалуйста, войдите в веб-интерфейс, перейдите в раздел \"Безопасность\" ваших личных настроек и обновите свой пароль шифрования, введя этот пароль в поле \"Старый пароль для входа\" и ваш текущий логин/пароль.",
"Cannot decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не удаётся расшифровать этот файл, вероятно, это файл общего доступа. Пожалуйста, попросите владельца файла предоставить доступ повторно.",
"Cannot read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу прочитать этот файл, вероятно, это общий файл. Пожалуйста, попросите владельца файла повторно поделиться им с вами.",
"Default encryption module" : "Модуль шифрования по умолчанию",
"Default encryption module for server-side encryption" : "Используемый по умолчанию модуль для шифрования данных на сервере",
+ "In order to use this encryption module you need to enable server-side encryption in the admin settings. Once enabled this module will encrypt all your files transparently. The encryption is based on AES 256 keys.\nThe module will not touch existing files, only new files will be encrypted after server-side encryption was enabled. It is also not possible to disable the encryption again and switch back to an unencrypted system.\nPlease read the documentation to know all implications before you decide to enable server-side encryption." : "Чтобы использовать этот модуль шифрования, вам необходимо включить шифрование на стороне сервера в настройках администратора. После включения этот модуль будет прозрачно шифровать все ваши файлы. Шифрование основано на ключах AES 256.\nМодуль не будет касаться существующих файлов, только новые файлы будут зашифрованы после включения шифрования на стороне сервера. Также невозможно снова отключить шифрование и переключиться обратно на незашифрованную систему.\nПожалуйста, ознакомьтесь с документацией, чтобы узнать обо всех последствиях, прежде чем вы решите включить шифрование на стороне сервера.",
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
"Encrypt the home storage" : "Шифровать домашнюю директорию",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "При включении данного параметра будут зашифрованы все файлы, хранящиеся в основном хранилище. В противном случае шифруются только файлы на внешних хранилищах.",
diff --git a/apps/federation/lib/SyncFederationAddressBooks.php b/apps/federation/lib/SyncFederationAddressBooks.php
index 401fd19bd75..3c3c8c872c7 100644
--- a/apps/federation/lib/SyncFederationAddressBooks.php
+++ b/apps/federation/lib/SyncFederationAddressBooks.php
@@ -82,10 +82,14 @@ class SyncFederationAddressBooks {
} catch (\Exception $ex) {
if ($ex->getCode() === Http::STATUS_UNAUTHORIZED) {
$this->dbHandler->setServerStatus($url, TrustedServers::STATUS_ACCESS_REVOKED);
- $this->logger->error("Server sync for $url failed because of revoked access.");
+ $this->logger->error("Server sync for $url failed because of revoked access.", [
+ 'exception' => $ex,
+ ]);
} else {
$this->dbHandler->setServerStatus($url, TrustedServers::STATUS_FAILURE);
- $this->logger->error("Server sync for $url failed.");
+ $this->logger->error("Server sync for $url failed.", [
+ 'exception' => $ex,
+ ]);
}
$callback($url, $ex);
}
diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml
index 985a26f6611..5d9e630704d 100644
--- a/apps/files/appinfo/info.xml
+++ b/apps/files/appinfo/info.xml
@@ -35,6 +35,9 @@
<command>OCA\Files\Command\TransferOwnership</command>
<command>OCA\Files\Command\ScanAppData</command>
<command>OCA\Files\Command\RepairTree</command>
+ <command>OCA\Files\Command\Get</command>
+ <command>OCA\Files\Command\Put</command>
+ <command>OCA\Files\Command\Delete</command>
</commands>
<activity>
diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php
index 868014ecfe7..2f99d4a88de 100644
--- a/apps/files/composer/composer/autoload_classmap.php
+++ b/apps/files/composer/composer/autoload_classmap.php
@@ -27,7 +27,10 @@ return array(
'OCA\\Files\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
'OCA\\Files\\Collaboration\\Resources\\Listener' => $baseDir . '/../lib/Collaboration/Resources/Listener.php',
'OCA\\Files\\Collaboration\\Resources\\ResourceProvider' => $baseDir . '/../lib/Collaboration/Resources/ResourceProvider.php',
+ 'OCA\\Files\\Command\\Delete' => $baseDir . '/../lib/Command/Delete.php',
'OCA\\Files\\Command\\DeleteOrphanedFiles' => $baseDir . '/../lib/Command/DeleteOrphanedFiles.php',
+ 'OCA\\Files\\Command\\Get' => $baseDir . '/../lib/Command/Get.php',
+ 'OCA\\Files\\Command\\Put' => $baseDir . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => $baseDir . '/../lib/Command/RepairTree.php',
'OCA\\Files\\Command\\Scan' => $baseDir . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => $baseDir . '/../lib/Command/ScanAppData.php',
diff --git a/apps/files/composer/composer/autoload_static.php b/apps/files/composer/composer/autoload_static.php
index 0946a5c39c2..e7b822e386d 100644
--- a/apps/files/composer/composer/autoload_static.php
+++ b/apps/files/composer/composer/autoload_static.php
@@ -42,7 +42,10 @@ class ComposerStaticInitFiles
'OCA\\Files\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
'OCA\\Files\\Collaboration\\Resources\\Listener' => __DIR__ . '/..' . '/../lib/Collaboration/Resources/Listener.php',
'OCA\\Files\\Collaboration\\Resources\\ResourceProvider' => __DIR__ . '/..' . '/../lib/Collaboration/Resources/ResourceProvider.php',
+ 'OCA\\Files\\Command\\Delete' => __DIR__ . '/..' . '/../lib/Command/Delete.php',
'OCA\\Files\\Command\\DeleteOrphanedFiles' => __DIR__ . '/..' . '/../lib/Command/DeleteOrphanedFiles.php',
+ 'OCA\\Files\\Command\\Get' => __DIR__ . '/..' . '/../lib/Command/Get.php',
+ 'OCA\\Files\\Command\\Put' => __DIR__ . '/..' . '/../lib/Command/Put.php',
'OCA\\Files\\Command\\RepairTree' => __DIR__ . '/..' . '/../lib/Command/RepairTree.php',
'OCA\\Files\\Command\\Scan' => __DIR__ . '/..' . '/../lib/Command/Scan.php',
'OCA\\Files\\Command\\ScanAppData' => __DIR__ . '/..' . '/../lib/Command/ScanAppData.php',
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index ee370c2ea70..dc47323cd77 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -1 +1 @@
-.actions{padding:3px;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,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-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 .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#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:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-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:.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.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#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}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}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 .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{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;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{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:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;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:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;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}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}table td.filename .system-tags{--min-size: 32px;display:flex;justify-content:center;align-items:center;flex:1 1 100%;min-width:calc(var(--min-size)*2);max-width:300px}table td.filename .system-tags .system-tags__tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px;text-align:center}table td.filename .system-tags .system-tags__tag--more{overflow:visible;text-overflow:initial}table td.filename .system-tags .system-tags__tag+.system-tags__tag{margin-left:5px}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}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}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+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}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-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}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-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}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.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}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-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}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.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;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:.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}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.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-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-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}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .system-tags{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-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:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#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}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#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 */
+.actions{padding:3px;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-element-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,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:var(--color-primary-element-light) !important}.app-files #app-content.dir-drop{background-color:var(--color-main-background) !important}.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-element-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#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:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-filestable tbody tr.searchresult{background-color:var(--color-primary-element-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:.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.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#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}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}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 .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{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;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{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:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;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:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;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}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}table td.filename .system-tags{--min-size: 32px;display:flex;justify-content:center;align-items:center;flex:1 1 100%;min-width:calc(var(--min-size)*2);max-width:300px}table td.filename .system-tags .system-tags__tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px;text-align:center}table td.filename .system-tags .system-tags__tag--more{overflow:visible;text-overflow:initial}table td.filename .system-tags .system-tags__tag+.system-tags__tag{margin-left:5px}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}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}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill);outline:none !important;border:2px solid var(--color-primary-element) !important;padding:14px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-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}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-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}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.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}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-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}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.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;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:.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}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.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-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-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}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .system-tags{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-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:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#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-element) !important}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#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
index 84dcb9c9921..9ae2993928e 100644
--- a/apps/files/css/files.css.map
+++ b/apps/files/css/files.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,4CAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,uDAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,uDAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,4CAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,cACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,iDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAzJK,KA0JL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QA7NO,KA8NP,kKACC,SACA,MAhOM,KAiON,OAjOM,KAuOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,2DASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA","file":"files.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,oDAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,+DAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,+DAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,oDAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,cACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,yDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAzJK,KA0JL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QA7NO,KA8NP,kKACC,SACA,MAhOM,KAiON,OAjOM,KAuOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,mEASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA","file":"files.css"} \ No newline at end of file
diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss
index 67c8adff897..6a1a8632ef8 100644
--- a/apps/files/css/files.scss
+++ b/apps/files/css/files.scss
@@ -23,7 +23,7 @@
background-color: var(--color-background-hover);
}
.actions .button a:active {
- background-color: var(--color-primary-light);
+ background-color: var(--color-primary-element-light);
}
.actions.creatable {
@@ -117,7 +117,7 @@
}
.file-drag, .file-drag .files-filestable tbody tr, .file-drag .files-filestable tbody tr:hover {
- background-color: var(--color-primary-light) !important;
+ background-color: var(--color-primary-element-light) !important;
}
.app-files #app-content.dir-drop {
@@ -129,7 +129,7 @@
}
.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{
- background-color: var(--color-primary-light) !important;
+ background-color: var(--color-primary-element-light) !important;
}
/* icons for sidebar */
@@ -202,7 +202,7 @@ table tr.mouseOver td {
.files-filestable tbody tr.highlighted .name:focus,
.files-filestable tbody tr.selected,
.files-filestable tbody tr.searchresult {
- background-color: var(--color-primary-light);
+ background-color: var(--color-primary-element-light);
}
tbody a { color: var(--color-main-text); }
@@ -551,7 +551,7 @@ table td.selection {
background-color: var(--color-background-hover);
border-radius: var(--border-radius-pill);
outline: none !important;
- border: 2px solid var(--color-primary) !important;
+ border: 2px solid var(--color-primary-element) !important;
padding: 14px;
}
}
@@ -1303,7 +1303,7 @@ table.dragshadow td.size {
&:focus-visible,
#showgridview:focus-visible + & {
- box-shadow: inset 0 0 0 2px var(--color-primary) !important;
+ box-shadow: inset 0 0 0 2px var(--color-primary-element) !important;
}
}
diff --git a/apps/files/css/merged.css b/apps/files/css/merged.css
index 75615a7c34d..fc9081859de 100644
--- a/apps/files/css/merged.css
+++ b/apps/files/css/merged.css
@@ -1 +1 @@
-.actions{padding:3px;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,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-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 .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#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:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-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:.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.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#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}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}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 .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{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;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{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:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;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:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;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}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}table td.filename .system-tags{--min-size: 32px;display:flex;justify-content:center;align-items:center;flex:1 1 100%;min-width:calc(var(--min-size)*2);max-width:300px}table td.filename .system-tags .system-tags__tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px;text-align:center}table td.filename .system-tags .system-tags__tag--more{overflow:visible;text-overflow:initial}table td.filename .system-tags .system-tags__tag+.system-tags__tag{margin-left:5px}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}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}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+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}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-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}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-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}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.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}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-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}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.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;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:.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}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.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-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-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}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .system-tags{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-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:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#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}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#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;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:.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:var(--border-radius-pill) 0 0 var(--border-radius-pill);border-right:0;position:relative;float:left;width:200px;height:44px;display:inline-block;text-align:center}#uploadprogressbar .ui-progressbar-value{margin-top:.1em}#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:50%}.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:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-moz-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-o-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@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:#fff !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td{padding:0}table.multiselect thead{padding-left:0}.fileList a.action.action-menu img{padding-left:0}.fileList .fileActionsMenu{margin-right:6px}.fileList a.action-share span:not(.icon):not(.avatar){position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}td.filename a.name .system-tags{display:none}#uploadprogressbar,#uploadprogressbar .label.inner{width:50px}#uploadprogressbar .desktop{display:none !important}#uploadprogressbar .mobile{display:block !important}table.dragshadow{z-index:1000}}@media only screen and (max-width: 480px){table th .selectedActions{float:right}table th .selectedActions>a span:not(.icon){display:none}table th .selectedActions a{padding:17px 14px}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:.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;margin-top:-15px}.app-sidebar .thumbnailContainer.large.portrait{margin:0}.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%}.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);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:.7 !important}.app-sidebar .detailList{float:left}.app-sidebar .close{position:absolute;top:0;right:0;opacity:.5;z-index:1;width:44px;height:44px}.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 */
+.actions{padding:3px;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-element-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,.files-fileList .error{color:var(--color-error);border-color:var(--color-error)}.files-filestable{position:relative;width:100%;min-width:250px;display:block;flex-direction:column}.emptycontent:not(.hidden)~.files-filestable{display:none}.files-filestable thead{position:-webkit-sticky;position:sticky;top:44px;z-index:60;display:block;background-color:var(--color-main-background-translucent)}.files-filestable tbody{display:table;width:100%}.files-filestable tbody tr[data-permissions="0"],.files-filestable tbody tr[data-permissions="16"]{background-color:var(--color-background-dark)}.files-filestable tbody tr[data-permissions="0"] td.filename .nametext .innernametext,.files-filestable tbody tr[data-permissions="16"] td.filename .nametext .innernametext{color:var(--color-text-maxcontrast)}.files-filestable tbody tr[data-e2eencrypted=true] .selection{pointer-events:none}.files-filestable.hidden{display:none}.app-files #app-content>.viewcontainer{min-height:0%;width:100%}.app-files #app-content{width:calc(100% - 300px)}.file-drag,.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:var(--color-primary-element-light) !important}.app-files #app-content.dir-drop{background-color:var(--color-main-background) !important}.file-drag .files-filestable tbody tr,.file-drag .files-filestable tbody tr:hover{background-color:rgba(0,0,0,0) !important}.app-files #app-content.dir-drop .files-filestable tbody tr.dropping-to-dir{background-color:var(--color-primary-element-light) !important}.nav-icon-files{background-image:var(--icon-folder-dark)}.nav-icon-recent{background-image:var(--icon-recent-dark)}.nav-icon-favorites{background-image:var(--icon-starred-dark)}.nav-icon-sharingin,.nav-icon-sharingout,.nav-icon-pendingshares,.nav-icon-shareoverview{background-image:var(--icon-share-dark)}.nav-icon-sharinglinks{background-image:var(--icon-public-dark)}.nav-icon-extstoragemounts{background-image:var(--icon-external-dark)}.nav-icon-trashbin{background-image:var(--icon-delete-dark)}.nav-icon-trashbin-starred{background-image:var(--icon-delete-#ff0000)}.nav-icon-deletedshares{background-image:var(--icon-unshare-dark)}.nav-icon-favorites-starred{background-image:var(--icon-starred-yellow)}#app-navigation .nav-files a.nav-icon-files{width:auto}#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:.3}.files-filestable tbody tr{height:51px}.files-filestable tbody tr:hover,.files-filestable tbody tr:focus,.files-filestable tbody .name:focus,.files-filestable tbody tr:hover .filename form,table tr.mouseOver td{background-color:var(--color-background-hover)}.files-filestable tbody tr:active,.files-filestable tbody tr.highlighted,.files-filestable tbody tr.highlighted .name:focus,.files-filestable tbody tr.selected,.files-filestable tbody tr.searchresult{background-color:var(--color-primary-element-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:.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.column-name{position:relative;width:9999px;padding:0}.column-name-container{position:relative;height:50px}table th.column-selection{padding-top:2px}table th.column-size,table td.filesize{text-align:right}table th.column-mtime,table td.date,table th.column-last,table td.column-last{-moz-box-sizing:border-box;box-sizing:border-box;position:relative;min-width:130px}#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}#app-content-recent thead,#app-content-favorites thead,#app-content-shareoverview thead,#app-content-sharingout thead,#app-content-sharingin thead,#app-content-sharinglinks thead,#app-content-deletedshares thead,#app-content-pendingshares thead{top:0}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 .column-name{position:relative;width:9999px}table.multiselect .column-mtime>a{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;-moz-box-sizing:border-box;box-sizing:border-box;height:50px;line-height:50px;padding:0}table td.filename .thumbnail-wrapper{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:.2}table td.filename .thumbnail{display:inline-block;width:32px;height:32px;background-size:contain;background-position:center;background-repeat:no-repeat;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:not(.view-grid) td.filename input.filename{width:70% !important;margin-left:48px !important;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}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}table td.filename .system-tags{--min-size: 32px;display:flex;justify-content:center;align-items:center;flex:1 1 100%;min-width:calc(var(--min-size)*2);max-width:300px}table td.filename .system-tags .system-tags__tag{padding:5px 10px;border:1px solid;border-radius:var(--border-radius-pill);border-color:var(--color-border);color:var(--color-text-maxcontrast);height:var(--min-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:22px;text-align:center}table td.filename .system-tags .system-tags__tag--more{overflow:visible;text-overflow:initial}table td.filename .system-tags .system-tags__tag+.system-tags__tag{margin-left:5px}.hide-hidden-files .files-filestable .files-fileList tr.hidden-file,.hide-hidden-files .files-filestable .files-fileList tr.hidden-file.dragging{display:none !important}.files-fileList tr.animate-opacity{-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.files-fileList tr.dragging{opacity:.2}table td.filename .nametext .innernametext{text-overflow:ellipsis;overflow:hidden;position:relative;vertical-align:top}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}.files-fileList tr td.selection>.selectCheckBox+label:before{opacity:.3;margin-right:0}.files-fileList tr:hover td.selection>.selectCheckBox+label:before,.files-fileList tr:focus td.selection>.selectCheckBox+label:before,.files-fileList tr td.selection>.selectCheckBox:checked+label:before,.files-fileList tr.selected td.selection>.selectCheckBox+label:before{opacity:1}.files-fileList tr.halfselected td.selection>.selectCheckBox+label:before{opacity:.5}.files-fileList tr td.selection>.selectCheckBox+label,.select-all+label{padding:16px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill);outline:none !important;border:2px solid var(--color-primary-element) !important;padding:14px}.files-fileList tr td.selection>.selectCheckBox:focus-visible+label,.select-all:focus-visible+label{outline-offset:0px}.files-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}.files-fileList tr td.filename a.name label,.files-fileList tr td.filename p.name label{position:absolute;width:80%;height:50px}.files-fileList tr td.filename .favorite{display:inline-block;float:left}.files-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}.fileactions{z-index:50}.busy .fileactions,.busy .action{visibility:hidden}.bubble,#app-navigation .app-navigation-entry-menu{min-width:100px}.files-fileList .icon-loading-small{opacity:1 !important;display:inline !important}.files-fileList .action.action-share-notification span,.files-fileList a.name{cursor:default !important}.files-fileList a.name.disabled *{cursor:default}.files-fileList a.name.disabled a,.files-fileList a.name.disabled a *{cursor:pointer}.files-fileList a.name.disabled:focus{background:none}a.action>img{height:16px;width:16px;vertical-align:text-bottom}a.action.action-editlocally img.icon{filter:var(--background-invert-if-dark)}.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}.files-fileList td a a.action{display:inline;padding:17px 8px;line-height:50px;opacity:.3}.files-fileList td a a.action.action-share{padding:17px 14px}.files-fileList td a a.action.action-share.permanent:not(.shared-style) .icon-shared+span{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.files-fileList td a a.action.action-share .avatar{display:inline-block;vertical-align:middle}.files-fileList td a a.action.action-menu{padding-top:17px;padding-bottom:17px;padding-left:14px;padding-right:14px}.files-fileList td a a.action.no-permission:hover,.files-fileList td a a.action.no-permission:focus{opacity:.3}.files-fileList td a a.action.disabled:hover,.files-fileList td a a.action.disabled:focus,.files-fileList td a a.action.disabled img{opacity:.3}.files-fileList td a a.action.disabled.action-download{opacity:.7}.files-fileList td a a.action.disabled.action-download:hover,.files-fileList td a a.action.disabled.action-download:focus{opacity:.7}.files-fileList td a a.action:hover,.files-fileList td a a.action:focus{opacity:1}.files-fileList td a a.action:focus{background-color:var(--color-background-hover);border-radius:var(--border-radius-pill)}.files-fileList td a .fileActionsMenu a.action,.files-fileList td a a.action.action-share.shared-style{opacity:.7}.files-fileList td a .fileActionsMenu .action.permanent{opacity:1}.files-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}.files-fileList .remoteAddress .userDomain{margin-left:0 !important}.files-fileList .favorite-mark.permanent{opacity:1}.files-fileList .fileActionsMenu a.action:hover,.files-fileList .fileActionsMenu a.action:focus,.files-fileList a.action.action-share.shared-style:hover,.files-fileList a.action.action-share.shared-style:focus{opacity:1}.files-fileList tr a.action.disabled{background:none}.selectedActions a.download.disabled,.files-fileList tr a.action.action-download.disabled{color:#000}.files-fileList tr:hover a.action.disabled:hover *{cursor:default}.summary{color:var(--color-text-maxcontrast);height:330px}.files-filestable .summary .filesummary{width:100%;padding-left:101px}#body-public .summary{height:180px}.summary:hover,.summary:focus,.summary,table tr.summary td{background-color:rgba(0,0,0,0)}.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;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:.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}.newFileMenu::after{left:61px !important}.files-controls{box-sizing:border-box;position:-webkit-sticky;position:sticky;height:50px;padding:0;margin:0;background-color:var(--color-main-background-translucent);z-index:62;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;top:0;padding-left:50px}.files-controls .actions>div>.button,.files-controls .actions>div button,.files-controls .actions>.button,.files-controls .actions button{box-sizing:border-box;display:inline-block;display:flex;height:44px;width:44px;padding:9px;align-items:center;justify-content:center}.files-controls .actions>div .button.hidden,.files-controls .actions .button.hidden{display:none}.viewer-mode #app-navigation+#app-content .files-controls{left:0}.files-filestable .filename .action .icon,.files-filestable .selectedActions a .icon,.files-filestable .filename .favorite-mark .icon,.files-controls .actions .button .icon{display:inline-block;vertical-align:middle;background-size:16px 16px}.files-filestable .filename .favorite-mark .icon-star{background-image:none}.files-filestable .filename .favorite-mark .icon-starred{background-image:var(--icon-starred-yellow) !important}.files-filestable .filename .action .icon.hidden,.files-filestable .selectedActions a .icon.hidden,.files-controls .actions .button .icon.hidden{display:none}.files-filestable .filename .action .icon.loading,.files-filestable .selectedActions a .icon.loading,.files-controls .actions .button .icon.loading{width:15px;height:15px}.app-files .actions .button.new{position:relative}.breadcrumb{align-items:center}.breadcrumb .icon-home{border-radius:var(--border-radius)}.breadcrumb .canDrop>a,.files-filestable tbody tr.canDrop{background-color:rgba(0,130,201,.3)}.dropzone-background{background-color:rgba(0,130,201,.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-navigation-item{margin:0 !important;border:none;border-radius:0;background-color:rgba(0,0,0,0);z-index:1;height:44px;display:flex !important;flex-direction:column}.quota-navigation-item__text{height:30px}.quota-navigation-item[href="#"],.quota-navigation-item[href="#"] *{cursor:default !important}.quota-navigation-item__container{height:5px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) thead tr{display:block;border-bottom:1px solid var(--color-border);background-color:var(--color-main-background-translucent)}.files-filestable.view-grid:not(.hidden) thead tr th{width:auto;border:none}.files-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}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden){display:block;position:relative;height:190px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted{background-color:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):hover .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden):active .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).selected .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).searchresult .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden) .name:focus .fileactions,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .thumbnail-wrapper,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .nametext,.files-filestable.view-grid:not(.hidden) tbody tr:not(.hidden).highlighted .fileactions{background-color:var(--color-background-hover)}.files-filestable.view-grid:not(.hidden) tbody td{display:inline;border-bottom:none}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .thumbnail-wrapper .thumbnail .favorite-mark{padding:14px;left:auto;top:-22px;right:-22px}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name{height:100%;border-radius:var(--border-radius);overflow:hidden;cursor:pointer !important}.files-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}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:before{content:"";flex:1;min-width:14px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext:after{content:"";flex:1;min-width:44px}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .extension{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .system-tags{display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions{height:initial;margin-top:146px;display:flex;align-items:center;position:absolute;right:0}.files-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}.files-filestable.view-grid:not(.hidden) tbody td.filename .name .fileactions .action:not(.action-menu){display:none}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-share-container.hidden .action-share img{padding:6px;border-radius:50%}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-restore-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename .fileActionsMenu .action-comment-container.hidden{display:block !important}.files-filestable.view-grid:not(.hidden) tbody td.filename form{padding:3px 14px;border-radius:var(--border-radius)}.files-filestable.view-grid:not(.hidden) tbody td.filename form input.filename{width:100%;margin-left:0;cursor:text}.files-filestable.view-grid:not(.hidden) tbody td.filesize,.files-filestable.view-grid:not(.hidden) tbody td.date{display:none}.files-filestable.view-grid:not(.hidden) tbody td.selection,.files-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:rgba(0,0,0,0)}.files-filestable.view-grid:not(.hidden) tbody td.selection label,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label{width:44px;height:44px;display:inline-flex;padding:14px}.files-filestable.view-grid:not(.hidden) tbody td.selection label::before,.files-filestable.view-grid:not(.hidden) tbody td.filename .favorite-mark label::before{margin:0;width:14px;height:14px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:0;width:150px;margin:0 5px}.files-filestable.view-grid:not(.hidden) tbody td .popovermenu .menuitem span:not(.icon){overflow:hidden;text-overflow:ellipsis}.files-filestable.view-grid:not(.hidden) tr.hidden-file td.filename .name .nametext .extension{display:block}.files-filestable.view-grid:not(.hidden) tfoot{display:grid}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden){display:inline-block;margin:0 auto;height:418px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td{padding-top:50px}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td:first-child,.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td.date{display:none}.files-filestable.view-grid:not(.hidden) tfoot .summary:not(.hidden) td .info{margin-left:0}#view-toggle{background-color:var(--color-main-background-translucent);border:none;margin:0;padding:22px;opacity:.5;float:right;right:var(--default-grid-baseline);top:var(--default-grid-baseline);z-index:100;position:sticky}#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-element) !important}#showgridview{position:fixed;top:0}#body-public .files-filestable.view-grid:not(.hidden) tbody td.filename .name .nametext .innernametext{max-width:124px}#body-public .files-filestable.view-grid:not(.hidden) tbody td .popovermenu{left:-80px}#body-public #view-toggle{position:absolute;right:0;top:0}#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;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:.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:var(--border-radius-pill) 0 0 var(--border-radius-pill);border-right:0;position:relative;float:left;width:200px;height:44px;display:inline-block;text-align:center}#uploadprogressbar .ui-progressbar-value{margin-top:.1em}#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-element)}#uploadprogressbar .label{top:8px;opacity:1;overflow:hidden;white-space:nowrap;font-weight:normal}#uploadprogressbar .label.inner{color:var(--color-primary-element-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:50%}.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:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-moz-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-o-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@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:#fff !important}table th.column-size,table td.filesize,table th.column-mtime,table td.date{display:none}table td{padding:0}table.multiselect thead{padding-left:0}.fileList a.action.action-menu img{padding-left:0}.fileList .fileActionsMenu{margin-right:6px}.fileList a.action-share span:not(.icon):not(.avatar){position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}td.filename a.name .system-tags{display:none}#uploadprogressbar,#uploadprogressbar .label.inner{width:50px}#uploadprogressbar .desktop{display:none !important}#uploadprogressbar .mobile{display:block !important}table.dragshadow{z-index:1000}}@media only screen and (max-width: 480px){table th .selectedActions{float:right}table th .selectedActions>a span:not(.icon){display:none}table th .selectedActions a{padding:17px 14px}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:.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;margin-top:-15px}.app-sidebar .thumbnailContainer.large.portrait{margin:0}.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%}.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);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:.7 !important}.app-sidebar .detailList{float:left}.app-sidebar .close{position:absolute;top:0;right:0;opacity:.5;z-index:1;width:44px;height:44px}.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
index 5b260ebdcd4..fdfc2d8db5b 100644
--- a/apps/files/css/merged.css.map
+++ b/apps/files/css/merged.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss","upload.scss","mobile.scss","detailsView.scss","../../../core/css/whatsnew.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,4CAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,uDAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,uDAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,4CAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,cACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,iDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAzJK,KA0JL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QA7NO,KA8NP,kKACC,SACA,MAhOM,KAiON,OAjOM,KAuOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,2DASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA,cEn1CF,QACC,sBACA,YACA,WACA,qBACA,gBACA,gBACA,mBACA,kBACA,YAED,qBACC,kBACA,cACA,WACA,YACA,WACA,iBACA,eACA,WACA,YAED,iCACA,+FAEA,gDACC,sBAGD,uBACC,qBACA,mBACA,YACA,gBAED,0CACC,YACA,gBAED,mBACC,sCACA,sEACA,eACA,kBACA,WACA,YACA,YACA,qBACA,kBAEA,yCACC,gBAGF,yEACC,wBACA,SACA,UACA,kBACA,gBACA,sCAED,0BACC,QACA,UACA,gBACA,mBACA,mBAED,gCACC,gCACA,kBACA,cACA,YAED,gCACC,kBACA,6BAED,4BACC,cAED,2BACC,aAGD,yBACC,yBACA,4BAGD,uBACC,2BACA,yBACA,wBACA,sBACA,qBACA,iBACA,mBAGD,0HAGC,8BACA,4BACA,2BACA,yBACA,wBACA,oBAED,0CACC,cAED,6BACC,WAED,0BACC,eACA,gBAED,+CACC,iBAED,sCACC,YAED,gCACC,mBACA,6BAED,iCACC,gBAED,4CACC,aAED,iCACC,WACA,YAED,2CACC,WACA,qBACA,WAED,6BACC,WACA,YACA,uBACA,4BACA,0BACA,WAGD,qEAEC,WACA,UAED,kCACC,gBACA,iBAED,sDACC,WAED,sCACC,YAED,iCACC,sBACA,kBACA,SAED,sCACC,sBAGD,gCACC,WACA,iBAEA,wCACC,WAIF,mBACC,0CACA,uCACA,qCACA,kCAGD,sCACE,4BACA,qCAEF,mCACE,4BACA,qCAEF,iCACE,4BACA,qCAEF,8BACE,4BACA,qCC3MF,oGAEA,iCACC,iCAGD,2EAIC,aAID,SACC,UAID,wBACC,eAGD,mCACC,eAGD,2BACC,iBAID,sDACC,kBACA,cACA,SACA,UACA,WACA,gBAID,gCACC,aAKD,mDACC,WAGD,4BACC,wBAED,2BACC,yBAID,iBACC,cAID,0CAEC,0BACC,YAED,4CACC,aAID,4BACC,kBAID,uCACC,eCvFF,sCACC,gBACA,aAGD,0CACC,WAID,qCACC,qBACA,0BAGD,0CACC,iBACA,mBACA,WAEA,gGAEC,UAGF,sDACC,WACA,UAGD,uCACC,kBACA,mBACA,iBAGD,gDACC,SAGD,+BACC,WACA,cACA,4BACA,2BACA,qBACA,WACA,SACA,YAGD,0CACC,WACA,cACA,sBAGD,wCACC,4BAGD,wCACC,wBAGD,yBACC,kBACA,kBACA,iBACA,cACA,cAGD,wBACC,WACA,gBACA,qBACA,WACA,kBACA,wBACA,4BAGD,uBACC,mBACA,uBACA,gBAGD,uBACC,eACA,iBACA,mBAGD,0BACC,wBACA,qBACA,cACA,cAGD,2BACC,oCAGD,8BACC,mBACA,aACA,aAGD,mCACC,sBAGD,yBACC,WAGD,oBACC,kBACA,MACA,QACA,WACA,UACA,WACA,YCxHD,iBACE,uBACA,qBACA,YACA,YAGF,mBACE,sBAGF,0BACE,iBACA,uBAGF,6BACE,kBACA,QAGF,wBACE","file":"merged.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["files.scss","../../../core/css/functions.scss","upload.scss","mobile.scss","detailsView.scss","../../../core/css/whatsnew.scss"],"names":[],"mappings":"AAWA,SAEC,YACA,YACA,qBACA,WAED,oEACA,8BACA,kDAEC,+CAED,0BACC,oDAGD,mBACC,kBACA,aACA,SACA,4CACC,iBAIF,gBACC,aAGD,OACC,iBACA,YACA,aACA,aACA,mBAGD,6EAGC,yBACA,gCAID,kBACC,kBACA,WACA,gBACA,cACA,sBAEA,6CACC,aAGD,wBACC,wBACA,gBAEA,SAEA,WACA,cACA,0DAMD,wBACC,cACA,WAEA,mGAEC,8CAEA,6KACC,oCAKF,8DACC,oBAKH,yBACC,aAID,uCACC,cACA,WAGD,wBAGC,yBAGD,6FACC,+DAGD,iCACC,yDAGD,kFACC,0CAGD,4EACC,+DAID,gBCtEC,yCDyED,iBCzEC,yCD4ED,oBC5EC,0CD+ED,yFC/EC,wCDqFD,uBCrFC,yCDwFD,2BCxFC,2CD2FD,mBC3FC,yCD8FD,2BC9FC,4CDiGD,wBCjGC,0CDoGD,4BCpGC,4CDwGD,4CACC,WAGD,iCACC,WACA,YACA,eACA,SACA,eAGD,wCACC,aAGD,0CACC,WAGD,2BACC,YAED,4KAKC,+CAED,wMAKC,oDAGD,qCAEA,yDACC,oCAED,kCACC,iCACA,8BACA,4BACA,yBACA,mBAED,wGAIC,UACA,oCAGD,oBACC,oCAED,uBACC,6BAED,sBACC,cACA,aACA,YACA,sBACA,2BACA,sBACA,oCACC,kBAGF,kCACC,qBACA,mBAED,2BACC,eACA,iBAGD,uCACC,cAGD,yBACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,wJAIC,kBAED,2CACC,eAED,4EAEC,mBAGD,kBAEC,4CACA,gBACA,mBAED,SACC,eACA,kBACA,+BACA,4BAED,qBACC,kBACA,aACA,UAGD,uBACC,kBACA,YAGD,0BACC,gBAED,uCACC,iBAED,8EAEC,2BACA,sBACA,kBAEA,gBAGD,qMAQC,gBACA,qPACC,MAIF,2BACC,0DACA,iBAGD,sDACC,iBAGD,+BACC,kBACA,aAED,kCACC,aAGD,0DAGC,WACA,kBAED,kDAEC,aACA,kBACA,2BACA,sBACA,YACA,iBACA,UAED,qCAEC,QACA,eACA,eACA,YAGA,8DACC,WAED,mEACC,WAGF,6BACC,qBACA,WACA,YACA,wBACA,2BACA,4BACA,gBACA,eACA,mCACA,eACA,kBACA,UAED,oCACC,eAID,2CACC,qCAGD,iDACC,qBACA,4BACA,YAED,uBACC,iBACA,kBACA,SAGD,6IACA,8FAEA,wCACC,kBACA,gBACA,uBACA,YAKA,kBACC,YACA,4BACC,QACA,YACA,aACA,gBACA,mBACA,uBACA,YACA,WACA,mBAID,+BACC,iBACA,aACA,uBACA,mBACA,cACA,kCACA,gBAEA,iDACC,iBACA,iBACA,wCACA,iCACA,oCACA,uBACA,mBACA,gBACA,uBACA,iBACA,kBAEA,uDACC,iBACA,sBAID,mEACC,gBAOL,iJAEC,wBAGD,mCACC,iCACA,8BACA,4BACA,yBAED,4BACC,WAGD,2CACC,uBACA,gBACA,kBACA,mBAKD,8BACC,kBACA,mBAEA,iBACA,OACA,SACA,YACA,cAEA,iBACA,eAEA,iBACA,oCACA,uBACA,mBAGD,mBACC,UAID,6DACC,WACA,eAID,iRAIC,UAID,0EACC,WAMA,wEACC,aAGD,oGACC,+CACA,wCACA,wBACA,yDACA,aAIF,oGAEC,mBAGD,+BACC,kBACA,WACA,eACA,gBACA,wJAGD,wFAEC,kBACA,UACA,YAGD,yCACC,qBACA,WAED,8CACC,kBACA,cACA,SACA,WACA,iBACA,kBAGD,iDAGA,aACC,WAGD,iCACC,kBAID,mDAEC,gBAID,oCACC,qBACA,0BAGD,8EACC,0BAOA,kCACC,eAGD,sEACC,eAGD,sCACC,gBAIF,aACC,YACA,WACA,2BAGD,qCACC,wCAID,iBACI,kBACA,qBACA,sBAEJ,wBACI,aAEJ,mBACC,eACA,iBACA,iBAGD,0BACC,aAED,uBACC,kBACA,2BACA,mBAGD,8CACC,gBAIA,8BACC,eACA,iBACA,iBACA,WACA,2CACC,kBACA,0FAGC,kBACA,cACA,SACA,UACA,WACA,gBAED,mDACC,qBACA,sBAGF,0CACC,iBACA,oBACA,kBACA,mBAGA,oGACC,WAID,qIAEC,WAED,uDACC,WACA,0HACC,WAIH,wEACC,UAED,oCACC,+CACA,wCAGF,uGACC,WAED,wDACC,UAKF,4EACC,qBACA,eACA,gBACA,uBACA,sBACA,gBAGD,2CACC,yBAGD,yCACC,UAGD,kNAKC,UAGD,qCACC,gBAGD,0FAEC,WAGD,mDACC,eAGD,SACC,oCAGA,aAED,wCACC,WAEA,mBAKD,sBACC,aAED,2DAIC,+BAED,YACC,mBACA,mBACA,iBAED,wBACC,UAED,YACC,qBAGD,iBACC,WACA,aAED,6BACC,kBACA,mBACA,YAGA,gBAED,yBACC,kBAED,MACC,WACA,kBACA,MACA,OACA,QACA,SACA,8CACA,sCACA,wBACA,WACA,yBACA,8BACA,4BACA,6BACA,iCAED,kBACC,UAGD,aACC,gBACA,SACA,sBACA,eACA,gBACA,aAGA,oBACC,qBAKF,gBACC,sBACA,wBACA,gBACA,YACA,UACA,SACA,0DACA,WACA,yBACA,sBACA,qBACA,iBACA,aACA,MACA,kBAKE,0IACC,sBACA,qBACA,aACA,YACA,WACA,YACA,mBACA,uBAED,oFACC,aAQJ,0DACC,OAGD,6KAIC,qBACA,sBACA,0BAMA,sDACC,sBAED,yDACC,uDAIF,iJAGC,aAGD,oJAGC,WACA,YAGD,gCACC,kBAGD,YACC,mBAEA,uBACC,mCAIF,0DAEC,oCAED,qBACC,oCACA,4BACC,2BAIF,cACC,iBACA,kBACA,gBACA,6BACA,cACA,gBACA,YAEA,2BACC,aAGD,kCACC,UACA,kBACA,iBAIF,uBACC,oBACA,YACA,gBACA,+BACA,UACA,YACA,wBACA,sBAEA,6BACC,YAKA,oEACC,0BAIF,kCACC,WACA,mCAWA,kDACC,cACA,4CACA,0DACA,qDACC,WACA,YAMH,+CACC,aACA,+CACA,6BACA,aACA,cAGA,+DACC,cACA,kBACA,aACA,mCAEA,0fAKC,+BAEA,oxDAGC,+CAKH,kDACC,eACA,mBAGC,8EACC,YACA,eACA,kBACA,MAvDQ,MAwDR,OAxDQ,MAyDR,QAxDO,KAyDP,MACA,OACA,WAEA,yFACC,4BACA,6BACA,wBACA,SACA,mCACA,4BACA,2BAKA,wGACC,QA1EK,KA2EL,UACA,UACA,YAKH,uEACC,WACA,SACA,MACA,YAEA,YACA,gBAEA,kBAGD,iEACC,YACA,mCAIA,gBAKA,0BAEA,2EACC,aACA,YACA,iBACA,kBACA,iBACA,UAEA,0FACC,qBACA,kBACA,gBACA,uBACA,mBAED,kFACC,WACA,OACA,eAED,iFACC,WACA,OACA,eAID,sFACC,aAKF,8EACC,aAGD,8EACC,eACA,iBACA,aACA,mBACA,kBACA,QAEA,sFACC,QAzJK,KA0JL,WACA,YACA,aACA,mBACA,uBAGA,wGACC,aAQH,2GACC,yBAEA,6HACC,YACA,kBAIF,6GACC,yBAGD,6GACC,yBAIF,gEACC,iBACA,mCAEA,+EACC,WACA,cACA,YAMH,kHAEC,aAGD,sIAEC,kBACA,SACA,UACA,aACA,WACA,YACA,WACA,yBAEA,kJACC,WACA,YACA,oBACA,QA7NO,KA8NP,kKACC,SACA,MAhOM,KAiON,OAjOM,KAuOT,+DACC,OACA,YACA,aAGA,yFACC,gBACA,uBAMJ,+FACC,cAID,+CACC,aAEA,qEACC,qBACA,cAEA,aAEA,wEACC,iBAEA,iKAEC,aAGD,8EACI,cAQR,aACC,0DACA,YACA,SACA,aACA,WACA,YACA,mCACA,iCACA,YACA,gBAEA,uEAGC,UAGD,oEAEC,mEASF,cACC,eACA,MAOC,uGACC,gBAID,4EACC,WAKF,0BACC,kBACA,QACA,MAKF,gBACC,aAGD,8BACC,gBACA,sBACA,kBACA,kBACA,aACA,eACA,mBAEA,iCACC,WACA,eAGD,6DACC,aACA,YACA,cEn1CF,QACC,sBACA,YACA,WACA,qBACA,gBACA,gBACA,mBACA,kBACA,YAED,qBACC,kBACA,cACA,WACA,YACA,WACA,iBACA,eACA,WACA,YAED,iCACA,+FAEA,gDACC,sBAGD,uBACC,qBACA,mBACA,YACA,gBAED,0CACC,YACA,gBAED,mBACC,sCACA,sEACA,eACA,kBACA,WACA,YACA,YACA,qBACA,kBAEA,yCACC,gBAGF,yEACC,wBACA,SACA,UACA,kBACA,gBACA,8CAED,0BACC,QACA,UACA,gBACA,mBACA,mBAED,gCACC,wCACA,kBACA,cACA,YAED,gCACC,kBACA,6BAED,4BACC,cAED,2BACC,aAGD,yBACC,yBACA,4BAGD,uBACC,2BACA,yBACA,wBACA,sBACA,qBACA,iBACA,mBAGD,0HAGC,8BACA,4BACA,2BACA,yBACA,wBACA,oBAED,0CACC,cAED,6BACC,WAED,0BACC,eACA,gBAED,+CACC,iBAED,sCACC,YAED,gCACC,mBACA,6BAED,iCACC,gBAED,4CACC,aAED,iCACC,WACA,YAED,2CACC,WACA,qBACA,WAED,6BACC,WACA,YACA,uBACA,4BACA,0BACA,WAGD,qEAEC,WACA,UAED,kCACC,gBACA,iBAED,sDACC,WAED,sCACC,YAED,iCACC,sBACA,kBACA,SAED,sCACC,sBAGD,gCACC,WACA,iBAEA,wCACC,WAIF,mBACC,0CACA,uCACA,qCACA,kCAGD,sCACE,4BACA,qCAEF,mCACE,4BACA,qCAEF,iCACE,4BACA,qCAEF,8BACE,4BACA,qCC3MF,oGAEA,iCACC,iCAGD,2EAIC,aAID,SACC,UAID,wBACC,eAGD,mCACC,eAGD,2BACC,iBAID,sDACC,kBACA,cACA,SACA,UACA,WACA,gBAID,gCACC,aAKD,mDACC,WAGD,4BACC,wBAED,2BACC,yBAID,iBACC,cAID,0CAEC,0BACC,YAED,4CACC,aAID,4BACC,kBAID,uCACC,eCvFF,sCACC,gBACA,aAGD,0CACC,WAID,qCACC,qBACA,0BAGD,0CACC,iBACA,mBACA,WAEA,gGAEC,UAGF,sDACC,WACA,UAGD,uCACC,kBACA,mBACA,iBAGD,gDACC,SAGD,+BACC,WACA,cACA,4BACA,2BACA,qBACA,WACA,SACA,YAGD,0CACC,WACA,cACA,sBAGD,wCACC,4BAGD,wCACC,wBAGD,yBACC,kBACA,kBACA,iBACA,cACA,cAGD,wBACC,WACA,gBACA,qBACA,WACA,kBACA,wBACA,4BAGD,uBACC,mBACA,uBACA,gBAGD,uBACC,eACA,iBACA,mBAGD,0BACC,wBACA,qBACA,cACA,cAGD,2BACC,oCAGD,8BACC,mBACA,aACA,aAGD,mCACC,sBAGD,yBACC,WAGD,oBACC,kBACA,MACA,QACA,WACA,UACA,WACA,YCxHD,iBACE,uBACA,qBACA,YACA,YAGF,mBACE,sBAGF,0BACE,iBACA,uBAGF,6BACE,kBACA,QAGF,wBACE","file":"merged.css"} \ No newline at end of file
diff --git a/apps/files/css/upload.css b/apps/files/css/upload.css
index ad443ad788c..458f6b33b34 100644
--- a/apps/files/css/upload.css
+++ b/apps/files/css/upload.css
@@ -1 +1 @@
-#upload{box-sizing:border-box;height:36px;width:39px;padding:0 !important;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:.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:var(--border-radius-pill) 0 0 var(--border-radius-pill);border-right:0;position:relative;float:left;width:200px;height:44px;display:inline-block;text-align:center}#uploadprogressbar .ui-progressbar-value{margin-top:.1em}#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:50%}.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:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-moz-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-o-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}/*# sourceMappingURL=upload.css.map */
+#upload{box-sizing:border-box;height:36px;width:39px;padding:0 !important;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:.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:var(--border-radius-pill) 0 0 var(--border-radius-pill);border-right:0;position:relative;float:left;width:200px;height:44px;display:inline-block;text-align:center}#uploadprogressbar .ui-progressbar-value{margin-top:.1em}#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-element)}#uploadprogressbar .label{top:8px;opacity:1;overflow:hidden;white-space:nowrap;font-weight:normal}#uploadprogressbar .label.inner{color:var(--color-primary-element-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:50%}.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:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-moz-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@-o-keyframes highlightAnimation{0%{background-color:#ffff8c}100%{background-color:rgba(0,0,0,0)}}@keyframes highlightAnimation{0%{background-color:#ffff8c}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
index ca3c7a1e2fe..59585e0f790 100644
--- a/apps/files/css/upload.css.map
+++ b/apps/files/css/upload.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["upload.scss"],"names":[],"mappings":"AAAA,QACC,sBACA,YACA,WACA,qBACA,gBACA,gBACA,mBACA,kBACA,YAED,qBACC,kBACA,cACA,WACA,YACA,WACA,iBACA,eACA,WACA,YAED,iCACA,+FAEA,gDACC,sBAGD,uBACC,qBACA,mBACA,YACA,gBAED,0CACC,YACA,gBAED,mBACC,sCACA,sEACA,eACA,kBACA,WACA,YACA,YACA,qBACA,kBAEA,yCACC,gBAGF,yEACC,wBACA,SACA,UACA,kBACA,gBACA,sCAED,0BACC,QACA,UACA,gBACA,mBACA,mBAED,gCACC,gCACA,kBACA,cACA,YAED,gCACC,kBACA,6BAED,4BACC,cAED,2BACC,aAGD,yBACC,yBACA,4BAGD,uBACC,2BACA,yBACA,wBACA,sBACA,qBACA,iBACA,mBAGD,0HAGC,8BACA,4BACA,2BACA,yBACA,wBACA,oBAED,0CACC,cAED,6BACC,WAED,0BACC,eACA,gBAED,+CACC,iBAED,sCACC,YAED,gCACC,mBACA,6BAED,iCACC,gBAED,4CACC,aAED,iCACC,WACA,YAED,2CACC,WACA,qBACA,WAED,6BACC,WACA,YACA,uBACA,4BACA,0BACA,WAGD,qEAEC,WACA,UAED,kCACC,gBACA,iBAED,sDACC,WAED,sCACC,YAED,iCACC,sBACA,kBACA,SAED,sCACC,sBAGD,gCACC,WACA,iBAEA,wCACC,WAIF,mBACC,0CACA,uCACA,qCACA,kCAGD,sCACE,4BACA,qCAEF,mCACE,4BACA,qCAEF,iCACE,4BACA,qCAEF,8BACE,4BACA","file":"upload.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["upload.scss"],"names":[],"mappings":"AAAA,QACC,sBACA,YACA,WACA,qBACA,gBACA,gBACA,mBACA,kBACA,YAED,qBACC,kBACA,cACA,WACA,YACA,WACA,iBACA,eACA,WACA,YAED,iCACA,+FAEA,gDACC,sBAGD,uBACC,qBACA,mBACA,YACA,gBAED,0CACC,YACA,gBAED,mBACC,sCACA,sEACA,eACA,kBACA,WACA,YACA,YACA,qBACA,kBAEA,yCACC,gBAGF,yEACC,wBACA,SACA,UACA,kBACA,gBACA,8CAED,0BACC,QACA,UACA,gBACA,mBACA,mBAED,gCACC,wCACA,kBACA,cACA,YAED,gCACC,kBACA,6BAED,4BACC,cAED,2BACC,aAGD,yBACC,yBACA,4BAGD,uBACC,2BACA,yBACA,wBACA,sBACA,qBACA,iBACA,mBAGD,0HAGC,8BACA,4BACA,2BACA,yBACA,wBACA,oBAED,0CACC,cAED,6BACC,WAED,0BACC,eACA,gBAED,+CACC,iBAED,sCACC,YAED,gCACC,mBACA,6BAED,iCACC,gBAED,4CACC,aAED,iCACC,WACA,YAED,2CACC,WACA,qBACA,WAED,6BACC,WACA,YACA,uBACA,4BACA,0BACA,WAGD,qEAEC,WACA,UAED,kCACC,gBACA,iBAED,sDACC,WAED,sCACC,YAED,iCACC,sBACA,kBACA,SAED,sCACC,sBAGD,gCACC,WACA,iBAEA,wCACC,WAIF,mBACC,0CACA,uCACA,qCACA,kCAGD,sCACE,4BACA,qCAEF,mCACE,4BACA,qCAEF,iCACE,4BACA,qCAEF,8BACE,4BACA","file":"upload.css"} \ No newline at end of file
diff --git a/apps/files/css/upload.scss b/apps/files/css/upload.scss
index 88207e0a844..a8f02e9122c 100644
--- a/apps/files/css/upload.scss
+++ b/apps/files/css/upload.scss
@@ -58,7 +58,7 @@
left: -1px;
position: absolute;
overflow: hidden;
- background-color: var(--color-primary);
+ background-color: var(--color-primary-element);
}
#uploadprogressbar .label {
top: 8px;
@@ -68,7 +68,7 @@
font-weight: normal;
}
#uploadprogressbar .label.inner {
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
position: absolute;
display: block;
width: 200px;
diff --git a/apps/files/l10n/af.js b/apps/files/l10n/af.js
index bea9874a04d..408bfc05b79 100644
--- a/apps/files/l10n/af.js
+++ b/apps/files/l10n/af.js
@@ -115,7 +115,6 @@ OC.L10N.register(
"Go back" : "Gaan terug",
"Show hidden files" : "Vertoon verborge lêers ",
"WebDAV" : "WebDAV",
- "Cancel" : "Kanselleer",
"Create" : "Skep",
"Delete permanently" : "Skrap permanent",
"Upload some content or sync with your devices!" : "Laai 'n paar lêers op of sinchroniseer met u toestelle",
@@ -134,6 +133,7 @@ OC.L10N.register(
"New" : "Nuwe",
"Copied!" : "Gekopieer!",
"Unlimited" : "Onbeperkte",
+ "Cancel" : "Kanselleer",
"%s used" : "%s gebruik",
"%1$s of %2$s used" : "%1$s van %2$s gebruik",
"Settings" : "Instellings",
diff --git a/apps/files/l10n/af.json b/apps/files/l10n/af.json
index 569e8fd084e..ce41497907d 100644
--- a/apps/files/l10n/af.json
+++ b/apps/files/l10n/af.json
@@ -113,7 +113,6 @@
"Go back" : "Gaan terug",
"Show hidden files" : "Vertoon verborge lêers ",
"WebDAV" : "WebDAV",
- "Cancel" : "Kanselleer",
"Create" : "Skep",
"Delete permanently" : "Skrap permanent",
"Upload some content or sync with your devices!" : "Laai 'n paar lêers op of sinchroniseer met u toestelle",
@@ -132,6 +131,7 @@
"New" : "Nuwe",
"Copied!" : "Gekopieer!",
"Unlimited" : "Onbeperkte",
+ "Cancel" : "Kanselleer",
"%s used" : "%s gebruik",
"%1$s of %2$s used" : "%1$s van %2$s gebruik",
"Settings" : "Instellings",
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index 931a64c7da3..78721d301c1 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -2,11 +2,12 @@ OC.L10N.register(
"files",
{
"File could not be found" : "الملف غير موجود",
- "Move or copy" : "إنقل أو انسخ",
+ "Move or copy" : "أنقل أو انسخ",
"Download" : "تنزيل",
"Delete" : "حذف ",
"Tags" : "الوسوم",
"Show list view" : "اظهر معاينات الروابط",
+ "Show grid view" : "أعرض شبكياً",
"Home" : "الرئيسية",
"Close" : "إغلاق",
"Favorites" : "المفضلة ",
@@ -59,7 +60,7 @@ OC.L10N.register(
"Copied {origin} and {nbfiles} other files inside {destination}" : "منسوخ {origin} و {nbfiles} ملفات اخرى داخل {destination}",
"Failed to redirect to client" : "فشل في التحويل الى العميل",
"{newName} already exists" : "{newname} موجود مسبقاً",
- "Could not rename \"{fileName}\", it does not exist any more" : "لا يمكن اعادة تسمية \"{fileName}\", لانه لم يعد موجود",
+ "Could not rename \"{fileName}\", it does not exist any more" : "لا يمكن اعادة تسمية \"{fileName}\", لانه لم يعد موجوداً",
"The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "الاسم \"{targetName}\" مستخدم من قبل في المجلد \"{dir}\". الرجاء اختيار اسم اخر.",
"Could not rename \"{fileName}\"" : "إعادة تسمية الملف \"{fileName}\" لم تنجح",
"Could not create file \"{file}\"" : "لا يمكن إنشاء الملف\"{file}\"",
@@ -76,8 +77,11 @@ OC.L10N.register(
"_%n file_::_%n files_" : ["لا يوجد ملفات %n","ملف %n","2 ملف %n","قليل من ملفات %n","الكثير من ملفات %n"," ملفات %n"],
"{dirs} and {files}" : "{dirs} و {files}",
"_including %n hidden_::_including %n hidden_" : ["يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي"],
+ "You do not have permission to upload or create files here" : "لا يوجد تخويل برفع أو إنشاء ملفات هنا",
"_Uploading %n file_::_Uploading %n files_" : ["لا يوجد ملفات %n لتحميلها","تحميل 1 ملف %n","تحميل 2 ملف %n","يتم تحميل عدد قليل من ملفات %n","يتم تحميل عدد كبير من ملفات %n","يتم تحميل ملفات %n"],
+ "New file/folder menu" : "قائمة ملف/مجلد جديد",
"Select file range" : "حدد نطاق الملف",
+ "{used}%" : "{مُستخدَم}%",
"{used} of {quota} used" : "{used} من {quota} مستخدم",
"{used} used" : "{used} مستخدم",
"\"{name}\" is an invalid file name." : "\"{name}\" اسم ملف غير صالح للاستخدام .",
@@ -94,6 +98,7 @@ OC.L10N.register(
"Your storage is almost full ({usedSpacePercent}%)." : "مساحة التخزين الخاصة بك شبه ممتلئة ({usedSpacePercent}%).",
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["تطابق \"{filter}\"","تطابق \"{filter}\" ","تطابقان \"{filter}\"","تطابقات \"{filter}\"","تطابقات \"{filter}\"","تطابقات \"{filter}\""],
"View in folder" : "اعرض في المجلد",
+ "Direct link was copied (only works for users who have access to this file/folder)" : "تم نسخ الرابط المباشر (تعمل فقط بالنسبة للمستخدمين الذين يملكون تخويلاً بالوصول إلى هذا الملف أو المجلد)",
"Path" : "المسار",
"_%n byte_::_%n bytes_" : ["بايت","بايت","بايت","بايت","بايت","%nبايت"],
"Favorited" : "المفضلة",
@@ -104,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "إنشاء مجلدا جديد",
"Upload file" : "رفع ملف",
"Recent" : "الحديثة",
+ "This file has the tag {tag}" : "هذا الملف له واصفة {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "هذا الملف له واصفات {firstTags} و {lastTag}",
"Not favorited" : "ازالة من المفضلة",
"Remove from favorites" : "إزالته مِن المفضلة",
"Add to favorites" : "إضافة إلى المفضلة",
@@ -162,29 +169,60 @@ OC.L10N.register(
"The ownership transfer of {path} from {user} has completed." : "نقل الملكية لـ {path} من قبل {user} تمت بنجاح.",
"in %s" : "في %s",
"File Management" : "إدارة الملفات",
+ "Reload current directory" : "إعادة تحميل المجلد الحالي",
+ "Go to the \"{dir}\" directory" : "إنتقل إلى المجلد \"{dir}\"",
+ "Select the row for {displayName}" : "إختر السطر في {displayName}",
+ "Open folder {name}" : "إفتح المجلد {name}",
+ "Download file {name}" : "حم",
+ "\"{displayName}\" action executed successfully" : "\"{displayName}\" الأمر نُفّذ بنجاح",
+ "\"{displayName}\" action failed" : "\"{dispalyName}\" الأمر أخفق عند التنفيذ",
+ "Total rows summary" : "ملخص مجموع الأسطر",
"Select all" : "تحديد الكل ",
+ "Unselect all" : "إلغاء الاختيار للكل",
+ "\"{displayName}\" failed on some elements " : "\"{displayName}\" فشل في بعض العناصر",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" حزمة الأوامر نُفّذت بنجاح",
+ "ascending" : "تصاعدياً",
+ "descending" : "تنازلياً",
+ "Sort list by {column} ({direction})" : "ترتيب القائمة بحسب {column} ({direction})",
+ "This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list." : "لم يمكن عرض هذه القائمة بالكامل بسبب إشكالية في الأداء. سيتم عرض الملفات عندما تمر عليها في القائمة",
+ "Storage informations" : "معلومات التخزين",
+ "{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة",
+ "{relative}% used" : "{relative}% مستخدمة",
+ "Could not refresh storage stats" : "لم يمكن تحديث حالة التخزين",
"Transfer ownership of a file or folder" : "تحويل ملكية ملف أو مجلد",
"Choose file or folder to transfer" : "اختر ملف او مجلد لنقل الملكية",
"Change" : "تغير",
"New owner" : "مالك جديد",
+ "Search for an account" : "البحث عن حساب",
"Choose a file or folder to transfer" : "اختر ملف او مجلد لنقل الملكية",
"Transfer" : "نقل ملكية",
"Transfer {path} to {userid}" : "نقل ملكية {path} إلى {userid}",
"Invalid path selected" : "المسار او الملف غير صحيح",
"Unknown error" : "خطأ غير معروف",
"Ownership transfer request sent" : "طلب نقل الملكية أرسل بنجاح",
+ "Cannot transfer ownership of a file or folder you do not own" : "لايمكنك نقل ملكية ملف أو مجلد لا تملكه",
+ "Select file or folder to link to" : "اختر ملف أو مجلد للربط معه",
+ "Loading current folder" : "تحميل المجلد الحالي",
"No files in here" : "لا يوجد ملفات هنا ",
+ "No files or folders have been deleted yet" : "لم يتم حذف أي ملفات أو مجلدات بعدُ",
+ "Go to the previous folder" : "إنتقل للمجلد السابق",
"Go back" : "العودة",
+ "Open the files app settings" : "إفتح إعدادات تطبيق الملفات",
+ "Files settings" : "إعدادات الملفات",
+ "File cannot be accessed" : "الملف لم يمكن الوصول إليه",
+ "You might not have have permissions to view it, ask the sender to share it" : "يمكن ألاّ تكون لديك صلاحية لعرضه، أطلب من المُرسل إن يشاركه معك",
"Show hidden files" : "عرض الملفات المخفية",
"Crop image previews" : "اقتصاص صورة العروض",
"Additional settings" : "الإعدادات المتقدمة",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "نسخ الرابط",
"Use this address to access your Files via WebDAV" : "استخدم هذا العنوان للوصول للملفات عبر WebDAV",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "إذا كنت قد فعّلت خاصية \"التحقق بأكثل من عامل\" 2FA، يجب عليك تجديد كلمة سر التطبيق بالضغط هنا.",
+ "Clipboard is not available" : "الحافظة غير متاحة",
+ "WebDAV URL copied to clipboard" : "تم نسخ WebDAV URL إلى الحافظة",
"Unable to change the favourite state of the file" : "لم نستطع تغير الحالة المفضلة للملف",
"Error while loading the file data" : "خطأ اثناء تحميل بيانات الملف",
"Pick a template for {name}" : "اختر قالبا لـ {name}",
- "Cancel" : "الغاء",
"Create" : "إنشاء",
"Create a new file with the selected template" : "إنشاء ملف جديد بإستخدام القالب المحدد",
"Creating file" : "إنشاء ملف",
@@ -193,6 +231,7 @@ OC.L10N.register(
"Delete permanently" : "حذف بشكل دائم",
"Set up templates folder" : "إعداد مجلد القوالب",
"Templates" : "القوالب",
+ "Create new templates folder" : "إنشيْ مجلد جديد للقوالب",
"Unable to initialize the templates directory" : "تعذر تهيئة دليل القوالب",
"Toggle %1$s sublist" : "تبديل %1$s قائمة فرعية",
"Toggle grid view" : "تفعيل/تعطيل القائمة",
@@ -204,7 +243,7 @@ OC.L10N.register(
"Files and folders you mark as favorite will show up here" : "الملفات والمجلدات التي حددتها كامفضلة سوف تظهر هنا ",
"Shares" : "التي قمتَ بمشاركتها",
"Shared with others" : "شاركته مع الاخرين",
- "Shared with you" : "شورك معك",
+ "Shared with you" : "تمت مشاركته معك",
"Shared by link" : "شاركته باستخدام رابط مشاركة",
"Deleted shares" : "تم حذف المشاركات",
"Pending shares" : "انتظار المشاركات",
@@ -218,7 +257,9 @@ OC.L10N.register(
"Unlimited" : "غير محدود",
"Search users" : "ابحث عن مستخدمين",
"Cannot transfer ownership of a file or folder you don't own" : "لا يمكنك تحويل ملكية ملف أو مجلد ليس ملكك",
+ "Cancel" : "الغاء",
"%s used" : "%s مُستخدَم",
+ "%s%%" : "%s%%",
"%1$s of %2$s used" : "تم استخدام %1$s من %2$s",
"Settings" : "الإعدادات",
"Deleted files" : "الملفات المحذوفة"
diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json
index 3e087174c02..96d31aa6030 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -1,10 +1,11 @@
{ "translations": {
"File could not be found" : "الملف غير موجود",
- "Move or copy" : "إنقل أو انسخ",
+ "Move or copy" : "أنقل أو انسخ",
"Download" : "تنزيل",
"Delete" : "حذف ",
"Tags" : "الوسوم",
"Show list view" : "اظهر معاينات الروابط",
+ "Show grid view" : "أعرض شبكياً",
"Home" : "الرئيسية",
"Close" : "إغلاق",
"Favorites" : "المفضلة ",
@@ -57,7 +58,7 @@
"Copied {origin} and {nbfiles} other files inside {destination}" : "منسوخ {origin} و {nbfiles} ملفات اخرى داخل {destination}",
"Failed to redirect to client" : "فشل في التحويل الى العميل",
"{newName} already exists" : "{newname} موجود مسبقاً",
- "Could not rename \"{fileName}\", it does not exist any more" : "لا يمكن اعادة تسمية \"{fileName}\", لانه لم يعد موجود",
+ "Could not rename \"{fileName}\", it does not exist any more" : "لا يمكن اعادة تسمية \"{fileName}\", لانه لم يعد موجوداً",
"The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "الاسم \"{targetName}\" مستخدم من قبل في المجلد \"{dir}\". الرجاء اختيار اسم اخر.",
"Could not rename \"{fileName}\"" : "إعادة تسمية الملف \"{fileName}\" لم تنجح",
"Could not create file \"{file}\"" : "لا يمكن إنشاء الملف\"{file}\"",
@@ -74,8 +75,11 @@
"_%n file_::_%n files_" : ["لا يوجد ملفات %n","ملف %n","2 ملف %n","قليل من ملفات %n","الكثير من ملفات %n"," ملفات %n"],
"{dirs} and {files}" : "{dirs} و {files}",
"_including %n hidden_::_including %n hidden_" : ["يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي","يشمل %n مخفي"],
+ "You do not have permission to upload or create files here" : "لا يوجد تخويل برفع أو إنشاء ملفات هنا",
"_Uploading %n file_::_Uploading %n files_" : ["لا يوجد ملفات %n لتحميلها","تحميل 1 ملف %n","تحميل 2 ملف %n","يتم تحميل عدد قليل من ملفات %n","يتم تحميل عدد كبير من ملفات %n","يتم تحميل ملفات %n"],
+ "New file/folder menu" : "قائمة ملف/مجلد جديد",
"Select file range" : "حدد نطاق الملف",
+ "{used}%" : "{مُستخدَم}%",
"{used} of {quota} used" : "{used} من {quota} مستخدم",
"{used} used" : "{used} مستخدم",
"\"{name}\" is an invalid file name." : "\"{name}\" اسم ملف غير صالح للاستخدام .",
@@ -92,6 +96,7 @@
"Your storage is almost full ({usedSpacePercent}%)." : "مساحة التخزين الخاصة بك شبه ممتلئة ({usedSpacePercent}%).",
"_matches \"{filter}\"_::_match \"{filter}\"_" : ["تطابق \"{filter}\"","تطابق \"{filter}\" ","تطابقان \"{filter}\"","تطابقات \"{filter}\"","تطابقات \"{filter}\"","تطابقات \"{filter}\""],
"View in folder" : "اعرض في المجلد",
+ "Direct link was copied (only works for users who have access to this file/folder)" : "تم نسخ الرابط المباشر (تعمل فقط بالنسبة للمستخدمين الذين يملكون تخويلاً بالوصول إلى هذا الملف أو المجلد)",
"Path" : "المسار",
"_%n byte_::_%n bytes_" : ["بايت","بايت","بايت","بايت","بايت","%nبايت"],
"Favorited" : "المفضلة",
@@ -102,6 +107,8 @@
"Create new folder" : "إنشاء مجلدا جديد",
"Upload file" : "رفع ملف",
"Recent" : "الحديثة",
+ "This file has the tag {tag}" : "هذا الملف له واصفة {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "هذا الملف له واصفات {firstTags} و {lastTag}",
"Not favorited" : "ازالة من المفضلة",
"Remove from favorites" : "إزالته مِن المفضلة",
"Add to favorites" : "إضافة إلى المفضلة",
@@ -160,29 +167,60 @@
"The ownership transfer of {path} from {user} has completed." : "نقل الملكية لـ {path} من قبل {user} تمت بنجاح.",
"in %s" : "في %s",
"File Management" : "إدارة الملفات",
+ "Reload current directory" : "إعادة تحميل المجلد الحالي",
+ "Go to the \"{dir}\" directory" : "إنتقل إلى المجلد \"{dir}\"",
+ "Select the row for {displayName}" : "إختر السطر في {displayName}",
+ "Open folder {name}" : "إفتح المجلد {name}",
+ "Download file {name}" : "حم",
+ "\"{displayName}\" action executed successfully" : "\"{displayName}\" الأمر نُفّذ بنجاح",
+ "\"{displayName}\" action failed" : "\"{dispalyName}\" الأمر أخفق عند التنفيذ",
+ "Total rows summary" : "ملخص مجموع الأسطر",
"Select all" : "تحديد الكل ",
+ "Unselect all" : "إلغاء الاختيار للكل",
+ "\"{displayName}\" failed on some elements " : "\"{displayName}\" فشل في بعض العناصر",
+ "\"{displayName}\" batch action executed successfully" : "\"{displayName}\" حزمة الأوامر نُفّذت بنجاح",
+ "ascending" : "تصاعدياً",
+ "descending" : "تنازلياً",
+ "Sort list by {column} ({direction})" : "ترتيب القائمة بحسب {column} ({direction})",
+ "This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list." : "لم يمكن عرض هذه القائمة بالكامل بسبب إشكالية في الأداء. سيتم عرض الملفات عندما تمر عليها في القائمة",
+ "Storage informations" : "معلومات التخزين",
+ "{usedQuotaByte} used" : "{usedQuotaByte} مستخدمة",
+ "{relative}% used" : "{relative}% مستخدمة",
+ "Could not refresh storage stats" : "لم يمكن تحديث حالة التخزين",
"Transfer ownership of a file or folder" : "تحويل ملكية ملف أو مجلد",
"Choose file or folder to transfer" : "اختر ملف او مجلد لنقل الملكية",
"Change" : "تغير",
"New owner" : "مالك جديد",
+ "Search for an account" : "البحث عن حساب",
"Choose a file or folder to transfer" : "اختر ملف او مجلد لنقل الملكية",
"Transfer" : "نقل ملكية",
"Transfer {path} to {userid}" : "نقل ملكية {path} إلى {userid}",
"Invalid path selected" : "المسار او الملف غير صحيح",
"Unknown error" : "خطأ غير معروف",
"Ownership transfer request sent" : "طلب نقل الملكية أرسل بنجاح",
+ "Cannot transfer ownership of a file or folder you do not own" : "لايمكنك نقل ملكية ملف أو مجلد لا تملكه",
+ "Select file or folder to link to" : "اختر ملف أو مجلد للربط معه",
+ "Loading current folder" : "تحميل المجلد الحالي",
"No files in here" : "لا يوجد ملفات هنا ",
+ "No files or folders have been deleted yet" : "لم يتم حذف أي ملفات أو مجلدات بعدُ",
+ "Go to the previous folder" : "إنتقل للمجلد السابق",
"Go back" : "العودة",
+ "Open the files app settings" : "إفتح إعدادات تطبيق الملفات",
+ "Files settings" : "إعدادات الملفات",
+ "File cannot be accessed" : "الملف لم يمكن الوصول إليه",
+ "You might not have have permissions to view it, ask the sender to share it" : "يمكن ألاّ تكون لديك صلاحية لعرضه، أطلب من المُرسل إن يشاركه معك",
"Show hidden files" : "عرض الملفات المخفية",
"Crop image previews" : "اقتصاص صورة العروض",
"Additional settings" : "الإعدادات المتقدمة",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "نسخ الرابط",
"Use this address to access your Files via WebDAV" : "استخدم هذا العنوان للوصول للملفات عبر WebDAV",
+ "If you have enabled 2FA, you must create and use a new app password by clicking here." : "إذا كنت قد فعّلت خاصية \"التحقق بأكثل من عامل\" 2FA، يجب عليك تجديد كلمة سر التطبيق بالضغط هنا.",
+ "Clipboard is not available" : "الحافظة غير متاحة",
+ "WebDAV URL copied to clipboard" : "تم نسخ WebDAV URL إلى الحافظة",
"Unable to change the favourite state of the file" : "لم نستطع تغير الحالة المفضلة للملف",
"Error while loading the file data" : "خطأ اثناء تحميل بيانات الملف",
"Pick a template for {name}" : "اختر قالبا لـ {name}",
- "Cancel" : "الغاء",
"Create" : "إنشاء",
"Create a new file with the selected template" : "إنشاء ملف جديد بإستخدام القالب المحدد",
"Creating file" : "إنشاء ملف",
@@ -191,6 +229,7 @@
"Delete permanently" : "حذف بشكل دائم",
"Set up templates folder" : "إعداد مجلد القوالب",
"Templates" : "القوالب",
+ "Create new templates folder" : "إنشيْ مجلد جديد للقوالب",
"Unable to initialize the templates directory" : "تعذر تهيئة دليل القوالب",
"Toggle %1$s sublist" : "تبديل %1$s قائمة فرعية",
"Toggle grid view" : "تفعيل/تعطيل القائمة",
@@ -202,7 +241,7 @@
"Files and folders you mark as favorite will show up here" : "الملفات والمجلدات التي حددتها كامفضلة سوف تظهر هنا ",
"Shares" : "التي قمتَ بمشاركتها",
"Shared with others" : "شاركته مع الاخرين",
- "Shared with you" : "شورك معك",
+ "Shared with you" : "تمت مشاركته معك",
"Shared by link" : "شاركته باستخدام رابط مشاركة",
"Deleted shares" : "تم حذف المشاركات",
"Pending shares" : "انتظار المشاركات",
@@ -216,7 +255,9 @@
"Unlimited" : "غير محدود",
"Search users" : "ابحث عن مستخدمين",
"Cannot transfer ownership of a file or folder you don't own" : "لا يمكنك تحويل ملكية ملف أو مجلد ليس ملكك",
+ "Cancel" : "الغاء",
"%s used" : "%s مُستخدَم",
+ "%s%%" : "%s%%",
"%1$s of %2$s used" : "تم استخدام %1$s من %2$s",
"Settings" : "الإعدادات",
"Deleted files" : "الملفات المحذوفة"
diff --git a/apps/files/l10n/bg.js b/apps/files/l10n/bg.js
index ea06b4fcf53..e68f20d72d0 100644
--- a/apps/files/l10n/bg.js
+++ b/apps/files/l10n/bg.js
@@ -221,7 +221,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Не може да се промени състоянието за предпочитане на файла",
"Error while loading the file data" : "Грешка при зареждането на файловете.",
"Pick a template for {name}" : "Избор на шаблон за {name}",
- "Cancel" : "Отказ",
"Create" : "Създаване",
"Create a new file with the selected template" : "Създаване на нов файл с избрания шаблон",
"Creating file" : "Създаване на файл ",
@@ -256,6 +255,7 @@ OC.L10N.register(
"Unlimited" : "Неограничено",
"Search users" : "Търсене за потребители",
"Cannot transfer ownership of a file or folder you don't own" : "Не можете да прехвърляте собственост върху файл или папка, които не притежавате",
+ "Cancel" : "Отказ",
"%s used" : "%s използвани",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s от %2$s използвани",
diff --git a/apps/files/l10n/bg.json b/apps/files/l10n/bg.json
index 73d30fa430c..35b1c91d449 100644
--- a/apps/files/l10n/bg.json
+++ b/apps/files/l10n/bg.json
@@ -219,7 +219,6 @@
"Unable to change the favourite state of the file" : "Не може да се промени състоянието за предпочитане на файла",
"Error while loading the file data" : "Грешка при зареждането на файловете.",
"Pick a template for {name}" : "Избор на шаблон за {name}",
- "Cancel" : "Отказ",
"Create" : "Създаване",
"Create a new file with the selected template" : "Създаване на нов файл с избрания шаблон",
"Creating file" : "Създаване на файл ",
@@ -254,6 +253,7 @@
"Unlimited" : "Неограничено",
"Search users" : "Търсене за потребители",
"Cannot transfer ownership of a file or folder you don't own" : "Не можете да прехвърляте собственост върху файл или папка, които не притежавате",
+ "Cancel" : "Отказ",
"%s used" : "%s използвани",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s от %2$s използвани",
diff --git a/apps/files/l10n/br.js b/apps/files/l10n/br.js
index a6b35dd7e56..7116a5101ce 100644
--- a/apps/files/l10n/br.js
+++ b/apps/files/l10n/br.js
@@ -158,7 +158,6 @@ OC.L10N.register(
"Use this address to access your Files via WebDAV" : "Implijit ar chomlec'h-mañ evit tizhout ho restroù dre WebDAV",
"Unable to change the favourite state of the file" : "Dibosupl eo cheñch stad pennroll ar restr",
"Error while loading the file data" : "Ur fazi zo bet en ur gargañ roadennoùar restr",
- "Cancel" : "Arrest",
"Create" : "Krouiñ",
"Delete permanently" : "Lamet da viken",
"Toggle grid view" : "Gweredekat/Diweredekat an diskwel roued",
@@ -184,6 +183,7 @@ OC.L10N.register(
"Unlimited" : "Didermenet",
"Search users" : "Klask implijourien",
"Cannot transfer ownership of a file or folder you don't own" : "N'hallit ket treuzkas perc'henniezh ur restr pe un teuliad ma n'oc'h ket e berc'henn",
+ "Cancel" : "Arrest",
"%s used" : "%s implijet",
"%1$s of %2$s used" : "%1$s diwar%2$s implijet",
"Settings" : "Arventennoù",
diff --git a/apps/files/l10n/br.json b/apps/files/l10n/br.json
index 9e743e39fa9..5c1bfba14f1 100644
--- a/apps/files/l10n/br.json
+++ b/apps/files/l10n/br.json
@@ -156,7 +156,6 @@
"Use this address to access your Files via WebDAV" : "Implijit ar chomlec'h-mañ evit tizhout ho restroù dre WebDAV",
"Unable to change the favourite state of the file" : "Dibosupl eo cheñch stad pennroll ar restr",
"Error while loading the file data" : "Ur fazi zo bet en ur gargañ roadennoùar restr",
- "Cancel" : "Arrest",
"Create" : "Krouiñ",
"Delete permanently" : "Lamet da viken",
"Toggle grid view" : "Gweredekat/Diweredekat an diskwel roued",
@@ -182,6 +181,7 @@
"Unlimited" : "Didermenet",
"Search users" : "Klask implijourien",
"Cannot transfer ownership of a file or folder you don't own" : "N'hallit ket treuzkas perc'henniezh ur restr pe un teuliad ma n'oc'h ket e berc'henn",
+ "Cancel" : "Arrest",
"%s used" : "%s implijet",
"%1$s of %2$s used" : "%1$s diwar%2$s implijet",
"Settings" : "Arventennoù",
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index 08a078fd0be..ce8e4926087 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -202,7 +202,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "No s'ha pogut canviar l'estat de preferit del fitxer",
"Error while loading the file data" : "S'ha produït un error en carregar la informació del fitxer",
"Pick a template for {name}" : "Trieu una plantilla per a {name}",
- "Cancel" : "Cancel·la",
"Create" : "Crea",
"Create a new file with the selected template" : "Crea un fitxer amb la plantilla seleccionada",
"Creating file" : "S'està creant el fitxer",
@@ -236,6 +235,7 @@ OC.L10N.register(
"Unlimited" : "Il·limitat",
"Search users" : "Cerqueu usuaris",
"Cannot transfer ownership of a file or folder you don't own" : "No es pot transferir la propietat d'un fitxer o carpeta que no és vostre",
+ "Cancel" : "Cancel·la",
"%s used" : "%s en ús",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s de %2$s en ús",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 88590789e83..124de1e6462 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -200,7 +200,6 @@
"Unable to change the favourite state of the file" : "No s'ha pogut canviar l'estat de preferit del fitxer",
"Error while loading the file data" : "S'ha produït un error en carregar la informació del fitxer",
"Pick a template for {name}" : "Trieu una plantilla per a {name}",
- "Cancel" : "Cancel·la",
"Create" : "Crea",
"Create a new file with the selected template" : "Crea un fitxer amb la plantilla seleccionada",
"Creating file" : "S'està creant el fitxer",
@@ -234,6 +233,7 @@
"Unlimited" : "Il·limitat",
"Search users" : "Cerqueu usuaris",
"Cannot transfer ownership of a file or folder you don't own" : "No es pot transferir la propietat d'un fitxer o carpeta que no és vostre",
+ "Cancel" : "Cancel·la",
"%s used" : "%s en ús",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s de %2$s en ús",
diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js
index c2212d48ccc..4b50148a95b 100644
--- a/apps/files/l10n/cs.js
+++ b/apps/files/l10n/cs.js
@@ -220,7 +220,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Nedaří se změnit stav „oblíbené“ souboru",
"Error while loading the file data" : "Chyba při načítání dat souboru",
"Pick a template for {name}" : "Vyberte si šablonu pro {name}",
- "Cancel" : "Storno",
"Create" : "Vytvořit",
"Create a new file with the selected template" : "Vytvořit nový soubor ze zvolené šablony",
"Creating file" : "Vytváření souboru",
@@ -254,6 +253,7 @@ OC.L10N.register(
"Unlimited" : "Neomezeně",
"Search users" : "Hledat uživatele",
"Cannot transfer ownership of a file or folder you don't own" : "Není možné převést vlastnictví souboru či složky, které nejste vlastníky",
+ "Cancel" : "Storno",
"%s used" : "%s použito",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s z %2$s použito",
diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json
index 19e5556ba01..fb8c994d4f0 100644
--- a/apps/files/l10n/cs.json
+++ b/apps/files/l10n/cs.json
@@ -218,7 +218,6 @@
"Unable to change the favourite state of the file" : "Nedaří se změnit stav „oblíbené“ souboru",
"Error while loading the file data" : "Chyba při načítání dat souboru",
"Pick a template for {name}" : "Vyberte si šablonu pro {name}",
- "Cancel" : "Storno",
"Create" : "Vytvořit",
"Create a new file with the selected template" : "Vytvořit nový soubor ze zvolené šablony",
"Creating file" : "Vytváření souboru",
@@ -252,6 +251,7 @@
"Unlimited" : "Neomezeně",
"Search users" : "Hledat uživatele",
"Cannot transfer ownership of a file or folder you don't own" : "Není možné převést vlastnictví souboru či složky, které nejste vlastníky",
+ "Cancel" : "Storno",
"%s used" : "%s použito",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s z %2$s použito",
diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js
index 15f3b0ee4c5..c9e85ed0ac9 100644
--- a/apps/files/l10n/da.js
+++ b/apps/files/l10n/da.js
@@ -201,7 +201,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Kan ikke ændre favorittilstanden for filen",
"Error while loading the file data" : "Fejl under indlæsning af fildata",
"Pick a template for {name}" : "Vælg en skabelon til {name}",
- "Cancel" : "annuller",
"Create" : "Opret",
"Create a new file with the selected template" : "Opret en ny fil med den valgte skabelon",
"Creating file" : "Opretter fil",
@@ -235,6 +234,7 @@ OC.L10N.register(
"Unlimited" : "Ubegrænset",
"Search users" : "Søg efter brugere",
"Cannot transfer ownership of a file or folder you don't own" : "Kan ikke overføre ejerskab af en fil eller mappe, du ikke ejer",
+ "Cancel" : "annuller",
"%s used" : "%s brugt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s af %2$s brugt",
diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json
index a8b7516aee4..868d0ae5439 100644
--- a/apps/files/l10n/da.json
+++ b/apps/files/l10n/da.json
@@ -199,7 +199,6 @@
"Unable to change the favourite state of the file" : "Kan ikke ændre favorittilstanden for filen",
"Error while loading the file data" : "Fejl under indlæsning af fildata",
"Pick a template for {name}" : "Vælg en skabelon til {name}",
- "Cancel" : "annuller",
"Create" : "Opret",
"Create a new file with the selected template" : "Opret en ny fil med den valgte skabelon",
"Creating file" : "Opretter fil",
@@ -233,6 +232,7 @@
"Unlimited" : "Ubegrænset",
"Search users" : "Søg efter brugere",
"Cannot transfer ownership of a file or folder you don't own" : "Kan ikke overføre ejerskab af en fil eller mappe, du ikke ejer",
+ "Cancel" : "annuller",
"%s used" : "%s brugt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s af %2$s brugt",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 8585075c9ce..ac39d139c47 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -221,7 +221,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Der favorisierte Status der Datei konnte nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Pick a template for {name}" : "Eine Vorlage für {name} wählen",
- "Cancel" : "Abbrechen",
"Create" : "Erstellen",
"Create a new file with the selected template" : "Eine neue Datei anhand der ausgewählten Vorlage erstellen",
"Creating file" : "Datei erstellen",
@@ -255,6 +254,7 @@ OC.L10N.register(
"Unlimited" : "Unbegrenzt",
"Search users" : "Suche Benutzer",
"Cannot transfer ownership of a file or folder you don't own" : "Der Besitz einer Datei oder eines Ordners, den du nicht besitzt, kann nicht übertragen werden",
+ "Cancel" : "Abbrechen",
"%s used" : "%s verwendet",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s von %2$s verwendet",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index f578d3b919a..e3bd85ad213 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -219,7 +219,6 @@
"Unable to change the favourite state of the file" : "Der favorisierte Status der Datei konnte nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Pick a template for {name}" : "Eine Vorlage für {name} wählen",
- "Cancel" : "Abbrechen",
"Create" : "Erstellen",
"Create a new file with the selected template" : "Eine neue Datei anhand der ausgewählten Vorlage erstellen",
"Creating file" : "Datei erstellen",
@@ -253,6 +252,7 @@
"Unlimited" : "Unbegrenzt",
"Search users" : "Suche Benutzer",
"Cannot transfer ownership of a file or folder you don't own" : "Der Besitz einer Datei oder eines Ordners, den du nicht besitzt, kann nicht übertragen werden",
+ "Cancel" : "Abbrechen",
"%s used" : "%s verwendet",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s von %2$s verwendet",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 2218940afde..8ddc3b971cf 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Neuen Ordner erstellen",
"Upload file" : "Datei hochladen",
"Recent" : "Neueste",
+ "This file has the tag {tag}" : "Dies Datei hat das Schlagwort {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Dies Datei hat die Schlagworte {firstTags} und {lastTag}",
"Not favorited" : "Nicht favorisiert",
"Remove from favorites" : "Von Favoriten entfernen",
"Add to favorites" : "Zu den Favoriten hinzufügen",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Der favorisierte Status der Datei kann nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Pick a template for {name}" : "Eine Vorlage für {name} wählen",
- "Cancel" : "Abbrechen",
"Create" : "Erstellen",
"Create a new file with the selected template" : "Eine neue Datei anhand der ausgewählten Vorlage erstellen",
"Creating file" : "Datei erstellen",
@@ -256,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Unbegrenzt",
"Search users" : "Suche Benutzer",
"Cannot transfer ownership of a file or folder you don't own" : "Der Besitz einer Datei oder eines Ordners, den Sie nicht besitzen, kann nicht übertragen werden",
+ "Cancel" : "Abbrechen",
"%s used" : "%s verwendet",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s von %2$s verwendet",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index d29b712a0e0..d257fa7fddc 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -107,6 +107,8 @@
"Create new folder" : "Neuen Ordner erstellen",
"Upload file" : "Datei hochladen",
"Recent" : "Neueste",
+ "This file has the tag {tag}" : "Dies Datei hat das Schlagwort {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Dies Datei hat die Schlagworte {firstTags} und {lastTag}",
"Not favorited" : "Nicht favorisiert",
"Remove from favorites" : "Von Favoriten entfernen",
"Add to favorites" : "Zu den Favoriten hinzufügen",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Der favorisierte Status der Datei kann nicht geändert werden",
"Error while loading the file data" : "Fehler beim Laden der Datei-Daten",
"Pick a template for {name}" : "Eine Vorlage für {name} wählen",
- "Cancel" : "Abbrechen",
"Create" : "Erstellen",
"Create a new file with the selected template" : "Eine neue Datei anhand der ausgewählten Vorlage erstellen",
"Creating file" : "Datei erstellen",
@@ -254,6 +255,7 @@
"Unlimited" : "Unbegrenzt",
"Search users" : "Suche Benutzer",
"Cannot transfer ownership of a file or folder you don't own" : "Der Besitz einer Datei oder eines Ordners, den Sie nicht besitzen, kann nicht übertragen werden",
+ "Cancel" : "Abbrechen",
"%s used" : "%s verwendet",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s von %2$s verwendet",
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index 54ca0d31035..ce96bfb1b20 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Δημιουργία νέου φακέλου",
"Upload file" : "Μεταφόρτωση αρχείου",
"Recent" : "Πρόσφατα",
+ "This file has the tag {tag}" : "Αυτό το αρχείο έχει την ετικέτα {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Αυτό το αρχείο έχει τις ετικέτες {firstTags} και {lastTag}",
"Not favorited" : "Δεν είναι αγαπημένο",
"Remove from favorites" : "Αφαίρεση από τα αγαπημένα",
"Add to favorites" : "Προσθήκη στα αγαπημένα",
@@ -208,7 +210,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Αδυναμία αλλαγής αγαπημένης κατάστασης αρχείου",
"Error while loading the file data" : "Σφάλμα κατά την φόρτωση αρχείου δεδομένων",
"Pick a template for {name}" : "Επιλέξτε ένα πρότυπο για {name}",
- "Cancel" : "Ακύρωση",
"Create" : "Δημιουργία",
"Create a new file with the selected template" : "Δημιουργήστε ένα νέο αρχείο με το επιλεγμένο πρότυπο",
"Creating file" : "Δημιουργία αρχείου",
@@ -242,6 +243,7 @@ OC.L10N.register(
"Unlimited" : "Απεριόριστο",
"Search users" : "Αναζήτηση χρηστών",
"Cannot transfer ownership of a file or folder you don't own" : "Δεν μπορεί να μεταβιβαστεί η κυριότητα αρχείου ή φακέλου που δεν σας ανήκει",
+ "Cancel" : "Ακύρωση",
"%s used" : "%s σε χρήση",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "χρησιμοποιούνται %1$s από %2$s",
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index e19ca8bc181..7ba20b4b1ee 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -107,6 +107,8 @@
"Create new folder" : "Δημιουργία νέου φακέλου",
"Upload file" : "Μεταφόρτωση αρχείου",
"Recent" : "Πρόσφατα",
+ "This file has the tag {tag}" : "Αυτό το αρχείο έχει την ετικέτα {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Αυτό το αρχείο έχει τις ετικέτες {firstTags} και {lastTag}",
"Not favorited" : "Δεν είναι αγαπημένο",
"Remove from favorites" : "Αφαίρεση από τα αγαπημένα",
"Add to favorites" : "Προσθήκη στα αγαπημένα",
@@ -206,7 +208,6 @@
"Unable to change the favourite state of the file" : "Αδυναμία αλλαγής αγαπημένης κατάστασης αρχείου",
"Error while loading the file data" : "Σφάλμα κατά την φόρτωση αρχείου δεδομένων",
"Pick a template for {name}" : "Επιλέξτε ένα πρότυπο για {name}",
- "Cancel" : "Ακύρωση",
"Create" : "Δημιουργία",
"Create a new file with the selected template" : "Δημιουργήστε ένα νέο αρχείο με το επιλεγμένο πρότυπο",
"Creating file" : "Δημιουργία αρχείου",
@@ -240,6 +241,7 @@
"Unlimited" : "Απεριόριστο",
"Search users" : "Αναζήτηση χρηστών",
"Cannot transfer ownership of a file or folder you don't own" : "Δεν μπορεί να μεταβιβαστεί η κυριότητα αρχείου ή φακέλου που δεν σας ανήκει",
+ "Cancel" : "Ακύρωση",
"%s used" : "%s σε χρήση",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "χρησιμοποιούνται %1$s από %2$s",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index c73292f069f..c8b5a979b76 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Create new folder",
"Upload file" : "Upload file",
"Recent" : "Recent",
+ "This file has the tag {tag}" : "This file has the tag {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "This file has the tags {firstTags} and {lastTag}",
"Not favorited" : "Not favourited",
"Remove from favorites" : "Remove from favourites",
"Add to favorites" : "Add to favourites",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Unable to change the favourite state of the file",
"Error while loading the file data" : "Error while loading the file data",
"Pick a template for {name}" : "Pick a template for {name}",
- "Cancel" : "Cancel",
"Create" : "Create",
"Create a new file with the selected template" : "Create a new file with the selected template",
"Creating file" : "Creating file",
@@ -256,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Unlimited",
"Search users" : "Search users",
"Cannot transfer ownership of a file or folder you don't own" : "Cannot transfer ownership of a file or folder you don't own",
+ "Cancel" : "Cancel",
"%s used" : "%s used",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s of %2$s used",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index c74a72b87db..4878400eeb3 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -107,6 +107,8 @@
"Create new folder" : "Create new folder",
"Upload file" : "Upload file",
"Recent" : "Recent",
+ "This file has the tag {tag}" : "This file has the tag {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "This file has the tags {firstTags} and {lastTag}",
"Not favorited" : "Not favourited",
"Remove from favorites" : "Remove from favourites",
"Add to favorites" : "Add to favourites",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Unable to change the favourite state of the file",
"Error while loading the file data" : "Error while loading the file data",
"Pick a template for {name}" : "Pick a template for {name}",
- "Cancel" : "Cancel",
"Create" : "Create",
"Create a new file with the selected template" : "Create a new file with the selected template",
"Creating file" : "Creating file",
@@ -254,6 +255,7 @@
"Unlimited" : "Unlimited",
"Search users" : "Search users",
"Cannot transfer ownership of a file or folder you don't own" : "Cannot transfer ownership of a file or folder you don't own",
+ "Cancel" : "Cancel",
"%s used" : "%s used",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s of %2$s used",
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
index 2aa6a901ed4..4554a5e3d84 100644
--- a/apps/files/l10n/eo.js
+++ b/apps/files/l10n/eo.js
@@ -141,7 +141,6 @@ OC.L10N.register(
"Copy to clipboard" : "Kopii tondejen",
"Unable to change the favourite state of the file" : "Ne eblas ŝanĝi la staton pri pliŝatataĵo de la dosiero",
"Error while loading the file data" : "Eraro dum ŝargo de la dosierdatumoj",
- "Cancel" : "Nuligi",
"Create" : "Krei",
"Creating file" : "Kreante dosieron",
"Delete permanently" : "Forigi por ĉiam",
@@ -167,6 +166,7 @@ OC.L10N.register(
"Copied!" : "Kopiita!",
"Unlimited" : "Senlima",
"Search users" : "Serĉi uzantojn",
+ "Cancel" : "Nuligi",
"%s used" : "%s uzataj",
"%1$s of %2$s used" : "%1$s uzataj el %2$s",
"Settings" : "Agordo",
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
index 81d0d3f9ace..d5c4652f9c7 100644
--- a/apps/files/l10n/eo.json
+++ b/apps/files/l10n/eo.json
@@ -139,7 +139,6 @@
"Copy to clipboard" : "Kopii tondejen",
"Unable to change the favourite state of the file" : "Ne eblas ŝanĝi la staton pri pliŝatataĵo de la dosiero",
"Error while loading the file data" : "Eraro dum ŝargo de la dosierdatumoj",
- "Cancel" : "Nuligi",
"Create" : "Krei",
"Creating file" : "Kreante dosieron",
"Delete permanently" : "Forigi por ĉiam",
@@ -165,6 +164,7 @@
"Copied!" : "Kopiita!",
"Unlimited" : "Senlima",
"Search users" : "Serĉi uzantojn",
+ "Cancel" : "Nuligi",
"%s used" : "%s uzataj",
"%1$s of %2$s used" : "%1$s uzataj el %2$s",
"Settings" : "Agordo",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 61432fe570e..af4b2a6b0a4 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Crear nueva carpeta",
"Upload file" : "Subir archivo",
"Recent" : "Reciente",
+ "This file has the tag {tag}" : "Este archivo tiene la etiqueta {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Este archivo tiene las etiquetas {firstTags} y {lastTag}",
"Not favorited" : "Quitado como favorito",
"Remove from favorites" : "Quitar de favoritos",
"Add to favorites" : "Añadir a favoritos",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
"Error while loading the file data" : "Error al cargar los datos del archivo",
"Pick a template for {name}" : "Elija una plantilla para {name}",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Create a new file with the selected template" : "Crear un nuevo archivo con la plantilla seleccionada",
"Creating file" : "Creando el archivo",
@@ -256,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Ilimitado",
"Search users" : "Buscar usuarios",
"Cannot transfer ownership of a file or folder you don't own" : "No se puede transferir la propiedad de un archivo o carpeta que no te pertenece",
+ "Cancel" : "Cancelar",
"%s used" : "usado %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s de %2$s usados",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index cabb9dca6c3..ea5a76ac389 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -107,6 +107,8 @@
"Create new folder" : "Crear nueva carpeta",
"Upload file" : "Subir archivo",
"Recent" : "Reciente",
+ "This file has the tag {tag}" : "Este archivo tiene la etiqueta {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Este archivo tiene las etiquetas {firstTags} y {lastTag}",
"Not favorited" : "Quitado como favorito",
"Remove from favorites" : "Quitar de favoritos",
"Add to favorites" : "Añadir a favoritos",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
"Error while loading the file data" : "Error al cargar los datos del archivo",
"Pick a template for {name}" : "Elija una plantilla para {name}",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Create a new file with the selected template" : "Crear un nuevo archivo con la plantilla seleccionada",
"Creating file" : "Creando el archivo",
@@ -254,6 +255,7 @@
"Unlimited" : "Ilimitado",
"Search users" : "Buscar usuarios",
"Cannot transfer ownership of a file or folder you don't own" : "No se puede transferir la propiedad de un archivo o carpeta que no te pertenece",
+ "Cancel" : "Cancelar",
"%s used" : "usado %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s de %2$s usados",
diff --git a/apps/files/l10n/es_419.js b/apps/files/l10n/es_419.js
index 3a0784faeb5..76521b9525a 100644
--- a/apps/files/l10n/es_419.js
+++ b/apps/files/l10n/es_419.js
@@ -113,7 +113,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -134,6 +133,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_419.json b/apps/files/l10n/es_419.json
index 70318c494c8..f8803d27edd 100644
--- a/apps/files/l10n/es_419.json
+++ b/apps/files/l10n/es_419.json
@@ -111,7 +111,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -132,6 +131,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_AR.js b/apps/files/l10n/es_AR.js
index 86794ed31bd..8bbd7bdabb1 100644
--- a/apps/files/l10n/es_AR.js
+++ b/apps/files/l10n/es_AR.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Toggle grid view" : "Vista de cuadrícula",
@@ -141,6 +140,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_AR.json b/apps/files/l10n/es_AR.json
index ea4c9750d26..927e150c6e8 100644
--- a/apps/files/l10n/es_AR.json
+++ b/apps/files/l10n/es_AR.json
@@ -117,7 +117,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Toggle grid view" : "Vista de cuadrícula",
@@ -139,6 +138,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_CL.js b/apps/files/l10n/es_CL.js
index db3af0280b8..642069ebc0c 100644
--- a/apps/files/l10n/es_CL.js
+++ b/apps/files/l10n/es_CL.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -145,6 +144,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_CL.json b/apps/files/l10n/es_CL.json
index 9add85d18e8..f82a0e15be8 100644
--- a/apps/files/l10n/es_CL.json
+++ b/apps/files/l10n/es_CL.json
@@ -122,7 +122,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -143,6 +142,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_CO.js b/apps/files/l10n/es_CO.js
index bd96f0dc528..388687abb7d 100644
--- a/apps/files/l10n/es_CO.js
+++ b/apps/files/l10n/es_CO.js
@@ -124,7 +124,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -145,6 +144,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_CO.json b/apps/files/l10n/es_CO.json
index cdd0dac75a3..cc2cc974c24 100644
--- a/apps/files/l10n/es_CO.json
+++ b/apps/files/l10n/es_CO.json
@@ -122,7 +122,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -143,6 +142,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_CR.js b/apps/files/l10n/es_CR.js
index 6fe6a750b3d..2ca781ebdbe 100644
--- a/apps/files/l10n/es_CR.js
+++ b/apps/files/l10n/es_CR.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -144,6 +143,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_CR.json b/apps/files/l10n/es_CR.json
index 9de0f243f7b..92641adb459 100644
--- a/apps/files/l10n/es_CR.json
+++ b/apps/files/l10n/es_CR.json
@@ -121,7 +121,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -142,6 +141,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_DO.js b/apps/files/l10n/es_DO.js
index 6fe6a750b3d..2ca781ebdbe 100644
--- a/apps/files/l10n/es_DO.js
+++ b/apps/files/l10n/es_DO.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -144,6 +143,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_DO.json b/apps/files/l10n/es_DO.json
index 9de0f243f7b..92641adb459 100644
--- a/apps/files/l10n/es_DO.json
+++ b/apps/files/l10n/es_DO.json
@@ -121,7 +121,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -142,6 +141,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js
index 6fe6a750b3d..2ca781ebdbe 100644
--- a/apps/files/l10n/es_EC.js
+++ b/apps/files/l10n/es_EC.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -144,6 +143,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json
index 9de0f243f7b..92641adb459 100644
--- a/apps/files/l10n/es_EC.json
+++ b/apps/files/l10n/es_EC.json
@@ -121,7 +121,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -142,6 +141,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_GT.js b/apps/files/l10n/es_GT.js
index 6fe6a750b3d..2ca781ebdbe 100644
--- a/apps/files/l10n/es_GT.js
+++ b/apps/files/l10n/es_GT.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -144,6 +143,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_GT.json b/apps/files/l10n/es_GT.json
index 9de0f243f7b..92641adb459 100644
--- a/apps/files/l10n/es_GT.json
+++ b/apps/files/l10n/es_GT.json
@@ -121,7 +121,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -142,6 +141,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_HN.js b/apps/files/l10n/es_HN.js
index 3a0784faeb5..76521b9525a 100644
--- a/apps/files/l10n/es_HN.js
+++ b/apps/files/l10n/es_HN.js
@@ -113,7 +113,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -134,6 +133,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_HN.json b/apps/files/l10n/es_HN.json
index 70318c494c8..f8803d27edd 100644
--- a/apps/files/l10n/es_HN.json
+++ b/apps/files/l10n/es_HN.json
@@ -111,7 +111,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -132,6 +131,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index ffa4fd1c1c4..ea29275c5a9 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -197,7 +197,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
"Error while loading the file data" : "Error al cargar los datos del archivo",
"Pick a template for {name}" : "Elija una plantilla para {name}",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Create a new file with the selected template" : "Crear un nuevo archivo con la plantilla seleccionada",
"Creating file" : "Creando el archivo",
@@ -231,6 +230,7 @@ OC.L10N.register(
"Unlimited" : "Ilimitado",
"Search users" : "Buscar usuarios",
"Cannot transfer ownership of a file or folder you don't own" : "No se puede transferir la propiedad de un archivo o carpeta que no te pertenece",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s de %2$s usados",
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index c7d34cc6526..d598f0659be 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -195,7 +195,6 @@
"Unable to change the favourite state of the file" : "No se ha podido cambiar el estado de favorito del fichero",
"Error while loading the file data" : "Error al cargar los datos del archivo",
"Pick a template for {name}" : "Elija una plantilla para {name}",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Create a new file with the selected template" : "Crear un nuevo archivo con la plantilla seleccionada",
"Creating file" : "Creando el archivo",
@@ -229,6 +228,7 @@
"Unlimited" : "Ilimitado",
"Search users" : "Buscar usuarios",
"Cannot transfer ownership of a file or folder you don't own" : "No se puede transferir la propiedad de un archivo o carpeta que no te pertenece",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s de %2$s usados",
diff --git a/apps/files/l10n/es_NI.js b/apps/files/l10n/es_NI.js
index 3a0784faeb5..76521b9525a 100644
--- a/apps/files/l10n/es_NI.js
+++ b/apps/files/l10n/es_NI.js
@@ -113,7 +113,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -134,6 +133,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_NI.json b/apps/files/l10n/es_NI.json
index 70318c494c8..f8803d27edd 100644
--- a/apps/files/l10n/es_NI.json
+++ b/apps/files/l10n/es_NI.json
@@ -111,7 +111,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -132,6 +131,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PA.js b/apps/files/l10n/es_PA.js
index 3a0784faeb5..76521b9525a 100644
--- a/apps/files/l10n/es_PA.js
+++ b/apps/files/l10n/es_PA.js
@@ -113,7 +113,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -134,6 +133,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PA.json b/apps/files/l10n/es_PA.json
index 70318c494c8..f8803d27edd 100644
--- a/apps/files/l10n/es_PA.json
+++ b/apps/files/l10n/es_PA.json
@@ -111,7 +111,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -132,6 +131,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PE.js b/apps/files/l10n/es_PE.js
index 2122877aa0c..d5ccdc3bd83 100644
--- a/apps/files/l10n/es_PE.js
+++ b/apps/files/l10n/es_PE.js
@@ -137,7 +137,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -158,6 +157,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PE.json b/apps/files/l10n/es_PE.json
index 5f1bb1ea4dc..03c64a6267c 100644
--- a/apps/files/l10n/es_PE.json
+++ b/apps/files/l10n/es_PE.json
@@ -135,7 +135,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -156,6 +155,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PR.js b/apps/files/l10n/es_PR.js
index 3a0784faeb5..76521b9525a 100644
--- a/apps/files/l10n/es_PR.js
+++ b/apps/files/l10n/es_PR.js
@@ -113,7 +113,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -134,6 +133,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PR.json b/apps/files/l10n/es_PR.json
index 70318c494c8..f8803d27edd 100644
--- a/apps/files/l10n/es_PR.json
+++ b/apps/files/l10n/es_PR.json
@@ -111,7 +111,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -132,6 +131,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PY.js b/apps/files/l10n/es_PY.js
index 8ff7c0ac440..b32d6591028 100644
--- a/apps/files/l10n/es_PY.js
+++ b/apps/files/l10n/es_PY.js
@@ -128,7 +128,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -149,6 +148,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_PY.json b/apps/files/l10n/es_PY.json
index 7dac72662cc..3b4d428e73a 100644
--- a/apps/files/l10n/es_PY.json
+++ b/apps/files/l10n/es_PY.json
@@ -126,7 +126,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -147,6 +146,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_SV.js b/apps/files/l10n/es_SV.js
index 6fe6a750b3d..2ca781ebdbe 100644
--- a/apps/files/l10n/es_SV.js
+++ b/apps/files/l10n/es_SV.js
@@ -123,7 +123,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -144,6 +143,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_SV.json b/apps/files/l10n/es_SV.json
index 9de0f243f7b..92641adb459 100644
--- a/apps/files/l10n/es_SV.json
+++ b/apps/files/l10n/es_SV.json
@@ -121,7 +121,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -142,6 +141,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_UY.js b/apps/files/l10n/es_UY.js
index 3a0784faeb5..76521b9525a 100644
--- a/apps/files/l10n/es_UY.js
+++ b/apps/files/l10n/es_UY.js
@@ -113,7 +113,6 @@ OC.L10N.register(
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -134,6 +133,7 @@ OC.L10N.register(
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/es_UY.json b/apps/files/l10n/es_UY.json
index 70318c494c8..f8803d27edd 100644
--- a/apps/files/l10n/es_UY.json
+++ b/apps/files/l10n/es_UY.json
@@ -111,7 +111,6 @@
"Additional settings" : "Configuraciones adicionales",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar al portapapeles",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Delete permanently" : "Borrar permanentemente",
"Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!",
@@ -132,6 +131,7 @@
"New" : "Nuevo",
"Copied!" : "¡Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%1$s of %2$s used" : "%1$s de %2$s usados",
"Settings" : "Configuraciones ",
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index a718b68fa24..0f3ec22e3ee 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -120,7 +120,6 @@ OC.L10N.register(
"Additional settings" : "Lisaseaded",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Kopeeri lõikepuhvrisse",
- "Cancel" : "Loobu",
"Create" : "Loo",
"Delete permanently" : "Kustuta jäädavalt",
"Templates" : "Mallid",
@@ -144,6 +143,7 @@ OC.L10N.register(
"New" : "Uus",
"Copied!" : "Kopeeritud!",
"Unlimited" : "Piiramatult",
+ "Cancel" : "Loobu",
"%s used" : "Kasutatud %s",
"%1$s of %2$s used" : "Kasutatud %1$s/%2$s",
"Settings" : "Seaded",
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 374f6778135..265adeb39e2 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -118,7 +118,6 @@
"Additional settings" : "Lisaseaded",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Kopeeri lõikepuhvrisse",
- "Cancel" : "Loobu",
"Create" : "Loo",
"Delete permanently" : "Kustuta jäädavalt",
"Templates" : "Mallid",
@@ -142,6 +141,7 @@
"New" : "Uus",
"Copied!" : "Kopeeritud!",
"Unlimited" : "Piiramatult",
+ "Cancel" : "Loobu",
"%s used" : "Kasutatud %s",
"%1$s of %2$s used" : "Kasutatud %1$s/%2$s",
"Settings" : "Seaded",
diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js
index 69a8b9d2666..4aee05f80ce 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -221,7 +221,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Ezin da fitxategiaren gogoko egoera aldatu",
"Error while loading the file data" : "Errorea fitxategiaren datuak kargatzerakoan",
"Pick a template for {name}" : "Hautatu {name}(r)entzako txantiloia",
- "Cancel" : "Utzi",
"Create" : "Sortu",
"Create a new file with the selected template" : "Sortu fitxategi berria hautatutako txantiloiarekin",
"Creating file" : "Fitxategia sortzen",
@@ -255,6 +254,7 @@ OC.L10N.register(
"Unlimited" : "Mugarik gabe",
"Search users" : "Bilatu erabiltzaileak",
"Cannot transfer ownership of a file or folder you don't own" : "Ezin da zurea ez den fitxategi edo karpeta baten jabetza transferitu",
+ "Cancel" : "Utzi",
"%s used" : "%s erabilita",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s / %2$s erabilita",
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index 8fffcf5ebe6..874fe08ca7a 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -219,7 +219,6 @@
"Unable to change the favourite state of the file" : "Ezin da fitxategiaren gogoko egoera aldatu",
"Error while loading the file data" : "Errorea fitxategiaren datuak kargatzerakoan",
"Pick a template for {name}" : "Hautatu {name}(r)entzako txantiloia",
- "Cancel" : "Utzi",
"Create" : "Sortu",
"Create a new file with the selected template" : "Sortu fitxategi berria hautatutako txantiloiarekin",
"Creating file" : "Fitxategia sortzen",
@@ -253,6 +252,7 @@
"Unlimited" : "Mugarik gabe",
"Search users" : "Bilatu erabiltzaileak",
"Cannot transfer ownership of a file or folder you don't own" : "Ezin da zurea ez den fitxategi edo karpeta baten jabetza transferitu",
+ "Cancel" : "Utzi",
"%s used" : "%s erabilita",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s / %2$s erabilita",
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index b2ae5195730..a026287c102 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -114,7 +114,6 @@ OC.L10N.register(
"WebDAV" : "WebDAV",
"Copy to clipboard" : "رونوشت به تخته‌گیره",
"Clipboard is not available" : "تخته گیره موحود نیست",
- "Cancel" : "لغو",
"Create" : "ساخت",
"Delete permanently" : "حذف قطعی",
"Templates" : "قالب‌ها",
@@ -139,6 +138,7 @@ OC.L10N.register(
"New" : "جدید",
"Copied!" : "کپی انجام شد!",
"Unlimited" : "نامحدود",
+ "Cancel" : "لغو",
"%1$s of %2$s used" : "%1$s از %2$s استفاده شده ",
"Settings" : "تنظیمات",
"Deleted files" : "پرونده‌های حذف شده"
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index 893b45a33e0..74e4d24e660 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -112,7 +112,6 @@
"WebDAV" : "WebDAV",
"Copy to clipboard" : "رونوشت به تخته‌گیره",
"Clipboard is not available" : "تخته گیره موحود نیست",
- "Cancel" : "لغو",
"Create" : "ساخت",
"Delete permanently" : "حذف قطعی",
"Templates" : "قالب‌ها",
@@ -137,6 +136,7 @@
"New" : "جدید",
"Copied!" : "کپی انجام شد!",
"Unlimited" : "نامحدود",
+ "Cancel" : "لغو",
"%1$s of %2$s used" : "%1$s از %2$s استفاده شده ",
"Settings" : "تنظیمات",
"Deleted files" : "پرونده‌های حذف شده"
diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js
index 03cec28b4a7..49e98a8e496 100644
--- a/apps/files/l10n/fi.js
+++ b/apps/files/l10n/fi.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Luo uusi kansio",
"Upload file" : "Lähetä tiedosto",
"Recent" : "Viimeaikaiset",
+ "This file has the tag {tag}" : "Tällä tiedostolla on tunniste {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Tällä tiedostolla on tunnisteet {firstTags} ja {lastTag}",
"Not favorited" : "Ei suosikeissa",
"Remove from favorites" : "Poista suosikeista",
"Add to favorites" : "Lisää suosikkeihin",
@@ -172,6 +174,11 @@ OC.L10N.register(
"Open folder {name}" : "Avaa kansio {name}",
"Download file {name}" : "Lataa tiedosto {name}",
"Select all" : "Valitse kaikki",
+ "Unselect all" : "Poista valinnat",
+ "ascending" : "nousevasti",
+ "descending" : "laskevasti",
+ "Sort list by {column} ({direction})" : "Järjestä luettelo sarakkeen {column} mukaan ({direction})",
+ "This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list." : "Tätä luetteloa ei ole esitetty täysin suorituskykyyn liittyvistä syistä. Tiedostot esitetään sitä mukaa, kun selaat luetteloa.",
"Storage informations" : "Tallennustilan tietoja",
"{usedQuotaByte} used" : "{usedQuotaByte} käytetty",
"{relative}% used" : "{relative} % käytetty",
@@ -210,7 +217,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Suosikki-tilan muuttaminen epäonnistui.",
"Error while loading the file data" : "Virhe tiedostoa ladatessa",
"Pick a template for {name}" : "Valtise mallipohja tiedostolle {name}",
- "Cancel" : "Peruuta",
"Create" : "Luo",
"Create a new file with the selected template" : "Luo uusi tiedosto valitulla mallipohjalla",
"Creating file" : "Luodaan tiedostoa",
@@ -219,6 +225,7 @@ OC.L10N.register(
"Delete permanently" : "Poista pysyvästi",
"Set up templates folder" : "Aseta mallipohjien kansio",
"Templates" : "Mallipohjat",
+ "Create new templates folder" : "Luo uusi mallipohjien kansio",
"Unable to initialize the templates directory" : "Mallipohjien kansiota ei voitu alustaa",
"Toggle grid view" : "Ruudukkonäkymä päälle/pois",
"Upload some content or sync with your devices!" : "Lähetä tiedostoja tai synkronoi sisältö laitteidesi kanssa!",
@@ -243,6 +250,7 @@ OC.L10N.register(
"Unlimited" : "Rajoittamaton",
"Search users" : "Etsi käyttäjistä",
"Cannot transfer ownership of a file or folder you don't own" : "Et voi siirtää sellaisen tiedoston tai kansion omistajuutta, jota et itse omista",
+ "Cancel" : "Peruuta",
"%s used" : "%s käytetty",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s/%2$s käytetty",
diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json
index 2fa1df12d25..46efe71c484 100644
--- a/apps/files/l10n/fi.json
+++ b/apps/files/l10n/fi.json
@@ -107,6 +107,8 @@
"Create new folder" : "Luo uusi kansio",
"Upload file" : "Lähetä tiedosto",
"Recent" : "Viimeaikaiset",
+ "This file has the tag {tag}" : "Tällä tiedostolla on tunniste {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Tällä tiedostolla on tunnisteet {firstTags} ja {lastTag}",
"Not favorited" : "Ei suosikeissa",
"Remove from favorites" : "Poista suosikeista",
"Add to favorites" : "Lisää suosikkeihin",
@@ -170,6 +172,11 @@
"Open folder {name}" : "Avaa kansio {name}",
"Download file {name}" : "Lataa tiedosto {name}",
"Select all" : "Valitse kaikki",
+ "Unselect all" : "Poista valinnat",
+ "ascending" : "nousevasti",
+ "descending" : "laskevasti",
+ "Sort list by {column} ({direction})" : "Järjestä luettelo sarakkeen {column} mukaan ({direction})",
+ "This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list." : "Tätä luetteloa ei ole esitetty täysin suorituskykyyn liittyvistä syistä. Tiedostot esitetään sitä mukaa, kun selaat luetteloa.",
"Storage informations" : "Tallennustilan tietoja",
"{usedQuotaByte} used" : "{usedQuotaByte} käytetty",
"{relative}% used" : "{relative} % käytetty",
@@ -208,7 +215,6 @@
"Unable to change the favourite state of the file" : "Suosikki-tilan muuttaminen epäonnistui.",
"Error while loading the file data" : "Virhe tiedostoa ladatessa",
"Pick a template for {name}" : "Valtise mallipohja tiedostolle {name}",
- "Cancel" : "Peruuta",
"Create" : "Luo",
"Create a new file with the selected template" : "Luo uusi tiedosto valitulla mallipohjalla",
"Creating file" : "Luodaan tiedostoa",
@@ -217,6 +223,7 @@
"Delete permanently" : "Poista pysyvästi",
"Set up templates folder" : "Aseta mallipohjien kansio",
"Templates" : "Mallipohjat",
+ "Create new templates folder" : "Luo uusi mallipohjien kansio",
"Unable to initialize the templates directory" : "Mallipohjien kansiota ei voitu alustaa",
"Toggle grid view" : "Ruudukkonäkymä päälle/pois",
"Upload some content or sync with your devices!" : "Lähetä tiedostoja tai synkronoi sisältö laitteidesi kanssa!",
@@ -241,6 +248,7 @@
"Unlimited" : "Rajoittamaton",
"Search users" : "Etsi käyttäjistä",
"Cannot transfer ownership of a file or folder you don't own" : "Et voi siirtää sellaisen tiedoston tai kansion omistajuutta, jota et itse omista",
+ "Cancel" : "Peruuta",
"%s used" : "%s käytetty",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s/%2$s käytetty",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index fafff6d98e6..6862d5daced 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Créer un nouveau dossier",
"Upload file" : "Téléverser un fichier",
"Recent" : "Récent",
+ "This file has the tag {tag}" : "Ce fichier a l'étiquette {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Ce fichier a les étiquettes {firstTags} et {lastTag}",
"Not favorited" : "Non marqué comme favori",
"Remove from favorites" : "Retirer des favoris",
"Add to favorites" : "Ajouter aux favoris",
@@ -174,6 +176,7 @@ OC.L10N.register(
"Download file {name}" : "Télécharger le fichier {name}",
"\"{displayName}\" action executed successfully" : "Action \"{displayName}\" exécutée avec succès",
"\"{displayName}\" action failed" : "Échec de l'action \"{displayName}\"",
+ "Total rows summary" : "Récapitulatif du nombre total de lignes",
"Select all" : "Tout sélectionner",
"Unselect all" : "Tout désélectionner",
"\"{displayName}\" failed on some elements " : "\"{displayName}\" a échoué pour avec certains éléments",
@@ -220,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Impossible de modifier l'état favori du fichier",
"Error while loading the file data" : "Erreur lors du chargement du fichier de données",
"Pick a template for {name}" : "Choisissez un modèle pour {name}",
- "Cancel" : "Annuler",
"Create" : "Créer",
"Create a new file with the selected template" : "Créer un nouveau fichier avec le modèle sélectionné",
"Creating file" : "Créer un fichier",
@@ -229,6 +231,7 @@ OC.L10N.register(
"Delete permanently" : "Supprimer définitivement",
"Set up templates folder" : "Configurer le dossier des modèles",
"Templates" : "Modèles",
+ "Create new templates folder" : "Créer un nouveau dossier de modèles",
"Unable to initialize the templates directory" : "Impossible d'initialiser le dossier des modèles",
"Toggle %1$s sublist" : "Basculer %1$s sous-liste",
"Toggle grid view" : "Activer/Désactiver l'affichage mosaïque",
@@ -254,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Illimité",
"Search users" : "Rechercher des utilisateurs",
"Cannot transfer ownership of a file or folder you don't own" : "Impossible de transférer la propriété d’un fichier ou d’un dossier dont vous n'êtes pas le propriétaire",
+ "Cancel" : "Annuler",
"%s used" : "%s utilisés",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s utilisés sur %2$s",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 6486b97d32e..8eebead1135 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -107,6 +107,8 @@
"Create new folder" : "Créer un nouveau dossier",
"Upload file" : "Téléverser un fichier",
"Recent" : "Récent",
+ "This file has the tag {tag}" : "Ce fichier a l'étiquette {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Ce fichier a les étiquettes {firstTags} et {lastTag}",
"Not favorited" : "Non marqué comme favori",
"Remove from favorites" : "Retirer des favoris",
"Add to favorites" : "Ajouter aux favoris",
@@ -172,6 +174,7 @@
"Download file {name}" : "Télécharger le fichier {name}",
"\"{displayName}\" action executed successfully" : "Action \"{displayName}\" exécutée avec succès",
"\"{displayName}\" action failed" : "Échec de l'action \"{displayName}\"",
+ "Total rows summary" : "Récapitulatif du nombre total de lignes",
"Select all" : "Tout sélectionner",
"Unselect all" : "Tout désélectionner",
"\"{displayName}\" failed on some elements " : "\"{displayName}\" a échoué pour avec certains éléments",
@@ -218,7 +221,6 @@
"Unable to change the favourite state of the file" : "Impossible de modifier l'état favori du fichier",
"Error while loading the file data" : "Erreur lors du chargement du fichier de données",
"Pick a template for {name}" : "Choisissez un modèle pour {name}",
- "Cancel" : "Annuler",
"Create" : "Créer",
"Create a new file with the selected template" : "Créer un nouveau fichier avec le modèle sélectionné",
"Creating file" : "Créer un fichier",
@@ -227,6 +229,7 @@
"Delete permanently" : "Supprimer définitivement",
"Set up templates folder" : "Configurer le dossier des modèles",
"Templates" : "Modèles",
+ "Create new templates folder" : "Créer un nouveau dossier de modèles",
"Unable to initialize the templates directory" : "Impossible d'initialiser le dossier des modèles",
"Toggle %1$s sublist" : "Basculer %1$s sous-liste",
"Toggle grid view" : "Activer/Désactiver l'affichage mosaïque",
@@ -252,6 +255,7 @@
"Unlimited" : "Illimité",
"Search users" : "Rechercher des utilisateurs",
"Cannot transfer ownership of a file or folder you don't own" : "Impossible de transférer la propriété d’un fichier ou d’un dossier dont vous n'êtes pas le propriétaire",
+ "Cancel" : "Annuler",
"%s used" : "%s utilisés",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s utilisés sur %2$s",
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index c67904a9d01..793a623455e 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Crear un cartafol novo",
"Upload file" : "Enviar ficheiro",
"Recent" : "Recente",
+ "This file has the tag {tag}" : "Este ficheiro ten a etiqueta {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Este ficheiro ten as etiquetas {firstTags} e {lastTag}",
"Not favorited" : "Non marcado como favorito",
"Remove from favorites" : "Retirar de favoritos",
"Add to favorites" : "Engadir a favoritos",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Non é posíbel cambiar o estado favorito do ficheiro",
"Error while loading the file data" : "Produciuse un erro ao cargar os datos do ficheiro",
"Pick a template for {name}" : "Escolla un modelo para {name}",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Create a new file with the selected template" : "Crear un novo ficheiro co modelo seleccionado",
"Creating file" : "Creando o ficheiro",
@@ -230,6 +231,7 @@ OC.L10N.register(
"Delete permanently" : "Eliminar de xeito permanente",
"Set up templates folder" : "Estabelecer un cartafol de modelos",
"Templates" : "Modelos",
+ "Create new templates folder" : "Crear un novo cartafol de modelos",
"Unable to initialize the templates directory" : "Non é posíbel iniciar o directorio de modelos",
"Toggle %1$s sublist" : "Alternar %1$s sublista",
"Toggle grid view" : "Alternar a vista como grella",
@@ -255,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Sen límites",
"Search users" : "Buscar usuarios",
"Cannot transfer ownership of a file or folder you don't own" : "Non é posíbel transferir a propiedade dun ficheiro ou cartafol que non é de seu",
+ "Cancel" : "Cancelar",
"%s used" : "%s utilizado",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%s de %s utilizado",
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index 693fba1ad4d..1ece6878a06 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -107,6 +107,8 @@
"Create new folder" : "Crear un cartafol novo",
"Upload file" : "Enviar ficheiro",
"Recent" : "Recente",
+ "This file has the tag {tag}" : "Este ficheiro ten a etiqueta {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Este ficheiro ten as etiquetas {firstTags} e {lastTag}",
"Not favorited" : "Non marcado como favorito",
"Remove from favorites" : "Retirar de favoritos",
"Add to favorites" : "Engadir a favoritos",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Non é posíbel cambiar o estado favorito do ficheiro",
"Error while loading the file data" : "Produciuse un erro ao cargar os datos do ficheiro",
"Pick a template for {name}" : "Escolla un modelo para {name}",
- "Cancel" : "Cancelar",
"Create" : "Crear",
"Create a new file with the selected template" : "Crear un novo ficheiro co modelo seleccionado",
"Creating file" : "Creando o ficheiro",
@@ -228,6 +229,7 @@
"Delete permanently" : "Eliminar de xeito permanente",
"Set up templates folder" : "Estabelecer un cartafol de modelos",
"Templates" : "Modelos",
+ "Create new templates folder" : "Crear un novo cartafol de modelos",
"Unable to initialize the templates directory" : "Non é posíbel iniciar o directorio de modelos",
"Toggle %1$s sublist" : "Alternar %1$s sublista",
"Toggle grid view" : "Alternar a vista como grella",
@@ -253,6 +255,7 @@
"Unlimited" : "Sen límites",
"Search users" : "Buscar usuarios",
"Cannot transfer ownership of a file or folder you don't own" : "Non é posíbel transferir a propiedade dun ficheiro ou cartafol que non é de seu",
+ "Cancel" : "Cancelar",
"%s used" : "%s utilizado",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%s de %s utilizado",
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index 8b408bbed4e..06019c49879 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -166,7 +166,6 @@ OC.L10N.register(
"Use this address to access your Files via WebDAV" : "יש להשתמש בכתובת הזאת כדי לגשת לקבצים שלך דרך WebDAV",
"Unable to change the favourite state of the file" : "לא ניתן לשנות את מצב ההעדפה של הקובץ",
"Error while loading the file data" : "שגיאה בטעינת נתוני הקובץ",
- "Cancel" : "ביטול",
"Create" : "יצירה",
"Delete permanently" : "מחיקה לצמיתות",
"Toggle grid view" : "החלפת תצוגת טבלה",
@@ -192,6 +191,7 @@ OC.L10N.register(
"Unlimited" : "ללא הגבלה",
"Search users" : "חיפוש משתמשים",
"Cannot transfer ownership of a file or folder you don't own" : "אין לך אפשרות להעביר בעלות על קובץ או תיקייה שאין לך בעלות עליהם",
+ "Cancel" : "ביטול",
"%s used" : "%s בשימוש",
"%1$s of %2$s used" : "%1$s מתוך %2$s בשימוש",
"Settings" : "הגדרות",
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index d2fc7e2010b..c329e0a8b57 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -164,7 +164,6 @@
"Use this address to access your Files via WebDAV" : "יש להשתמש בכתובת הזאת כדי לגשת לקבצים שלך דרך WebDAV",
"Unable to change the favourite state of the file" : "לא ניתן לשנות את מצב ההעדפה של הקובץ",
"Error while loading the file data" : "שגיאה בטעינת נתוני הקובץ",
- "Cancel" : "ביטול",
"Create" : "יצירה",
"Delete permanently" : "מחיקה לצמיתות",
"Toggle grid view" : "החלפת תצוגת טבלה",
@@ -190,6 +189,7 @@
"Unlimited" : "ללא הגבלה",
"Search users" : "חיפוש משתמשים",
"Cannot transfer ownership of a file or folder you don't own" : "אין לך אפשרות להעביר בעלות על קובץ או תיקייה שאין לך בעלות עליהם",
+ "Cancel" : "ביטול",
"%s used" : "%s בשימוש",
"%1$s of %2$s used" : "%1$s מתוך %2$s בשימוש",
"Settings" : "הגדרות",
diff --git a/apps/files/l10n/hr.js b/apps/files/l10n/hr.js
index 49873b3ceae..41c3dd11c87 100644
--- a/apps/files/l10n/hr.js
+++ b/apps/files/l10n/hr.js
@@ -176,7 +176,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Nije moguće promijeniti status favorita datoteke",
"Error while loading the file data" : "Pogreška pri učitavanju podataka iz datoteke",
"Pick a template for {name}" : "Odaberite predložak za {name}",
- "Cancel" : "Odustani",
"Create" : "Stvori",
"Create a new file with the selected template" : "Stvorite novu datoteku s odabranim predloškom",
"Creating file" : "Stvaranje datoteke",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Unlimited" : "Neograničeno",
"Search users" : "Pretraži korisnike",
"Cannot transfer ownership of a file or folder you don't own" : "Ne možete prenijeti vlasništvo nad datotekom ili mapom koja nije u vašem vlasništvu",
+ "Cancel" : "Odustani",
"%s used" : "Iskorišteno %s",
"%1$s of %2$s used" : "Iskorišteno %1$s od %2$s",
"Settings" : "Postavke",
diff --git a/apps/files/l10n/hr.json b/apps/files/l10n/hr.json
index ad91f48ed81..0994ecb4071 100644
--- a/apps/files/l10n/hr.json
+++ b/apps/files/l10n/hr.json
@@ -174,7 +174,6 @@
"Unable to change the favourite state of the file" : "Nije moguće promijeniti status favorita datoteke",
"Error while loading the file data" : "Pogreška pri učitavanju podataka iz datoteke",
"Pick a template for {name}" : "Odaberite predložak za {name}",
- "Cancel" : "Odustani",
"Create" : "Stvori",
"Create a new file with the selected template" : "Stvorite novu datoteku s odabranim predloškom",
"Creating file" : "Stvaranje datoteke",
@@ -208,6 +207,7 @@
"Unlimited" : "Neograničeno",
"Search users" : "Pretraži korisnike",
"Cannot transfer ownership of a file or folder you don't own" : "Ne možete prenijeti vlasništvo nad datotekom ili mapom koja nije u vašem vlasništvu",
+ "Cancel" : "Odustani",
"%s used" : "Iskorišteno %s",
"%1$s of %2$s used" : "Iskorišteno %1$s od %2$s",
"Settings" : "Postavke",
diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js
index 8bd900afb69..c1e111e09bc 100644
--- a/apps/files/l10n/hu.js
+++ b/apps/files/l10n/hu.js
@@ -220,7 +220,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Nem lehet megváltoztatni a fájl kedvenc állapotát",
"Error while loading the file data" : "Hiba történt a fájladatok betöltése közben",
"Pick a template for {name}" : "Válassz sablont a(z) {name} fájlnak",
- "Cancel" : "Mégse",
"Create" : "Létrehozás",
"Create a new file with the selected template" : "Új fájl létrehozása a kiválasztott sablonnal",
"Creating file" : "Fájl létrehozása",
@@ -254,6 +253,7 @@ OC.L10N.register(
"Unlimited" : "Korlátlan",
"Search users" : "Fehasználók keresése",
"Cannot transfer ownership of a file or folder you don't own" : "Nem ruházható át olyan fájl vagy mappa tulajdonjoga, amely nem Öné",
+ "Cancel" : "Mégse",
"%s used" : "%s használt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s / %2$s felhasználva",
diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json
index 7c956286206..295247ae67d 100644
--- a/apps/files/l10n/hu.json
+++ b/apps/files/l10n/hu.json
@@ -218,7 +218,6 @@
"Unable to change the favourite state of the file" : "Nem lehet megváltoztatni a fájl kedvenc állapotát",
"Error while loading the file data" : "Hiba történt a fájladatok betöltése közben",
"Pick a template for {name}" : "Válassz sablont a(z) {name} fájlnak",
- "Cancel" : "Mégse",
"Create" : "Létrehozás",
"Create a new file with the selected template" : "Új fájl létrehozása a kiválasztott sablonnal",
"Creating file" : "Fájl létrehozása",
@@ -252,6 +251,7 @@
"Unlimited" : "Korlátlan",
"Search users" : "Fehasználók keresése",
"Cannot transfer ownership of a file or folder you don't own" : "Nem ruházható át olyan fájl vagy mappa tulajdonjoga, amely nem Öné",
+ "Cancel" : "Mégse",
"%s used" : "%s használt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s / %2$s felhasználva",
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index 4c8d8614160..63345b57833 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -202,7 +202,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Gagal mengubah status favorit berkas",
"Error while loading the file data" : "Galat pemuatan data berkas",
"Pick a template for {name}" : "Pilih templat untuk {name}",
- "Cancel" : "Membatalkan",
"Create" : "Buat",
"Create a new file with the selected template" : "Buat sebuah berkas baru dengan templat yang dipilih",
"Creating file" : "Membuat berkas",
@@ -236,6 +235,7 @@ OC.L10N.register(
"Unlimited" : "Tak terbatas",
"Search users" : "Cari pengguna",
"Cannot transfer ownership of a file or folder you don't own" : "Tidak dapat melakukan transfer kepemilikan dari berkas dan folder yang tidak Anda miliki",
+ "Cancel" : "Membatalkan",
"%s used" : "%s digunakan",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s dari %2$s sudah digunakan",
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index 6e452875b79..99f60cbc7d0 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -200,7 +200,6 @@
"Unable to change the favourite state of the file" : "Gagal mengubah status favorit berkas",
"Error while loading the file data" : "Galat pemuatan data berkas",
"Pick a template for {name}" : "Pilih templat untuk {name}",
- "Cancel" : "Membatalkan",
"Create" : "Buat",
"Create a new file with the selected template" : "Buat sebuah berkas baru dengan templat yang dipilih",
"Creating file" : "Membuat berkas",
@@ -234,6 +233,7 @@
"Unlimited" : "Tak terbatas",
"Search users" : "Cari pengguna",
"Cannot transfer ownership of a file or folder you don't own" : "Tidak dapat melakukan transfer kepemilikan dari berkas dan folder yang tidak Anda miliki",
+ "Cancel" : "Membatalkan",
"%s used" : "%s digunakan",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s dari %2$s sudah digunakan",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index e7f3793a071..43c9dcd4c4d 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -153,7 +153,6 @@ OC.L10N.register(
"Copy to clipboard" : "Afrita á klippispjald",
"Use this address to access your Files via WebDAV" : "Notaðu þetta vistfang til að nálgast skrárnar þínar með WebDAV",
"Error while loading the file data" : "Villa við að hlaða inn skráagögnum",
- "Cancel" : "Hætta við",
"Create" : "Búa til",
"Create a new file with the selected template" : "Búa til nýja skrá úr völdu sniðmáti",
"Creating file" : "Bý til skrá",
@@ -186,6 +185,7 @@ OC.L10N.register(
"Unlimited" : "Ótakmarkað",
"Search users" : "Leita að notendum",
"Cannot transfer ownership of a file or folder you don't own" : "Ekki er hægt að millifæra eignarhald á skrá eða möppu sem þú átt ekki",
+ "Cancel" : "Hætta við",
"%s used" : "%s notað",
"%1$s of %2$s used" : "%1$s af %2$s notað",
"Settings" : "Stillingar",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 0599c08eb5c..82f7e834d2b 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -151,7 +151,6 @@
"Copy to clipboard" : "Afrita á klippispjald",
"Use this address to access your Files via WebDAV" : "Notaðu þetta vistfang til að nálgast skrárnar þínar með WebDAV",
"Error while loading the file data" : "Villa við að hlaða inn skráagögnum",
- "Cancel" : "Hætta við",
"Create" : "Búa til",
"Create a new file with the selected template" : "Búa til nýja skrá úr völdu sniðmáti",
"Creating file" : "Bý til skrá",
@@ -184,6 +183,7 @@
"Unlimited" : "Ótakmarkað",
"Search users" : "Leita að notendum",
"Cannot transfer ownership of a file or folder you don't own" : "Ekki er hægt að millifæra eignarhald á skrá eða möppu sem þú átt ekki",
+ "Cancel" : "Hætta við",
"%s used" : "%s notað",
"%1$s of %2$s used" : "%1$s af %2$s notað",
"Settings" : "Stillingar",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 4f834fc7edb..c039800f469 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -197,7 +197,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Impossibile cambiare lo stato di preferito del file",
"Error while loading the file data" : "Errore durante il caricamento del file di dati",
"Pick a template for {name}" : "Scegli un modello per {name}",
- "Cancel" : "Annulla",
"Create" : "Crea",
"Create a new file with the selected template" : "Crea un nuovo file con il modello selezionato",
"Creating file" : "Creazione del file",
@@ -231,6 +230,7 @@ OC.L10N.register(
"Unlimited" : "Illimitata",
"Search users" : "Cerca utenti",
"Cannot transfer ownership of a file or folder you don't own" : "Impossibile trasferire la proprietà di un file o di una cartella di altri",
+ "Cancel" : "Annulla",
"%s used" : "%s utilizzato",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s di %2$s utilizzati",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index b87b6648662..56b47bb0dd9 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -195,7 +195,6 @@
"Unable to change the favourite state of the file" : "Impossibile cambiare lo stato di preferito del file",
"Error while loading the file data" : "Errore durante il caricamento del file di dati",
"Pick a template for {name}" : "Scegli un modello per {name}",
- "Cancel" : "Annulla",
"Create" : "Crea",
"Create a new file with the selected template" : "Crea un nuovo file con il modello selezionato",
"Creating file" : "Creazione del file",
@@ -229,6 +228,7 @@
"Unlimited" : "Illimitata",
"Search users" : "Cerca utenti",
"Cannot transfer ownership of a file or folder you don't own" : "Impossibile trasferire la proprietà di un file o di una cartella di altri",
+ "Cancel" : "Annulla",
"%s used" : "%s utilizzato",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s di %2$s utilizzati",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index a5978835a59..5696c7f5dc4 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -201,7 +201,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "ファイルのお気に入りの状態を変更できません",
"Error while loading the file data" : "ファイルデータの読み込み中にエラーが発生しました",
"Pick a template for {name}" : "{name} のテンプレートを選択してください",
- "Cancel" : "キャンセル",
"Create" : "作成",
"Create a new file with the selected template" : "選択したテンプレートを使用して新しいファイルを作成します",
"Creating file" : "ファイル作成",
@@ -235,6 +234,7 @@ OC.L10N.register(
"Unlimited" : "無制限",
"Search users" : "ユーザーを検索",
"Cannot transfer ownership of a file or folder you don't own" : "所有していないファイルまたはフォルダーの所有権を譲渡することはできません",
+ "Cancel" : "キャンセル",
"%s used" : "%s 使用中",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%2$s 中%1$s 使用中",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index c93e8a910e9..cc1edbdde3b 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -199,7 +199,6 @@
"Unable to change the favourite state of the file" : "ファイルのお気に入りの状態を変更できません",
"Error while loading the file data" : "ファイルデータの読み込み中にエラーが発生しました",
"Pick a template for {name}" : "{name} のテンプレートを選択してください",
- "Cancel" : "キャンセル",
"Create" : "作成",
"Create a new file with the selected template" : "選択したテンプレートを使用して新しいファイルを作成します",
"Creating file" : "ファイル作成",
@@ -233,6 +232,7 @@
"Unlimited" : "無制限",
"Search users" : "ユーザーを検索",
"Cannot transfer ownership of a file or folder you don't own" : "所有していないファイルまたはフォルダーの所有権を譲渡することはできません",
+ "Cancel" : "キャンセル",
"%s used" : "%s 使用中",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%2$s 中%1$s 使用中",
diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js
index f95326d4d58..5abb1b63966 100644
--- a/apps/files/l10n/ka_GE.js
+++ b/apps/files/l10n/ka_GE.js
@@ -122,7 +122,6 @@ OC.L10N.register(
"Additional settings" : "დამატებითი პარამეტრები",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "კოპირება ბუფერში",
- "Cancel" : "უარყოფა",
"Create" : "შექმნა",
"Delete permanently" : "სამუდამოდ წაშლა",
"Upload some content or sync with your devices!" : "ატვირთეთ რამე ან მოახდინეთ სინქრონიზაცია თქვენს მოწყობილობებთან!",
@@ -143,6 +142,7 @@ OC.L10N.register(
"New" : "ახალი",
"Copied!" : "დაკოპირდა!",
"Unlimited" : "ულიმიტო",
+ "Cancel" : "უარყოფა",
"%s used" : "%s მოხმარებულია",
"%1$s of %2$s used" : "გამოყენებულია %1$s სულ %2$s-იდან ",
"Settings" : "პარამეტრები",
diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json
index 3295c60d4ac..7a11d7a299e 100644
--- a/apps/files/l10n/ka_GE.json
+++ b/apps/files/l10n/ka_GE.json
@@ -120,7 +120,6 @@
"Additional settings" : "დამატებითი პარამეტრები",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "კოპირება ბუფერში",
- "Cancel" : "უარყოფა",
"Create" : "შექმნა",
"Delete permanently" : "სამუდამოდ წაშლა",
"Upload some content or sync with your devices!" : "ატვირთეთ რამე ან მოახდინეთ სინქრონიზაცია თქვენს მოწყობილობებთან!",
@@ -141,6 +140,7 @@
"New" : "ახალი",
"Copied!" : "დაკოპირდა!",
"Unlimited" : "ულიმიტო",
+ "Cancel" : "უარყოფა",
"%s used" : "%s მოხმარებულია",
"%1$s of %2$s used" : "გამოყენებულია %1$s სულ %2$s-იდან ",
"Settings" : "პარამეტრები",
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index 95af1807d36..c2dab207b41 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "파일의 즐겨찾기 상태를 변경할 수 없음",
"Error while loading the file data" : "파일 데이터를 불러오는 중 오류 발생",
"Pick a template for {name}" : "{name}을(를) 위한 템플릿 선택",
- "Cancel" : "취소",
"Create" : "생성",
"Create a new file with the selected template" : "선택한 템플릿으로 새 파일 만들기",
"Creating file" : "파일 만들기",
@@ -218,6 +217,7 @@ OC.L10N.register(
"Unlimited" : "무제한",
"Search users" : "사용자 검색",
"Cannot transfer ownership of a file or folder you don't own" : "내가 소유하지 않은 파일이나 폴더의 소유권을 이전할 수 없음",
+ "Cancel" : "취소",
"%s used" : "%s 사용함",
"%1$s of %2$s used" : "%2$s 중 %1$s 사용됨",
"Settings" : "설정",
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index 694d5377844..3179b8f9c47 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -183,7 +183,6 @@
"Unable to change the favourite state of the file" : "파일의 즐겨찾기 상태를 변경할 수 없음",
"Error while loading the file data" : "파일 데이터를 불러오는 중 오류 발생",
"Pick a template for {name}" : "{name}을(를) 위한 템플릿 선택",
- "Cancel" : "취소",
"Create" : "생성",
"Create a new file with the selected template" : "선택한 템플릿으로 새 파일 만들기",
"Creating file" : "파일 만들기",
@@ -216,6 +215,7 @@
"Unlimited" : "무제한",
"Search users" : "사용자 검색",
"Cannot transfer ownership of a file or folder you don't own" : "내가 소유하지 않은 파일이나 폴더의 소유권을 이전할 수 없음",
+ "Cancel" : "취소",
"%s used" : "%s 사용함",
"%1$s of %2$s used" : "%2$s 중 %1$s 사용됨",
"Settings" : "설정",
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index 5b00aefd057..36608a23dea 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -177,7 +177,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Nepavyksta pakeisti failo Lankomiausiųjų būsenos",
"Error while loading the file data" : "Klaida įkeliant failo duomenis",
"Pick a template for {name}" : "Pasirinkite šabloną, skirtą {name}",
- "Cancel" : "Atsisakyti",
"Create" : "Sukurti",
"Create a new file with the selected template" : "Sukurti naują failą naudojant pasirinktą šabloną",
"Creating file" : "Sukuriamas failas",
@@ -208,6 +207,7 @@ OC.L10N.register(
"Unlimited" : "Neribotai",
"Search users" : "Ieškoti naudotojų",
"Cannot transfer ownership of a file or folder you don't own" : "Negalima perduoti, failo aplanko, kuris jums nepriklauso, nuosavybės",
+ "Cancel" : "Atsisakyti",
"%s used" : "%s panaudota",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "naudojama %1$s iš %2$s",
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index 2bdc6c1a4d3..4fec801599f 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -175,7 +175,6 @@
"Unable to change the favourite state of the file" : "Nepavyksta pakeisti failo Lankomiausiųjų būsenos",
"Error while loading the file data" : "Klaida įkeliant failo duomenis",
"Pick a template for {name}" : "Pasirinkite šabloną, skirtą {name}",
- "Cancel" : "Atsisakyti",
"Create" : "Sukurti",
"Create a new file with the selected template" : "Sukurti naują failą naudojant pasirinktą šabloną",
"Creating file" : "Sukuriamas failas",
@@ -206,6 +205,7 @@
"Unlimited" : "Neribotai",
"Search users" : "Ieškoti naudotojų",
"Cannot transfer ownership of a file or folder you don't own" : "Negalima perduoti, failo aplanko, kuris jums nepriklauso, nuosavybės",
+ "Cancel" : "Atsisakyti",
"%s used" : "%s panaudota",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "naudojama %1$s iš %2$s",
diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js
index 74ec3959720..3fc5a72847e 100644
--- a/apps/files/l10n/lv.js
+++ b/apps/files/l10n/lv.js
@@ -119,7 +119,6 @@ OC.L10N.register(
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Kopēt starpliktuvē",
"Use this address to access your Files via WebDAV" : "Izmantojiet šo adresi, lai piekļūtu savām datnēm, izmantojot WebDAV",
- "Cancel" : "Atcelt",
"Create" : "Izveidot",
"Delete permanently" : "Dzēst pavisam",
"Toggle grid view" : "Pārslēgt režģa skatu",
@@ -142,6 +141,7 @@ OC.L10N.register(
"New" : "Jauna",
"Copied!" : "Nokopēts!",
"Unlimited" : "Neierobežota",
+ "Cancel" : "Atcelt",
"%s used" : "%s izmantoti",
"%1$s of %2$s used" : "%1$s no %2$s lietoti",
"Settings" : "Iestatījumi",
diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json
index bed605a4081..e0eb3219b1f 100644
--- a/apps/files/l10n/lv.json
+++ b/apps/files/l10n/lv.json
@@ -117,7 +117,6 @@
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Kopēt starpliktuvē",
"Use this address to access your Files via WebDAV" : "Izmantojiet šo adresi, lai piekļūtu savām datnēm, izmantojot WebDAV",
- "Cancel" : "Atcelt",
"Create" : "Izveidot",
"Delete permanently" : "Dzēst pavisam",
"Toggle grid view" : "Pārslēgt režģa skatu",
@@ -140,6 +139,7 @@
"New" : "Jauna",
"Copied!" : "Nokopēts!",
"Unlimited" : "Neierobežota",
+ "Cancel" : "Atcelt",
"%s used" : "%s izmantoti",
"%1$s of %2$s used" : "%1$s no %2$s lietoti",
"Settings" : "Iestatījumi",
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 968947c2ff0..37b81ae6c16 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -201,7 +201,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Неможе да се промени статусот на омимени на датотеката",
"Error while loading the file data" : "Грешка при вчитување на податоците од датотеката",
"Pick a template for {name}" : "Избери шаблон за {name}",
- "Cancel" : "Откажи",
"Create" : "Креирај",
"Create a new file with the selected template" : "Креирај нова датотека со избраниот шаблон",
"Creating file" : "Креирање на датотека",
@@ -235,6 +234,7 @@ OC.L10N.register(
"Unlimited" : "Неограничено",
"Search users" : "Пребарувај корисници",
"Cannot transfer ownership of a file or folder you don't own" : "Неможете да направите трансвер на сопственот на папка која не е ваша",
+ "Cancel" : "Откажи",
"%s used" : "Искористено %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Искористено %1$s од %2$s",
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 333ca63cf3e..c138cbd83e6 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -199,7 +199,6 @@
"Unable to change the favourite state of the file" : "Неможе да се промени статусот на омимени на датотеката",
"Error while loading the file data" : "Грешка при вчитување на податоците од датотеката",
"Pick a template for {name}" : "Избери шаблон за {name}",
- "Cancel" : "Откажи",
"Create" : "Креирај",
"Create a new file with the selected template" : "Креирај нова датотека со избраниот шаблон",
"Creating file" : "Креирање на датотека",
@@ -233,6 +232,7 @@
"Unlimited" : "Неограничено",
"Search users" : "Пребарувај корисници",
"Cannot transfer ownership of a file or folder you don't own" : "Неможете да направите трансвер на сопственот на папка која не е ваша",
+ "Cancel" : "Откажи",
"%s used" : "Искористено %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Искористено %1$s од %2$s",
diff --git a/apps/files/l10n/mn.js b/apps/files/l10n/mn.js
index d31b76d49d8..d9e2bf0b8df 100644
--- a/apps/files/l10n/mn.js
+++ b/apps/files/l10n/mn.js
@@ -122,7 +122,6 @@ OC.L10N.register(
"No files in here" : "Энд файл байхгүй байна",
"Go back" : "Буцах",
"Show hidden files" : "Нууцлагдсан файлыг харах",
- "Cancel" : "болиулах",
"Create" : "Үүсгэх",
"Delete permanently" : "бүр мөсөн устгах",
"No entries found in this folder" : "энэ хавтсан олдсон ч ямарч мэдээлэл олдохгүй байна",
@@ -139,6 +138,7 @@ OC.L10N.register(
"You don’t have permission to upload or create files here" : "Та энэ байршилд файл үүсгэх эсвэл байршуулах эрхгүй байна.",
"New" : "Шинэ",
"Copied!" : "Хуулсан!",
+ "Cancel" : "болиулах",
"%1$s of %2$s used" : "%1$s-с %2$s хэрэглэсэн",
"Settings" : "Тохиргоо",
"Deleted files" : "Устгасан файлууд"
diff --git a/apps/files/l10n/mn.json b/apps/files/l10n/mn.json
index a21f04b405d..e3cee63037c 100644
--- a/apps/files/l10n/mn.json
+++ b/apps/files/l10n/mn.json
@@ -120,7 +120,6 @@
"No files in here" : "Энд файл байхгүй байна",
"Go back" : "Буцах",
"Show hidden files" : "Нууцлагдсан файлыг харах",
- "Cancel" : "болиулах",
"Create" : "Үүсгэх",
"Delete permanently" : "бүр мөсөн устгах",
"No entries found in this folder" : "энэ хавтсан олдсон ч ямарч мэдээлэл олдохгүй байна",
@@ -137,6 +136,7 @@
"You don’t have permission to upload or create files here" : "Та энэ байршилд файл үүсгэх эсвэл байршуулах эрхгүй байна.",
"New" : "Шинэ",
"Copied!" : "Хуулсан!",
+ "Cancel" : "болиулах",
"%1$s of %2$s used" : "%1$s-с %2$s хэрэглэсэн",
"Settings" : "Тохиргоо",
"Deleted files" : "Устгасан файлууд"
diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js
index b0c0099d792..0ef31f9bb44 100644
--- a/apps/files/l10n/nb.js
+++ b/apps/files/l10n/nb.js
@@ -198,7 +198,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Kan ikke endre favorittstatus til filen",
"Error while loading the file data" : "Feil ved lasting av fildata",
"Pick a template for {name}" : "Velg en mal for {name}",
- "Cancel" : "Avbryt",
"Create" : "Opprett",
"Create a new file with the selected template" : "Opprett en ny fil med den valgte malen",
"Creating file" : "Oppretter fil",
@@ -232,6 +231,7 @@ OC.L10N.register(
"Unlimited" : "Ubegrenset",
"Search users" : "Søk etter brukere",
"Cannot transfer ownership of a file or folder you don't own" : "Kan ikke overføre eierskap til en fil eller mappe du ikke eier",
+ "Cancel" : "Avbryt",
"%s used" : "%s brukt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s av %2$s brukt",
diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json
index 18ede7e090f..14820232732 100644
--- a/apps/files/l10n/nb.json
+++ b/apps/files/l10n/nb.json
@@ -196,7 +196,6 @@
"Unable to change the favourite state of the file" : "Kan ikke endre favorittstatus til filen",
"Error while loading the file data" : "Feil ved lasting av fildata",
"Pick a template for {name}" : "Velg en mal for {name}",
- "Cancel" : "Avbryt",
"Create" : "Opprett",
"Create a new file with the selected template" : "Opprett en ny fil med den valgte malen",
"Creating file" : "Oppretter fil",
@@ -230,6 +229,7 @@
"Unlimited" : "Ubegrenset",
"Search users" : "Søk etter brukere",
"Cannot transfer ownership of a file or folder you don't own" : "Kan ikke overføre eierskap til en fil eller mappe du ikke eier",
+ "Cancel" : "Avbryt",
"%s used" : "%s brukt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s av %2$s brukt",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index d612dcbbf7e..9327b2e783d 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -191,7 +191,6 @@ OC.L10N.register(
"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",
"Pick a template for {name}" : "Kies een sjabloon voor {name}",
- "Cancel" : "Annuleren",
"Create" : "Aanmaken",
"Create a new file with the selected template" : "Maak een nieuw bestand met het geselecteerde sjabloon",
"Creating file" : "Maken bestand",
@@ -225,6 +224,7 @@ OC.L10N.register(
"Unlimited" : "Ongelimiteerd",
"Search users" : "Gebruikers zoeken",
"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",
+ "Cancel" : "Annuleren",
"%s used" : "%s gebruikt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s van %2$s gebruikt",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index ec117b80103..e540f53d5aa 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -189,7 +189,6 @@
"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",
"Pick a template for {name}" : "Kies een sjabloon voor {name}",
- "Cancel" : "Annuleren",
"Create" : "Aanmaken",
"Create a new file with the selected template" : "Maak een nieuw bestand met het geselecteerde sjabloon",
"Creating file" : "Maken bestand",
@@ -223,6 +222,7 @@
"Unlimited" : "Ongelimiteerd",
"Search users" : "Gebruikers zoeken",
"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",
+ "Cancel" : "Annuleren",
"%s used" : "%s gebruikt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s van %2$s gebruikt",
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 602fc7d7657..714dad570cd 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -220,7 +220,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Nie można zmienić ulubionego stanu pliku",
"Error while loading the file data" : "Błąd podczas ładowania danych pliku",
"Pick a template for {name}" : "Wybierz szablon dla {name}",
- "Cancel" : "Anuluj",
"Create" : "Utwórz",
"Create a new file with the selected template" : "Utwórz nowy plik z wybranym szablonem",
"Creating file" : "Tworzenie pliku",
@@ -254,6 +253,7 @@ OC.L10N.register(
"Unlimited" : "Brak limitu",
"Search users" : "Wyszukaj użytkowników",
"Cannot transfer ownership of a file or folder you don't own" : "Nie można przenieść prawa własności do pliku lub katalogu, którego nie jesteś właścicielem",
+ "Cancel" : "Anuluj",
"%s used" : "Wykorzystane: %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Wykorzystane: %1$s z %2$s",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 356bdbbff03..601571ee736 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -218,7 +218,6 @@
"Unable to change the favourite state of the file" : "Nie można zmienić ulubionego stanu pliku",
"Error while loading the file data" : "Błąd podczas ładowania danych pliku",
"Pick a template for {name}" : "Wybierz szablon dla {name}",
- "Cancel" : "Anuluj",
"Create" : "Utwórz",
"Create a new file with the selected template" : "Utwórz nowy plik z wybranym szablonem",
"Creating file" : "Tworzenie pliku",
@@ -252,6 +251,7 @@
"Unlimited" : "Brak limitu",
"Search users" : "Wyszukaj użytkowników",
"Cannot transfer ownership of a file or folder you don't own" : "Nie można przenieść prawa własności do pliku lub katalogu, którego nie jesteś właścicielem",
+ "Cancel" : "Anuluj",
"%s used" : "Wykorzystane: %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Wykorzystane: %1$s z %2$s",
diff --git a/apps/files/l10n/ps.js b/apps/files/l10n/ps.js
index 2f15dac80b5..25ceb84b264 100644
--- a/apps/files/l10n/ps.js
+++ b/apps/files/l10n/ps.js
@@ -112,7 +112,6 @@ OC.L10N.register(
"Unknown error" : "نامعلومه ستونزه",
"No files in here" : "دلته فایلونه نشته",
"Show hidden files" : "پټ فایلونه ليدل",
- "Cancel" : "پرېښول",
"Toggle grid view" : "په جدولي شکل ليدل",
"No entries found in this folder" : "په دې فولډر کې څه نشته",
"Upload too large" : "د پورته کېدونکي فایل کچه لوړه ده",
@@ -132,6 +131,7 @@ OC.L10N.register(
"New" : "نوی",
"Copied!" : "کاپي شو!",
"Unlimited" : "نامحدود",
+ "Cancel" : "پرېښول",
"%s used" : "%sکارول شوې",
"%1$s of %2$s used" : "د %2$sبرخې %1$sکارول شوې",
"Settings" : "سمونې",
diff --git a/apps/files/l10n/ps.json b/apps/files/l10n/ps.json
index 402942444bd..8c7aafd320a 100644
--- a/apps/files/l10n/ps.json
+++ b/apps/files/l10n/ps.json
@@ -110,7 +110,6 @@
"Unknown error" : "نامعلومه ستونزه",
"No files in here" : "دلته فایلونه نشته",
"Show hidden files" : "پټ فایلونه ليدل",
- "Cancel" : "پرېښول",
"Toggle grid view" : "په جدولي شکل ليدل",
"No entries found in this folder" : "په دې فولډر کې څه نشته",
"Upload too large" : "د پورته کېدونکي فایل کچه لوړه ده",
@@ -130,6 +129,7 @@
"New" : "نوی",
"Copied!" : "کاپي شو!",
"Unlimited" : "نامحدود",
+ "Cancel" : "پرېښول",
"%s used" : "%sکارول شوې",
"%1$s of %2$s used" : "د %2$sبرخې %1$sکارول شوې",
"Settings" : "سمونې",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 44ee9f734ee..1657c29d95e 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -202,7 +202,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Não foi possível alterar o estado favorito do arquivo",
"Error while loading the file data" : "Erro ao carregar os dados do arquivo",
"Pick a template for {name}" : "Escolha um modelo para {name}",
- "Cancel" : "Cancelar",
"Create" : "Criar ",
"Create a new file with the selected template" : "Crie um novo arquivo com o modelo selecionado ",
"Creating file" : "Criando arquivo ",
@@ -236,6 +235,7 @@ OC.L10N.register(
"Unlimited" : "Ilimitado",
"Search users" : "Procurar usuários",
"Cannot transfer ownership of a file or folder you don't own" : "Não é possível transferir a propriedade de um arquivo ou pasta que você não possui",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s usados de %2$s",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 659e12932e4..c55a8765c43 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -200,7 +200,6 @@
"Unable to change the favourite state of the file" : "Não foi possível alterar o estado favorito do arquivo",
"Error while loading the file data" : "Erro ao carregar os dados do arquivo",
"Pick a template for {name}" : "Escolha um modelo para {name}",
- "Cancel" : "Cancelar",
"Create" : "Criar ",
"Create a new file with the selected template" : "Crie um novo arquivo com o modelo selecionado ",
"Creating file" : "Criando arquivo ",
@@ -234,6 +233,7 @@
"Unlimited" : "Ilimitado",
"Search users" : "Procurar usuários",
"Cannot transfer ownership of a file or folder you don't own" : "Não é possível transferir a propriedade de um arquivo ou pasta que você não possui",
+ "Cancel" : "Cancelar",
"%s used" : "%s usado",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s usados de %2$s",
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index 69fff85355a..02d8e565dbc 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -149,7 +149,6 @@ OC.L10N.register(
"Additional settings" : "Definições adicionais",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar para área de transferência",
- "Cancel" : "Cancelar",
"Create" : "Criar",
"Delete permanently" : "Eliminar permanentemente",
"Templates" : "Modelos",
@@ -171,6 +170,7 @@ OC.L10N.register(
"New" : "Novo",
"Copied!" : "Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s utilizado",
"%1$s of %2$s used" : "Usado %1$s de %2$s",
"Settings" : "Configurações",
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 0f45a64fa5f..592cd464afa 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -147,7 +147,6 @@
"Additional settings" : "Definições adicionais",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Copiar para área de transferência",
- "Cancel" : "Cancelar",
"Create" : "Criar",
"Delete permanently" : "Eliminar permanentemente",
"Templates" : "Modelos",
@@ -169,6 +168,7 @@
"New" : "Novo",
"Copied!" : "Copiado!",
"Unlimited" : "Ilimitado",
+ "Cancel" : "Cancelar",
"%s used" : "%s utilizado",
"%1$s of %2$s used" : "Usado %1$s de %2$s",
"Settings" : "Configurações",
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index 3bbde10b94e..935f9dcba12 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -185,7 +185,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Nu s-a putut schimba starea fișierelor favorite",
"Error while loading the file data" : "A apărut o eroare în timpul încărcării datele din fișier",
"Pick a template for {name}" : "Alege un șablon pentru {name}",
- "Cancel" : "Anulare",
"Create" : "Crează",
"Create a new file with the selected template" : "Crează un fișier nou cu șablonul selectat",
"Creating file" : "Se crează fișierul",
@@ -219,6 +218,7 @@ OC.L10N.register(
"Unlimited" : "Nelimitată",
"Search users" : "Cauta utilizatori",
"Cannot transfer ownership of a file or folder you don't own" : "Nu se poate transfera proprietatea unui fișier sau dosar ce nu le deții",
+ "Cancel" : "Anulare",
"%s used" : "%s folosiți",
"%1$s of %2$s used" : "%1$s din %2$s utilizat",
"Settings" : "Setări",
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index cbe5b4e66ef..1d1f7fe0259 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -183,7 +183,6 @@
"Unable to change the favourite state of the file" : "Nu s-a putut schimba starea fișierelor favorite",
"Error while loading the file data" : "A apărut o eroare în timpul încărcării datele din fișier",
"Pick a template for {name}" : "Alege un șablon pentru {name}",
- "Cancel" : "Anulare",
"Create" : "Crează",
"Create a new file with the selected template" : "Crează un fișier nou cu șablonul selectat",
"Creating file" : "Se crează fișierul",
@@ -217,6 +216,7 @@
"Unlimited" : "Nelimitată",
"Search users" : "Cauta utilizatori",
"Cannot transfer ownership of a file or folder you don't own" : "Nu se poate transfera proprietatea unui fișier sau dosar ce nu le deții",
+ "Cancel" : "Anulare",
"%s used" : "%s folosiți",
"%1$s of %2$s used" : "%1$s din %2$s utilizat",
"Settings" : "Setări",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index 612594bf359..8d15679363e 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Создать папку",
"Upload file" : "Загрузить файл",
"Recent" : "Недавно изменённые",
+ "This file has the tag {tag}" : "У этого файла есть тэг: {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "У этого файла есть тэги: {firstTags} и {lastTag}",
"Not favorited" : "Не избранное",
"Remove from favorites" : "Удалить из избранных",
"Add to favorites" : "Добавить в избранное",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Не удалось изменить состояние «избранный» этого файла.",
"Error while loading the file data" : "Не удалось загрузить данные файла",
"Pick a template for {name}" : "Выбрать шаблон для {name}",
- "Cancel" : "Отменить",
"Create" : "Создать",
"Create a new file with the selected template" : "Создать файл на основе шаблона",
"Creating file" : "Создание файла",
@@ -230,6 +231,7 @@ OC.L10N.register(
"Delete permanently" : "Удалить навсегда",
"Set up templates folder" : "Указать папку шаблонов",
"Templates" : "Шаблоны",
+ "Create new templates folder" : "Создать новую папку шаблонов",
"Unable to initialize the templates directory" : "Не удалось инициализировать каталог шаблонов",
"Toggle %1$s sublist" : "Переключить %1$s подсписок",
"Toggle grid view" : "Включить или отключить режим просмотра сеткой",
@@ -255,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Неограничено",
"Search users" : "Поиск пользователей",
"Cannot transfer ownership of a file or folder you don't own" : "Изменение владельца возможно только для своих файлов и папок",
+ "Cancel" : "Отменить",
"%s used" : "%s использовано",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "использовано %1$s из %2$s ",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 004145be23f..b26f623017e 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -107,6 +107,8 @@
"Create new folder" : "Создать папку",
"Upload file" : "Загрузить файл",
"Recent" : "Недавно изменённые",
+ "This file has the tag {tag}" : "У этого файла есть тэг: {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "У этого файла есть тэги: {firstTags} и {lastTag}",
"Not favorited" : "Не избранное",
"Remove from favorites" : "Удалить из избранных",
"Add to favorites" : "Добавить в избранное",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Не удалось изменить состояние «избранный» этого файла.",
"Error while loading the file data" : "Не удалось загрузить данные файла",
"Pick a template for {name}" : "Выбрать шаблон для {name}",
- "Cancel" : "Отменить",
"Create" : "Создать",
"Create a new file with the selected template" : "Создать файл на основе шаблона",
"Creating file" : "Создание файла",
@@ -228,6 +229,7 @@
"Delete permanently" : "Удалить навсегда",
"Set up templates folder" : "Указать папку шаблонов",
"Templates" : "Шаблоны",
+ "Create new templates folder" : "Создать новую папку шаблонов",
"Unable to initialize the templates directory" : "Не удалось инициализировать каталог шаблонов",
"Toggle %1$s sublist" : "Переключить %1$s подсписок",
"Toggle grid view" : "Включить или отключить режим просмотра сеткой",
@@ -253,6 +255,7 @@
"Unlimited" : "Неограничено",
"Search users" : "Поиск пользователей",
"Cannot transfer ownership of a file or folder you don't own" : "Изменение владельца возможно только для своих файлов и папок",
+ "Cancel" : "Отменить",
"%s used" : "%s использовано",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "использовано %1$s из %2$s ",
diff --git a/apps/files/l10n/sc.js b/apps/files/l10n/sc.js
index f9d3af0c215..44f6b3da5b7 100644
--- a/apps/files/l10n/sc.js
+++ b/apps/files/l10n/sc.js
@@ -178,7 +178,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Non faghet a cambiare s'istadu de preferidu de s'archìviu",
"Error while loading the file data" : "Errore in su carrigamentu de is datos de s'archìviu",
"Pick a template for {name}" : "Sèbera unu modellu pro {name}",
- "Cancel" : "Annulla",
"Create" : "Crea",
"Create a new file with the selected template" : "Crea un'archìviu nou cun su modellu seletzionadu",
"Creating file" : "Creende s'archìviu",
@@ -212,6 +211,7 @@ OC.L10N.register(
"Unlimited" : "Chene lìmites",
"Search users" : "Chirca utentes",
"Cannot transfer ownership of a file or folder you don't own" : "Non faghet a tramudare sa propriedade de un'archìviu o cartella de is chi non ses mere",
+ "Cancel" : "Annulla",
"%s used" : "%s impreadu",
"%1$s of %2$s used" : "%1$s de %2$s impreadu",
"Settings" : "Impostatziones",
diff --git a/apps/files/l10n/sc.json b/apps/files/l10n/sc.json
index d65f11bf0f3..0d363c6b67f 100644
--- a/apps/files/l10n/sc.json
+++ b/apps/files/l10n/sc.json
@@ -176,7 +176,6 @@
"Unable to change the favourite state of the file" : "Non faghet a cambiare s'istadu de preferidu de s'archìviu",
"Error while loading the file data" : "Errore in su carrigamentu de is datos de s'archìviu",
"Pick a template for {name}" : "Sèbera unu modellu pro {name}",
- "Cancel" : "Annulla",
"Create" : "Crea",
"Create a new file with the selected template" : "Crea un'archìviu nou cun su modellu seletzionadu",
"Creating file" : "Creende s'archìviu",
@@ -210,6 +209,7 @@
"Unlimited" : "Chene lìmites",
"Search users" : "Chirca utentes",
"Cannot transfer ownership of a file or folder you don't own" : "Non faghet a tramudare sa propriedade de un'archìviu o cartella de is chi non ses mere",
+ "Cancel" : "Annulla",
"%s used" : "%s impreadu",
"%1$s of %2$s used" : "%1$s de %2$s impreadu",
"Settings" : "Impostatziones",
diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js
index fc9ec582271..4eebeaa630a 100644
--- a/apps/files/l10n/sk.js
+++ b/apps/files/l10n/sk.js
@@ -192,7 +192,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Nie je možné zmeniť stav „obľúbené“ daného súboru",
"Error while loading the file data" : "Chyba pri načítaní údajov súboru",
"Pick a template for {name}" : "Vyberte šablónu pre {name}",
- "Cancel" : "Zrušiť",
"Create" : "Vytvoriť",
"Create a new file with the selected template" : "Vytvoriť nový súbor pomocou vybranej šablóny",
"Creating file" : "Vyváram súbor",
@@ -226,6 +225,7 @@ OC.L10N.register(
"Unlimited" : "Neobmedzené",
"Search users" : "Hľadať používateľov",
"Cannot transfer ownership of a file or folder you don't own" : "Nie je možné preniesť vlastníctvo súboru alebo priečinka, ktorý nevlastníte",
+ "Cancel" : "Zrušiť",
"%s used" : "%s použitých",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Využité: %1$s z %2$s",
diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json
index b345642c954..26fc9a2a08a 100644
--- a/apps/files/l10n/sk.json
+++ b/apps/files/l10n/sk.json
@@ -190,7 +190,6 @@
"Unable to change the favourite state of the file" : "Nie je možné zmeniť stav „obľúbené“ daného súboru",
"Error while loading the file data" : "Chyba pri načítaní údajov súboru",
"Pick a template for {name}" : "Vyberte šablónu pre {name}",
- "Cancel" : "Zrušiť",
"Create" : "Vytvoriť",
"Create a new file with the selected template" : "Vytvoriť nový súbor pomocou vybranej šablóny",
"Creating file" : "Vyváram súbor",
@@ -224,6 +223,7 @@
"Unlimited" : "Neobmedzené",
"Search users" : "Hľadať používateľov",
"Cannot transfer ownership of a file or folder you don't own" : "Nie je možné preniesť vlastníctvo súboru alebo priečinka, ktorý nevlastníte",
+ "Cancel" : "Zrušiť",
"%s used" : "%s použitých",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Využité: %1$s z %2$s",
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index f94fa81b93f..226ba1d459d 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -178,7 +178,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Ni mogoče spremeniti stanja priljubljenosti datoteke",
"Error while loading the file data" : "Prišlo je do napake med nalaganjem podatkov računa",
"Pick a template for {name}" : "Izbor predloge za {name}",
- "Cancel" : "Prekliči",
"Create" : "Ustvari",
"Create a new file with the selected template" : "Ustvari novo datoteko z izbrano predlogo",
"Creating file" : "Poteka ustvarjanje datoteke",
@@ -212,6 +211,7 @@ OC.L10N.register(
"Unlimited" : "Neomejeno",
"Search users" : "Iskanje uporabnikov",
"Cannot transfer ownership of a file or folder you don't own" : "Ni mogoče prenesti lastništva datotek in map, katerih niste lastnik",
+ "Cancel" : "Prekliči",
"%s used" : "Uporabljeno %s",
"%1$s of %2$s used" : "Uporabljeno %1$s od %2$s",
"Settings" : "Nastavitve",
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index 412dd09c415..c1bb5e2e683 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -176,7 +176,6 @@
"Unable to change the favourite state of the file" : "Ni mogoče spremeniti stanja priljubljenosti datoteke",
"Error while loading the file data" : "Prišlo je do napake med nalaganjem podatkov računa",
"Pick a template for {name}" : "Izbor predloge za {name}",
- "Cancel" : "Prekliči",
"Create" : "Ustvari",
"Create a new file with the selected template" : "Ustvari novo datoteko z izbrano predlogo",
"Creating file" : "Poteka ustvarjanje datoteke",
@@ -210,6 +209,7 @@
"Unlimited" : "Neomejeno",
"Search users" : "Iskanje uporabnikov",
"Cannot transfer ownership of a file or folder you don't own" : "Ni mogoče prenesti lastništva datotek in map, katerih niste lastnik",
+ "Cancel" : "Prekliči",
"%s used" : "Uporabljeno %s",
"%1$s of %2$s used" : "Uporabljeno %1$s od %2$s",
"Settings" : "Nastavitve",
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index c955c336e42..2c0e68d66bf 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -106,7 +106,6 @@ OC.L10N.register(
"Additional settings" : "Konfigurime shtesë",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Kopjo në dërrasë ",
- "Cancel" : "Anullo",
"Create" : "Krijo",
"Delete permanently" : "Fshije përgjithmonë",
"Upload some content or sync with your devices!" : "Ngarkoni ca lëndë ose bëni njëkohësim me pajisjet tuaja!",
@@ -128,6 +127,7 @@ OC.L10N.register(
"New" : "E re",
"Copied!" : "E kopjuar!",
"Unlimited" : "E palimituar",
+ "Cancel" : "Anullo",
"%s used" : "%s të përdorura",
"%1$s of %2$s used" : "%1$s e %2$s përdorur",
"Settings" : "Rregullime",
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index ac708ef764d..ed23ea8645e 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -104,7 +104,6 @@
"Additional settings" : "Konfigurime shtesë",
"WebDAV" : "WebDAV",
"Copy to clipboard" : "Kopjo në dërrasë ",
- "Cancel" : "Anullo",
"Create" : "Krijo",
"Delete permanently" : "Fshije përgjithmonë",
"Upload some content or sync with your devices!" : "Ngarkoni ca lëndë ose bëni njëkohësim me pajisjet tuaja!",
@@ -126,6 +125,7 @@
"New" : "E re",
"Copied!" : "E kopjuar!",
"Unlimited" : "E palimituar",
+ "Cancel" : "Anullo",
"%s used" : "%s të përdorura",
"%1$s of %2$s used" : "%1$s e %2$s përdorur",
"Settings" : "Rregullime",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index 6979b7d8c59..8ea8b024f28 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Направи нову фасциклу",
"Upload file" : "Отпреми фајл",
"Recent" : "Скорашњи",
+ "This file has the tag {tag}" : "Овај фајл има ознаку {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Овај фајл има ознаке {firstTags} и {lastTag}",
"Not favorited" : "Није омиљено",
"Remove from favorites" : "Избаци из омиљених",
"Add to favorites" : "Додај у омиљене",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Неуспела промена стања омиљености фајла",
"Error while loading the file data" : "Грешка при учитавању података фајла",
"Pick a template for {name}" : "Изаберите шаблон за {name}",
- "Cancel" : "Поништи",
"Create" : "Направи",
"Create a new file with the selected template" : "Креирање новог фајла по изабраном шаблону",
"Creating file" : "Креирање фајла",
@@ -256,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Неограничено",
"Search users" : "Претражи кориснике",
"Cannot transfer ownership of a file or folder you don't own" : "Не можете пренети власништво фајла или фасцикле које нису Ваше",
+ "Cancel" : "Поништи",
"%s used" : "%s искоришћено",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Заузето %1$s од %2$s",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index 8a0d1944f0d..da1f37a7841 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -107,6 +107,8 @@
"Create new folder" : "Направи нову фасциклу",
"Upload file" : "Отпреми фајл",
"Recent" : "Скорашњи",
+ "This file has the tag {tag}" : "Овај фајл има ознаку {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Овај фајл има ознаке {firstTags} и {lastTag}",
"Not favorited" : "Није омиљено",
"Remove from favorites" : "Избаци из омиљених",
"Add to favorites" : "Додај у омиљене",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Неуспела промена стања омиљености фајла",
"Error while loading the file data" : "Грешка при учитавању података фајла",
"Pick a template for {name}" : "Изаберите шаблон за {name}",
- "Cancel" : "Поништи",
"Create" : "Направи",
"Create a new file with the selected template" : "Креирање новог фајла по изабраном шаблону",
"Creating file" : "Креирање фајла",
@@ -254,6 +255,7 @@
"Unlimited" : "Неограничено",
"Search users" : "Претражи кориснике",
"Cannot transfer ownership of a file or folder you don't own" : "Не можете пренети власништво фајла или фасцикле које нису Ваше",
+ "Cancel" : "Поништи",
"%s used" : "%s искоришћено",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Заузето %1$s од %2$s",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index a8778620673..27345acd789 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Skapa ny mapp",
"Upload file" : "Ladda upp fil",
"Recent" : "Senaste",
+ "This file has the tag {tag}" : "Den här filen har taggen {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Den här filen har taggarna {firstTags} och {lastTag}",
"Not favorited" : "Inte favoriserade",
"Remove from favorites" : "Ta bort från favoriter",
"Add to favorites" : "Lägg till i favoriter",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Kan inte ändra filens favoritstatus",
"Error while loading the file data" : "Fel vid inläsning av fildata",
"Pick a template for {name}" : "Välj en mall för {name}",
- "Cancel" : "Avbryt",
"Create" : "Skapa",
"Create a new file with the selected template" : "Skapa en ny fil med den valda mallen",
"Creating file" : "Skapar fil",
@@ -256,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Obegränsad",
"Search users" : "Sök användare",
"Cannot transfer ownership of a file or folder you don't own" : "Det går inte att överföra ägarskap av en fil eller mapp som du inte äger",
+ "Cancel" : "Avbryt",
"%s used" : "%s använt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s av %2$s använt",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 720c0edba5d..1768c2679d3 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -107,6 +107,8 @@
"Create new folder" : "Skapa ny mapp",
"Upload file" : "Ladda upp fil",
"Recent" : "Senaste",
+ "This file has the tag {tag}" : "Den här filen har taggen {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Den här filen har taggarna {firstTags} och {lastTag}",
"Not favorited" : "Inte favoriserade",
"Remove from favorites" : "Ta bort från favoriter",
"Add to favorites" : "Lägg till i favoriter",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Kan inte ändra filens favoritstatus",
"Error while loading the file data" : "Fel vid inläsning av fildata",
"Pick a template for {name}" : "Välj en mall för {name}",
- "Cancel" : "Avbryt",
"Create" : "Skapa",
"Create a new file with the selected template" : "Skapa en ny fil med den valda mallen",
"Creating file" : "Skapar fil",
@@ -254,6 +255,7 @@
"Unlimited" : "Obegränsad",
"Search users" : "Sök användare",
"Cannot transfer ownership of a file or folder you don't own" : "Det går inte att överföra ägarskap av en fil eller mapp som du inte äger",
+ "Cancel" : "Avbryt",
"%s used" : "%s använt",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "%1$s av %2$s använt",
diff --git a/apps/files/l10n/th.js b/apps/files/l10n/th.js
index 6cf20e63db5..a4c56376c05 100644
--- a/apps/files/l10n/th.js
+++ b/apps/files/l10n/th.js
@@ -197,7 +197,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "ไม่สามารถเปลี่ยนสถานะรายการโปรดของไฟล์",
"Error while loading the file data" : "ข้อผิดพลาดขณะโหลดข้อมูลไฟล์",
"Pick a template for {name}" : "เลือกเทมเพลตสำหรับ {name}",
- "Cancel" : "ยกเลิก",
"Create" : "สร้าง",
"Create a new file with the selected template" : "สร้างไฟล์ใหม่ด้วยเทมเพลตที่เลือก",
"Creating file" : "กำลังสร้างไฟล์",
@@ -231,6 +230,7 @@ OC.L10N.register(
"Unlimited" : "ไม่จำกัด",
"Search users" : "ค้นหาผู้ใช้",
"Cannot transfer ownership of a file or folder you don't own" : "ไม่สามารถโอนย้ายความเป็นเจ้าของไฟล์หรือโฟลเดอร์ที่คุณไม่ได้เป็นเจ้าของ",
+ "Cancel" : "ยกเลิก",
"%s used" : "ใช้ไป %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "ใช้ไป %1$s จาก %2$s",
diff --git a/apps/files/l10n/th.json b/apps/files/l10n/th.json
index e06ea17b128..b6fc340af24 100644
--- a/apps/files/l10n/th.json
+++ b/apps/files/l10n/th.json
@@ -195,7 +195,6 @@
"Unable to change the favourite state of the file" : "ไม่สามารถเปลี่ยนสถานะรายการโปรดของไฟล์",
"Error while loading the file data" : "ข้อผิดพลาดขณะโหลดข้อมูลไฟล์",
"Pick a template for {name}" : "เลือกเทมเพลตสำหรับ {name}",
- "Cancel" : "ยกเลิก",
"Create" : "สร้าง",
"Create a new file with the selected template" : "สร้างไฟล์ใหม่ด้วยเทมเพลตที่เลือก",
"Creating file" : "กำลังสร้างไฟล์",
@@ -229,6 +228,7 @@
"Unlimited" : "ไม่จำกัด",
"Search users" : "ค้นหาผู้ใช้",
"Cannot transfer ownership of a file or folder you don't own" : "ไม่สามารถโอนย้ายความเป็นเจ้าของไฟล์หรือโฟลเดอร์ที่คุณไม่ได้เป็นเจ้าของ",
+ "Cancel" : "ยกเลิก",
"%s used" : "ใช้ไป %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "ใช้ไป %1$s จาก %2$s",
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index 1948442a290..7ac55c3fb33 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Klasör ekle",
"Upload file" : "Dosya yükle",
"Recent" : "Son",
+ "This file has the tag {tag}" : "Dosya {tag} olarak etiketlenmiş",
+ "This file has the tags {firstTags} and {lastTag}" : "Dosya {firstTags} ve {lastTag} olarak etiketlenmiş",
"Not favorited" : "Sık kullanılanlarda değil",
"Remove from favorites" : "Sık kullanılanlardan kaldır",
"Add to favorites" : "Sık kullanılanlara ekle",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Dosyanın sık kullanılan durumu değiştirilemedi",
"Error while loading the file data" : "Dosya verileri yüklenirken sorun çıktı",
"Pick a template for {name}" : "{name} için bir kalıp seçin",
- "Cancel" : "İptal",
"Create" : "Ekle",
"Create a new file with the selected template" : "Seçilmiş kalıp ile yeni bir dosya ekle",
"Creating file" : "Dosya ekleniyor",
@@ -230,6 +231,7 @@ OC.L10N.register(
"Delete permanently" : "Kalıcı olarak sil",
"Set up templates folder" : "Kalıp klasörünü ayarlayın",
"Templates" : "Kalıplar",
+ "Create new templates folder" : "Yeni kalıp klasörü oluştur",
"Unable to initialize the templates directory" : "Kalıp klasörü hazırlanamadı",
"Toggle %1$s sublist" : "%1$s alt listesini aç/kapat",
"Toggle grid view" : "Tablo görünümünü değiştir",
@@ -255,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Sınırsız",
"Search users" : "Kullanıcı arama",
"Cannot transfer ownership of a file or folder you don't own" : "Sahibi olmadığınız bir dosya ya da klasörün sahipliğini aktaramazsınız",
+ "Cancel" : "İptal",
"%s used" : "%s kullanılıyor",
"%s%%" : "%%%s",
"%1$s of %2$s used" : "%1$s / %2$s kullanıldı",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 9a6dfb0505c..c24275a142a 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -107,6 +107,8 @@
"Create new folder" : "Klasör ekle",
"Upload file" : "Dosya yükle",
"Recent" : "Son",
+ "This file has the tag {tag}" : "Dosya {tag} olarak etiketlenmiş",
+ "This file has the tags {firstTags} and {lastTag}" : "Dosya {firstTags} ve {lastTag} olarak etiketlenmiş",
"Not favorited" : "Sık kullanılanlarda değil",
"Remove from favorites" : "Sık kullanılanlardan kaldır",
"Add to favorites" : "Sık kullanılanlara ekle",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Dosyanın sık kullanılan durumu değiştirilemedi",
"Error while loading the file data" : "Dosya verileri yüklenirken sorun çıktı",
"Pick a template for {name}" : "{name} için bir kalıp seçin",
- "Cancel" : "İptal",
"Create" : "Ekle",
"Create a new file with the selected template" : "Seçilmiş kalıp ile yeni bir dosya ekle",
"Creating file" : "Dosya ekleniyor",
@@ -228,6 +229,7 @@
"Delete permanently" : "Kalıcı olarak sil",
"Set up templates folder" : "Kalıp klasörünü ayarlayın",
"Templates" : "Kalıplar",
+ "Create new templates folder" : "Yeni kalıp klasörü oluştur",
"Unable to initialize the templates directory" : "Kalıp klasörü hazırlanamadı",
"Toggle %1$s sublist" : "%1$s alt listesini aç/kapat",
"Toggle grid view" : "Tablo görünümünü değiştir",
@@ -253,6 +255,7 @@
"Unlimited" : "Sınırsız",
"Search users" : "Kullanıcı arama",
"Cannot transfer ownership of a file or folder you don't own" : "Sahibi olmadığınız bir dosya ya da klasörün sahipliğini aktaramazsınız",
+ "Cancel" : "İptal",
"%s used" : "%s kullanılıyor",
"%s%%" : "%%%s",
"%1$s of %2$s used" : "%1$s / %2$s kullanıldı",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index 3ec993ffd2c..f296aaa86f2 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "Створити новий каталог",
"Upload file" : "Завантажити файл",
"Recent" : "Останні",
+ "This file has the tag {tag}" : "Цей файл має тег {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Цей файл має теги {firstTags} та {lastTag}",
"Not favorited" : "Без зірочки",
"Remove from favorites" : "Прибрати з вподобаного",
"Add to favorites" : "Вподобати",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "Неможливо змінити стан \"вподобано\" для цього файла",
"Error while loading the file data" : "Помилка під час завантаження даних про файл",
"Pick a template for {name}" : "Вибрати шаблон для {name}",
- "Cancel" : "Скасувати",
"Create" : "Створити",
"Create a new file with the selected template" : "Створити новий файл на основі вибраного шаблону",
"Creating file" : "Створення файлу",
@@ -230,6 +231,7 @@ OC.L10N.register(
"Delete permanently" : "Вилучити назавжди",
"Set up templates folder" : "Встановити каталог з шаблонами",
"Templates" : "Шаблони",
+ "Create new templates folder" : "Створіть нову папку шаблонів",
"Unable to initialize the templates directory" : "Неможливо встановити каталог з шаблонами",
"Toggle %1$s sublist" : "Перемкнути вкладений список %1$s",
"Toggle grid view" : "Перемкнути подання сіткою",
@@ -255,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "Необмежено",
"Search users" : "Пошук користувачів",
"Cannot transfer ownership of a file or folder you don't own" : "Неможливо передати права власності на файл або каталог, що вам не належить",
+ "Cancel" : "Скасувати",
"%s used" : "%s використано",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Використано %1$s із %2$s",
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index 5ea26244c66..07ede91efcc 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -107,6 +107,8 @@
"Create new folder" : "Створити новий каталог",
"Upload file" : "Завантажити файл",
"Recent" : "Останні",
+ "This file has the tag {tag}" : "Цей файл має тег {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "Цей файл має теги {firstTags} та {lastTag}",
"Not favorited" : "Без зірочки",
"Remove from favorites" : "Прибрати з вподобаного",
"Add to favorites" : "Вподобати",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "Неможливо змінити стан \"вподобано\" для цього файла",
"Error while loading the file data" : "Помилка під час завантаження даних про файл",
"Pick a template for {name}" : "Вибрати шаблон для {name}",
- "Cancel" : "Скасувати",
"Create" : "Створити",
"Create a new file with the selected template" : "Створити новий файл на основі вибраного шаблону",
"Creating file" : "Створення файлу",
@@ -228,6 +229,7 @@
"Delete permanently" : "Вилучити назавжди",
"Set up templates folder" : "Встановити каталог з шаблонами",
"Templates" : "Шаблони",
+ "Create new templates folder" : "Створіть нову папку шаблонів",
"Unable to initialize the templates directory" : "Неможливо встановити каталог з шаблонами",
"Toggle %1$s sublist" : "Перемкнути вкладений список %1$s",
"Toggle grid view" : "Перемкнути подання сіткою",
@@ -253,6 +255,7 @@
"Unlimited" : "Необмежено",
"Search users" : "Пошук користувачів",
"Cannot transfer ownership of a file or folder you don't own" : "Неможливо передати права власності на файл або каталог, що вам не належить",
+ "Cancel" : "Скасувати",
"%s used" : "%s використано",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "Використано %1$s із %2$s",
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index 0555d27f525..1b36d9afeb5 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -177,7 +177,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "‎Không thể thay đổi trạng thái yêu thích của tệp‎",
"Error while loading the file data" : "‎Lỗi xảy ra trong khi tải dữ liệu tệp‎",
"Pick a template for {name}" : "‎Chọn một mẫu cho {name}‎",
- "Cancel" : "‎Hủy bỏ‎",
"Create" : "‎Tạo‎",
"Create a new file with the selected template" : "‎Tạo tệp mới với mẫu đã chọn‎",
"Creating file" : "‎Tạo tệp‎",
@@ -210,6 +209,7 @@ OC.L10N.register(
"Unlimited" : "Không giới hạn",
"Search users" : "‎Tìm kiếm người dùng‎",
"Cannot transfer ownership of a file or folder you don't own" : "‎Không thể chuyển quyền sở hữu tệp hoặc thư mục bạn không sở hữu‎",
+ "Cancel" : "‎Hủy bỏ‎",
"%s used" : "%s ‎đã sử dụng‎",
"%1$s of %2$s used" : "%1$s trên %2$s đã sử dụng",
"Settings" : "Cài đặt",
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index cff0a4e0871..b19c4152802 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -175,7 +175,6 @@
"Unable to change the favourite state of the file" : "‎Không thể thay đổi trạng thái yêu thích của tệp‎",
"Error while loading the file data" : "‎Lỗi xảy ra trong khi tải dữ liệu tệp‎",
"Pick a template for {name}" : "‎Chọn một mẫu cho {name}‎",
- "Cancel" : "‎Hủy bỏ‎",
"Create" : "‎Tạo‎",
"Create a new file with the selected template" : "‎Tạo tệp mới với mẫu đã chọn‎",
"Creating file" : "‎Tạo tệp‎",
@@ -208,6 +207,7 @@
"Unlimited" : "Không giới hạn",
"Search users" : "‎Tìm kiếm người dùng‎",
"Cannot transfer ownership of a file or folder you don't own" : "‎Không thể chuyển quyền sở hữu tệp hoặc thư mục bạn không sở hữu‎",
+ "Cancel" : "‎Hủy bỏ‎",
"%s used" : "%s ‎đã sử dụng‎",
"%1$s of %2$s used" : "%1$s trên %2$s đã sử dụng",
"Settings" : "Cài đặt",
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index 0d6978e5fbd..6991728aeba 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "创建新文件夹",
"Upload file" : "上传文件",
"Recent" : "最近",
+ "This file has the tag {tag}" : "这个文件有 {tag} 标签",
+ "This file has the tags {firstTags} and {lastTag}" : "这个文件有 {firstTags} 和 {lastTag} 标签",
"Not favorited" : "未收藏",
"Remove from favorites" : "从收藏中移除",
"Add to favorites" : "添加到收藏夹",
@@ -174,11 +176,15 @@ OC.L10N.register(
"Download file {name}" : "下载文件 {name}",
"\"{displayName}\" action executed successfully" : "\"{displayName}\" 操作执行成功",
"\"{displayName}\" action failed" : "\"{displayName}\" 操作执行失败",
+ "Total rows summary" : "总行摘要",
"Select all" : "全部选择",
"Unselect all" : "取消全选",
+ "\"{displayName}\" failed on some elements " : "“{displayName}”在某些元素上失败",
+ "\"{displayName}\" batch action executed successfully" : "批量操作 \"{displayName}\" 运行成功",
"ascending" : "升序",
"descending" : "降序",
"Sort list by {column} ({direction})" : "按 {column} ({direction}) 排序列表",
+ "This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list." : "该列表因为性能原因没有完全加载。文件将会在您浏览列表的时候加载。",
"Storage informations" : "存储信息",
"{usedQuotaByte} used" : "{usedQuotaByte} 已使用",
"{relative}% used" : "{relative}% 已使用",
@@ -187,6 +193,7 @@ OC.L10N.register(
"Choose file or folder to transfer" : "选择要转移的文件或文件夹",
"Change" : "修改",
"New owner" : "新的拥有者",
+ "Search for an account" : "搜索一个账户",
"Choose a file or folder to transfer" : "选择要转移的文件或文件夹",
"Transfer" : "转移",
"Transfer {path} to {userid}" : "将 {path} 转移给 {userid}",
@@ -216,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "无法修改文件的收藏状态",
"Error while loading the file data" : "加载文件数据时出错",
"Pick a template for {name}" : "给 {name} 挑选一个模板",
- "Cancel" : "取消",
"Create" : "创建",
"Create a new file with the selected template" : "用所选模板创建一个新文件",
"Creating file" : "正在创建文件",
@@ -225,6 +231,7 @@ OC.L10N.register(
"Delete permanently" : "彻底删除",
"Set up templates folder" : "设置模板文件夹",
"Templates" : "模板",
+ "Create new templates folder" : "新建模板文件夹",
"Unable to initialize the templates directory" : "无法初始化模板目录",
"Toggle %1$s sublist" : "切换 %1$s 子列表",
"Toggle grid view" : "切换网格视图",
@@ -250,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "无限制",
"Search users" : "搜索用户",
"Cannot transfer ownership of a file or folder you don't own" : "无法转让您未拥有的文件或文件夹的所有权",
+ "Cancel" : "取消",
"%s used" : "已使用 %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "已使用 %2$s 中的 %1$s",
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index 97a7c05d76c..3b848376b96 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -107,6 +107,8 @@
"Create new folder" : "创建新文件夹",
"Upload file" : "上传文件",
"Recent" : "最近",
+ "This file has the tag {tag}" : "这个文件有 {tag} 标签",
+ "This file has the tags {firstTags} and {lastTag}" : "这个文件有 {firstTags} 和 {lastTag} 标签",
"Not favorited" : "未收藏",
"Remove from favorites" : "从收藏中移除",
"Add to favorites" : "添加到收藏夹",
@@ -172,11 +174,15 @@
"Download file {name}" : "下载文件 {name}",
"\"{displayName}\" action executed successfully" : "\"{displayName}\" 操作执行成功",
"\"{displayName}\" action failed" : "\"{displayName}\" 操作执行失败",
+ "Total rows summary" : "总行摘要",
"Select all" : "全部选择",
"Unselect all" : "取消全选",
+ "\"{displayName}\" failed on some elements " : "“{displayName}”在某些元素上失败",
+ "\"{displayName}\" batch action executed successfully" : "批量操作 \"{displayName}\" 运行成功",
"ascending" : "升序",
"descending" : "降序",
"Sort list by {column} ({direction})" : "按 {column} ({direction}) 排序列表",
+ "This list is not fully rendered for performances reasons. The files will be rendered as you navigate through the list." : "该列表因为性能原因没有完全加载。文件将会在您浏览列表的时候加载。",
"Storage informations" : "存储信息",
"{usedQuotaByte} used" : "{usedQuotaByte} 已使用",
"{relative}% used" : "{relative}% 已使用",
@@ -185,6 +191,7 @@
"Choose file or folder to transfer" : "选择要转移的文件或文件夹",
"Change" : "修改",
"New owner" : "新的拥有者",
+ "Search for an account" : "搜索一个账户",
"Choose a file or folder to transfer" : "选择要转移的文件或文件夹",
"Transfer" : "转移",
"Transfer {path} to {userid}" : "将 {path} 转移给 {userid}",
@@ -214,7 +221,6 @@
"Unable to change the favourite state of the file" : "无法修改文件的收藏状态",
"Error while loading the file data" : "加载文件数据时出错",
"Pick a template for {name}" : "给 {name} 挑选一个模板",
- "Cancel" : "取消",
"Create" : "创建",
"Create a new file with the selected template" : "用所选模板创建一个新文件",
"Creating file" : "正在创建文件",
@@ -223,6 +229,7 @@
"Delete permanently" : "彻底删除",
"Set up templates folder" : "设置模板文件夹",
"Templates" : "模板",
+ "Create new templates folder" : "新建模板文件夹",
"Unable to initialize the templates directory" : "无法初始化模板目录",
"Toggle %1$s sublist" : "切换 %1$s 子列表",
"Toggle grid view" : "切换网格视图",
@@ -248,6 +255,7 @@
"Unlimited" : "无限制",
"Search users" : "搜索用户",
"Cannot transfer ownership of a file or folder you don't own" : "无法转让您未拥有的文件或文件夹的所有权",
+ "Cancel" : "取消",
"%s used" : "已使用 %s",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "已使用 %2$s 中的 %1$s",
diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js
index 61c7b00c1c2..7c7b266f1de 100644
--- a/apps/files/l10n/zh_HK.js
+++ b/apps/files/l10n/zh_HK.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "新增資料夾",
"Upload file" : "上傳檔案",
"Recent" : "最新",
+ "This file has the tag {tag}" : "此檔案有標籤 {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "此檔案有標籤 {firstTags} 與 {lastTag}",
"Not favorited" : "未加入至最愛",
"Remove from favorites" : "從最愛中移除",
"Add to favorites" : "加到我的最愛",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "無法更改檔案的最愛狀態",
"Error while loading the file data" : "載入檔案資料失敗",
"Pick a template for {name}" : "為 {name} 選擇一個模板",
- "Cancel" : "取消",
"Create" : "創建",
"Create a new file with the selected template" : "使用所選模板創建一個新檔案",
"Creating file" : "創建檔案中",
@@ -256,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "無限制",
"Search users" : "搜尋用戶",
"Cannot transfer ownership of a file or folder you don't own" : "無法轉移您未擁有的檔案或是資料夾所有權。",
+ "Cancel" : "取消",
"%s used" : "使用了 %s 的存儲空間",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "在 %2$s 中使用了 %1$s",
diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json
index c9dbf1a731a..4a9a3c3ac7a 100644
--- a/apps/files/l10n/zh_HK.json
+++ b/apps/files/l10n/zh_HK.json
@@ -107,6 +107,8 @@
"Create new folder" : "新增資料夾",
"Upload file" : "上傳檔案",
"Recent" : "最新",
+ "This file has the tag {tag}" : "此檔案有標籤 {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "此檔案有標籤 {firstTags} 與 {lastTag}",
"Not favorited" : "未加入至最愛",
"Remove from favorites" : "從最愛中移除",
"Add to favorites" : "加到我的最愛",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "無法更改檔案的最愛狀態",
"Error while loading the file data" : "載入檔案資料失敗",
"Pick a template for {name}" : "為 {name} 選擇一個模板",
- "Cancel" : "取消",
"Create" : "創建",
"Create a new file with the selected template" : "使用所選模板創建一個新檔案",
"Creating file" : "創建檔案中",
@@ -254,6 +255,7 @@
"Unlimited" : "無限制",
"Search users" : "搜尋用戶",
"Cannot transfer ownership of a file or folder you don't own" : "無法轉移您未擁有的檔案或是資料夾所有權。",
+ "Cancel" : "取消",
"%s used" : "使用了 %s 的存儲空間",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "在 %2$s 中使用了 %1$s",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index d686db8aeaa..bdf4ec63033 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -109,6 +109,8 @@ OC.L10N.register(
"Create new folder" : "新增資料夾",
"Upload file" : "上傳檔案",
"Recent" : "近期",
+ "This file has the tag {tag}" : "此檔案有標籤 {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "此檔案有標籤 {firstTags} 與 {lastTag}",
"Not favorited" : "未加入至最愛",
"Remove from favorites" : "從最愛中移除",
"Add to favorites" : "新增至最愛",
@@ -221,7 +223,6 @@ OC.L10N.register(
"Unable to change the favourite state of the file" : "無法更改檔案的最愛狀態",
"Error while loading the file data" : "載入檔案資料時發生錯誤",
"Pick a template for {name}" : "為 {name} 挑選範本",
- "Cancel" : "取消",
"Create" : "建立",
"Create a new file with the selected template" : "使用選定的範本建立新檔案",
"Creating file" : "正在建立檔案",
@@ -256,6 +257,7 @@ OC.L10N.register(
"Unlimited" : "無限制",
"Search users" : "搜尋使用者",
"Cannot transfer ownership of a file or folder you don't own" : "無法轉移您未擁有的檔案或是資料夾所有權",
+ "Cancel" : "取消",
"%s used" : "%s 已使用",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "在 %2$s 中使用了 %1$s ",
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 2cde46bda77..f204f2214e7 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -107,6 +107,8 @@
"Create new folder" : "新增資料夾",
"Upload file" : "上傳檔案",
"Recent" : "近期",
+ "This file has the tag {tag}" : "此檔案有標籤 {tag}",
+ "This file has the tags {firstTags} and {lastTag}" : "此檔案有標籤 {firstTags} 與 {lastTag}",
"Not favorited" : "未加入至最愛",
"Remove from favorites" : "從最愛中移除",
"Add to favorites" : "新增至最愛",
@@ -219,7 +221,6 @@
"Unable to change the favourite state of the file" : "無法更改檔案的最愛狀態",
"Error while loading the file data" : "載入檔案資料時發生錯誤",
"Pick a template for {name}" : "為 {name} 挑選範本",
- "Cancel" : "取消",
"Create" : "建立",
"Create a new file with the selected template" : "使用選定的範本建立新檔案",
"Creating file" : "正在建立檔案",
@@ -254,6 +255,7 @@
"Unlimited" : "無限制",
"Search users" : "搜尋使用者",
"Cannot transfer ownership of a file or folder you don't own" : "無法轉移您未擁有的檔案或是資料夾所有權",
+ "Cancel" : "取消",
"%s used" : "%s 已使用",
"%s%%" : "%s%%",
"%1$s of %2$s used" : "在 %2$s 中使用了 %1$s ",
diff --git a/apps/files/lib/Command/Delete.php b/apps/files/lib/Command/Delete.php
new file mode 100644
index 00000000000..da535568702
--- /dev/null
+++ b/apps/files/lib/Command/Delete.php
@@ -0,0 +1,116 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2023 Robin Appelman <robin@icewind.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files\Command;
+
+use OC\Core\Command\Info\FileUtils;
+use OCA\Files_Sharing\SharedStorage;
+use OCP\Files\Folder;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Helper\QuestionHelper;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Question\ConfirmationQuestion;
+
+class Delete extends Command {
+ private FileUtils $fileUtils;
+
+ public function __construct(FileUtils $fileUtils) {
+ $this->fileUtils = $fileUtils;
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this
+ ->setName('files:delete')
+ ->setDescription('Delete a file or folder')
+ ->addArgument('file', InputArgument::REQUIRED, "File id or path")
+ ->addOption('force', 'f', InputOption::VALUE_NONE, "Don't ask for configuration and don't output any warnings");
+ }
+
+ public function execute(InputInterface $input, OutputInterface $output): int {
+ $fileInput = $input->getArgument('file');
+ $inputIsId = is_numeric($fileInput);
+ $force = $input->getOption('force');
+ $node = $this->fileUtils->getNode($fileInput);
+
+ if (!$node) {
+ $output->writeln("<error>file $fileInput not found</error>");
+ return 1;
+ }
+
+ $deleteConfirmed = $force;
+ if (!$deleteConfirmed) {
+ /** @var QuestionHelper $helper */
+ $helper = $this->getHelper('question');
+ $storage = $node->getStorage();
+ if (!$inputIsId && $storage->instanceOfStorage(SharedStorage::class) && $node->getInternalPath() === '') {
+ /** @var SharedStorage $storage */
+ [,$user] = explode('/', $fileInput, 3);
+ $question = new ConfirmationQuestion("<info>$fileInput</info> in a shared file, do you want to unshare the file from <info>$user</info> instead of deleting the source file? [Y/n] ", true);
+ if ($helper->ask($input, $output, $question)) {
+ $storage->unshareStorage();
+ return 0;
+ } else {
+ $node = $storage->getShare()->getNode();
+ $output->writeln("");
+ }
+ }
+
+ $filesByUsers = $this->fileUtils->getFilesByUser($node);
+ if (count($filesByUsers) > 1) {
+ $output->writeln("Warning: the provided file is accessible by more than one user");
+ $output->writeln(" all of the following users will lose access to the file when deleted:");
+ $output->writeln("");
+ foreach ($filesByUsers as $user => $filesByUser) {
+ $output->writeln($user . ":");
+ foreach($filesByUser as $file) {
+ $output->writeln(" - " . $file->getPath());
+ }
+ }
+ $output->writeln("");
+ }
+
+ if ($node instanceof Folder) {
+ $maybeContents = " and all it's contents";
+ } else {
+ $maybeContents = "";
+ }
+ $question = new ConfirmationQuestion("Delete " . $node->getPath() . $maybeContents . "? [y/N] ", false);
+ $deleteConfirmed = $helper->ask($input, $output, $question);
+ }
+
+ if ($deleteConfirmed) {
+ if ($node->isDeletable()) {
+ $node->delete();
+ } else {
+ $output->writeln("<error>File cannot be deleted, insufficient permissions.</error>");
+ }
+ }
+
+ return 0;
+ }
+
+}
diff --git a/apps/files/lib/Command/Get.php b/apps/files/lib/Command/Get.php
new file mode 100644
index 00000000000..7bdb4cb59ee
--- /dev/null
+++ b/apps/files/lib/Command/Get.php
@@ -0,0 +1,89 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2023 Robin Appelman <robin@icewind.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files\Command;
+
+
+use OC\Core\Command\Info\FileUtils;
+use OCP\Files\File;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Get extends Command {
+ private FileUtils $fileUtils;
+
+ public function __construct(FileUtils $fileUtils) {
+ $this->fileUtils = $fileUtils;
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this
+ ->setName('files:get')
+ ->setDescription('Get the contents of a file')
+ ->addArgument('file', InputArgument::REQUIRED, "Source file id or Nextcloud path")
+ ->addArgument('output', InputArgument::OPTIONAL, "Target local file to output to, defaults to STDOUT");
+ }
+
+ public function execute(InputInterface $input, OutputInterface $output): int {
+ $fileInput = $input->getArgument('file');
+ $outputName = $input->getArgument('output');
+ $node = $this->fileUtils->getNode($fileInput);
+
+ if (!$node) {
+ $output->writeln("<error>file $fileInput not found</error>");
+ return 1;
+ }
+
+ if ($node instanceof File) {
+ $isTTY = stream_isatty(STDOUT);
+ if ($outputName === null && $isTTY && $node->getMimePart() !== 'text') {
+ $output->writeln([
+ "<error>Warning: Binary output can mess up your terminal</error>",
+ " Use <info>occ files:get $fileInput -</info> to output it to the terminal anyway",
+ " Or <info>occ files:get $fileInput <FILE></info> to save to a file instead"
+ ]);
+ return 1;
+ }
+ $source = $node->fopen('r');
+ if (!$source) {
+ $output->writeln("<error>Failed to open $fileInput for reading</error>");
+ return 1;
+ }
+ $target = ($outputName === null || $outputName === '-') ? STDOUT : fopen($outputName, 'w');
+ if (!$target) {
+ $output->writeln("<error>Failed to open $outputName for reading</error>");
+ return 1;
+ }
+
+ stream_copy_to_stream($source, $target);
+ return 0;
+ } else {
+ $output->writeln("<error>$fileInput is a directory</error>");
+ return 1;
+ }
+ }
+
+}
diff --git a/apps/files/lib/Command/Put.php b/apps/files/lib/Command/Put.php
new file mode 100644
index 00000000000..f89ab8fb436
--- /dev/null
+++ b/apps/files/lib/Command/Put.php
@@ -0,0 +1,86 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2023 Robin Appelman <robin@icewind.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files\Command;
+
+
+use OC\Core\Command\Info\FileUtils;
+use OCP\Files\File;
+use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Put extends Command {
+ private FileUtils $fileUtils;
+ private IRootFolder $rootFolder;
+
+ public function __construct(FileUtils $fileUtils, IRootFolder $rootFolder) {
+ $this->fileUtils = $fileUtils;
+ $this->rootFolder = $rootFolder;
+ parent::__construct();
+ }
+
+ protected function configure(): void {
+ $this
+ ->setName('files:put')
+ ->setDescription('Write contents of a file')
+ ->addArgument('input', InputArgument::REQUIRED, "Source local path, use - to read from STDIN")
+ ->addArgument('file', InputArgument::REQUIRED, "Target Nextcloud file path to write to or fileid of existing file");
+ }
+
+ public function execute(InputInterface $input, OutputInterface $output): int {
+ $fileOutput = $input->getArgument('file');
+ $inputName = $input->getArgument('input');
+ $node = $this->fileUtils->getNode($fileOutput);
+
+ if ($node instanceof Folder) {
+ $output->writeln("<error>$fileOutput is a folder</error>");
+ return 1;
+ }
+ if (!$node and is_numeric($fileOutput)) {
+ $output->writeln("<error>$fileOutput not found</error>");
+ return 1;
+ }
+
+ $source = ($inputName === null || $inputName === '-') ? STDIN : fopen($inputName, 'r');
+ if (!$source) {
+ $output->writeln("<error>Failed to open $inputName</error>");
+ return 1;
+ }
+ if ($node instanceof File) {
+ $target = $node->fopen('w');
+ if (!$target) {
+ $output->writeln("<error>Failed to open $fileOutput</error>");
+ return 1;
+ }
+ stream_copy_to_stream($source, $target);
+ } else {
+ $this->rootFolder->newFile($fileOutput, $source);
+ }
+ return 0;
+ }
+
+}
diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php
index a59665c56e9..6c7a607d2af 100644
--- a/apps/files/lib/Command/Scan.php
+++ b/apps/files/lib/Command/Scan.php
@@ -58,6 +58,7 @@ class Scan extends Base {
protected float $execTime = 0;
protected int $foldersCounter = 0;
protected int $filesCounter = 0;
+ protected int $errorsCounter = 0;
private IRootFolder $root;
private MetadataManager $metadataManager;
@@ -148,10 +149,12 @@ class Scan extends Base {
$scanner->listen('\OC\Files\Utils\Scanner', 'StorageNotAvailable', function (StorageNotAvailableException $e) use ($output) {
$output->writeln('Error while scanning, storage not available (' . $e->getMessage() . ')', OutputInterface::VERBOSITY_VERBOSE);
+ ++$this->errorsCounter;
});
$scanner->listen('\OC\Files\Utils\Scanner', 'normalizedNameMismatch', function ($fullPath) use ($output) {
$output->writeln("\t<error>Entry \"" . $fullPath . '" will not be accessible due to incompatible encoding</error>');
+ ++$this->errorsCounter;
});
try {
@@ -164,14 +167,17 @@ class Scan extends Base {
$output->writeln("<error>Home storage for user $user not writable or 'files' subdirectory missing</error>");
$output->writeln(' ' . $e->getMessage());
$output->writeln('Make sure you\'re running the scan command only as the user the web server runs as');
+ ++$this->errorsCounter;
} catch (InterruptedException $e) {
# exit the function if ctrl-c has been pressed
$output->writeln('Interrupted by user');
} catch (NotFoundException $e) {
$output->writeln('<error>Path not found: ' . $e->getMessage() . '</error>');
+ ++$this->errorsCounter;
} catch (\Exception $e) {
$output->writeln('<error>Exception during scan: ' . $e->getMessage() . '</error>');
$output->writeln('<error>' . $e->getTraceAsString() . '</error>');
+ ++$this->errorsCounter;
}
}
@@ -192,11 +198,6 @@ class Scan extends Base {
$users = $input->getArgument('user_id');
}
- # restrict the verbosity level to VERBOSITY_VERBOSE
- if ($output->getVerbosity() > OutputInterface::VERBOSITY_VERBOSE) {
- $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
- }
-
# check quantity of users to be process and show it on the command line
$users_total = count($users);
if ($users_total === 0) {
@@ -204,7 +205,7 @@ class Scan extends Base {
return 1;
}
- $this->initTools();
+ $this->initTools($output);
$user_count = 0;
foreach ($users as $user) {
@@ -236,15 +237,19 @@ class Scan extends Base {
/**
* Initialises some useful tools for the Command
*/
- protected function initTools() {
+ protected function initTools(OutputInterface $output) {
// Start the timer
$this->execTime = -microtime(true);
// Convert PHP errors to exceptions
- set_error_handler([$this, 'exceptionErrorHandler'], E_ALL);
+ set_error_handler(
+ fn (int $severity, string $message, string $file, int $line): bool =>
+ $this->exceptionErrorHandler($output, $severity, $message, $file, $line),
+ E_ALL
+ );
}
/**
- * Processes PHP errors as exceptions in order to be able to keep track of problems
+ * Processes PHP errors in order to be able to show them in the output
*
* @see https://www.php.net/manual/en/function.set-error-handler.php
*
@@ -252,15 +257,17 @@ class Scan extends Base {
* @param string $message
* @param string $file the filename that the error was raised in
* @param int $line the line number the error was raised
- *
- * @throws \ErrorException
*/
- public function exceptionErrorHandler($severity, $message, $file, $line) {
- if (!(error_reporting() & $severity)) {
- // This error code is not included in error_reporting
- return;
+ public function exceptionErrorHandler(OutputInterface $output, int $severity, string $message, string $file, int $line): bool {
+ if (($severity === E_DEPRECATED) || ($severity === E_USER_DEPRECATED)) {
+ // Do not show deprecation warnings
+ return false;
}
- throw new \ErrorException($message, 0, $severity, $file, $line);
+ $e = new \ErrorException($message, 0, $severity, $file, $line);
+ $output->writeln('<error>Error during scan: ' . $e->getMessage() . '</error>');
+ $output->writeln('<error>' . $e->getTraceAsString() . '</error>', OutputInterface::VERBOSITY_VERY_VERBOSE);
+ ++$this->errorsCounter;
+ return true;
}
/**
@@ -271,28 +278,18 @@ class Scan extends Base {
$this->execTime += microtime(true);
$headers = [
- 'Folders', 'Files', 'Elapsed time'
+ 'Folders',
+ 'Files',
+ 'Errors',
+ 'Elapsed time',
];
-
- $this->showSummary($headers, null, $output);
- }
-
- /**
- * Shows a summary of operations
- *
- * @param string[] $headers
- * @param string[] $rows
- * @param OutputInterface $output
- */
- protected function showSummary($headers, $rows, OutputInterface $output) {
$niceDate = $this->formatExecTime();
- if (!$rows) {
- $rows = [
- $this->foldersCounter,
- $this->filesCounter,
- $niceDate,
- ];
- }
+ $rows = [
+ $this->foldersCounter,
+ $this->filesCounter,
+ $this->errorsCounter,
+ $niceDate,
+ ];
$table = new Table($output);
$table
->setHeaders($headers)
diff --git a/apps/files/src/components/TemplatePreview.vue b/apps/files/src/components/TemplatePreview.vue
index 832e4d9dda2..9b7827e1ebe 100644
--- a/apps/files/src/components/TemplatePreview.vue
+++ b/apps/files/src/components/TemplatePreview.vue
@@ -182,7 +182,7 @@ export default {
border-radius: var(--border-radius-large);
input:checked + label > & {
- border-color: var(--color-primary);
+ border-color: var(--color-primary-element);
}
&--failed {
diff --git a/apps/files/src/views/TemplatePicker.vue b/apps/files/src/views/TemplatePicker.vue
index 79264d56074..a6bb9809b10 100644
--- a/apps/files/src/views/TemplatePicker.vue
+++ b/apps/files/src/views/TemplatePicker.vue
@@ -24,7 +24,7 @@
<NcModal v-if="opened"
:clear-view-delay="-1"
class="templates-picker"
- size="normal"
+ size="large"
@close="close">
<form class="templates-picker__form"
:style="style"
@@ -47,9 +47,6 @@
<!-- Cancel and submit -->
<div class="templates-picker__buttons">
- <button @click="close">
- {{ t('files', 'Cancel') }}
- </button>
<input type="submit"
class="primary"
:value="t('files', 'Create')"
@@ -75,7 +72,6 @@ import TemplatePreview from '../components/TemplatePreview.vue'
const border = 2
const margin = 8
-const width = margin * 20
export default {
name: 'TemplatePicker',
@@ -136,6 +132,11 @@ export default {
* @return {object}
*/
style() {
+ // Fallback to 16:9 landscape ratio
+ const ratio = this.provider.ratio ? this.provider.ratio : 1.77
+ // Landscape templates should be wider than tall ones
+ // We fit 3 templates per row at max for landscape and 4 for portrait
+ const width = ratio > 1 ? margin * 30 : margin * 20
return {
'--margin': margin + 'px',
'--width': width + 'px',
@@ -275,7 +276,7 @@ export default {
&__buttons {
display: flex;
- justify-content: space-between;
+ justify-content: end;
padding: calc(var(--margin) * 2) var(--margin);
position: sticky;
bottom: 0;
diff --git a/apps/files_external/l10n/uk.js b/apps/files_external/l10n/uk.js
index c68c9ef042c..a5efe11cacc 100644
--- a/apps/files_external/l10n/uk.js
+++ b/apps/files_external/l10n/uk.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Error configuring OAuth2" : "Помилка налаштування OAuth2",
"Generate keys" : "Створити ключі",
"Error generating key pair" : "Помилка створення ключової пари",
+ "Type to select user or group." : "Почніть друкувати, щоб вибрати користувача або групу.",
"(Group)" : "(група)",
"Compatibility with Mac NFD encoding (slow)" : "Сумісність із кодуванням Mac NFD (повільно)",
"Enable encryption" : "Увімкнути шифрування",
@@ -89,6 +90,7 @@ OC.L10N.register(
"Hostname" : "Ім'я хоста",
"Port" : "Порт",
"Region" : "Регіон",
+ "Storage Class" : "Клас сховища",
"Enable SSL" : "Включити SSL",
"Enable Path Style" : "Включити стиль шляху",
"Legacy (v2) authentication" : "Legacy (v2) автентифікація",
@@ -134,6 +136,7 @@ OC.L10N.register(
"Available for" : "Доступний для",
"Click to recheck the configuration" : "Клацніть для повторної перевірки налаштувань",
"Add storage" : "Додати сховище",
+ "All users" : "Всі користувачі",
"Advanced settings" : "Розширені налаштування",
"Allow users to mount external storage" : "Дозволити користувачам монтувати зовнішні сховища",
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Глобальні облікові дані можна використовувати для автентифікації з кількома зовнішніми сховищами, які мають однакові облікові дані.",
diff --git a/apps/files_external/l10n/uk.json b/apps/files_external/l10n/uk.json
index 053dd1025ce..67126750632 100644
--- a/apps/files_external/l10n/uk.json
+++ b/apps/files_external/l10n/uk.json
@@ -8,6 +8,7 @@
"Error configuring OAuth2" : "Помилка налаштування OAuth2",
"Generate keys" : "Створити ключі",
"Error generating key pair" : "Помилка створення ключової пари",
+ "Type to select user or group." : "Почніть друкувати, щоб вибрати користувача або групу.",
"(Group)" : "(група)",
"Compatibility with Mac NFD encoding (slow)" : "Сумісність із кодуванням Mac NFD (повільно)",
"Enable encryption" : "Увімкнути шифрування",
@@ -87,6 +88,7 @@
"Hostname" : "Ім'я хоста",
"Port" : "Порт",
"Region" : "Регіон",
+ "Storage Class" : "Клас сховища",
"Enable SSL" : "Включити SSL",
"Enable Path Style" : "Включити стиль шляху",
"Legacy (v2) authentication" : "Legacy (v2) автентифікація",
@@ -132,6 +134,7 @@
"Available for" : "Доступний для",
"Click to recheck the configuration" : "Клацніть для повторної перевірки налаштувань",
"Add storage" : "Додати сховище",
+ "All users" : "Всі користувачі",
"Advanced settings" : "Розширені налаштування",
"Allow users to mount external storage" : "Дозволити користувачам монтувати зовнішні сховища",
"Global credentials can be used to authenticate with multiple external storages that have the same credentials." : "Глобальні облікові дані можна використовувати для автентифікації з кількома зовнішніми сховищами, які мають однакові облікові дані.",
diff --git a/apps/files_sharing/l10n/ar.js b/apps/files_sharing/l10n/ar.js
index 31b09e694a6..ab2ea35027a 100644
--- a/apps/files_sharing/l10n/ar.js
+++ b/apps/files_sharing/l10n/ar.js
@@ -36,6 +36,7 @@ OC.L10N.register(
"You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
"Terms of service" : "شروط الخدمة",
"Show list view" : "اظهر معاينات الروابط",
+ "Show grid view" : "أعرض شبكياً",
"No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
"Invalid server URL" : "عنوان الرابط للخادم غير صالح",
"Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
@@ -112,8 +113,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "عمليات الرفع العامة معطلة من قبل الادارة",
"Public upload is only possible for publicly shared folders" : "عمليات الرفع العامة مسموحة فقط في المجلدات العامة",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "مشاركة %s لارسال كلمة المرور من قبل التحدث نكست كلاود فشلت بسبب عدم تفعيل تطبيق التحدث.",
- "Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "فشلت مشاركة %1$s لأن الخلفية لا تسمح بالمشاركة من النوع %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "لا يمكن مشاركة الجماعات اذا التطبيق كان معطل",
"Please specify a valid circle" : "يرجى ادخال جماعة صحيحة",
"Sharing %s failed because the back end does not support room shares" : "فشلت مشاركة %s لأن الخلفية لا تدعم مشاركة الغرفة",
diff --git a/apps/files_sharing/l10n/ar.json b/apps/files_sharing/l10n/ar.json
index ffcf036f62a..06823ab4cd1 100644
--- a/apps/files_sharing/l10n/ar.json
+++ b/apps/files_sharing/l10n/ar.json
@@ -34,6 +34,7 @@
"You can upload into this folder" : "بإمكانك رفع الملفات إلى هذا المجلد",
"Terms of service" : "شروط الخدمة",
"Show list view" : "اظهر معاينات الروابط",
+ "Show grid view" : "أعرض شبكياً",
"No compatible server found at {remote}" : "لم يتم العثور على خادم متوافق في {remote}",
"Invalid server URL" : "عنوان الرابط للخادم غير صالح",
"Failed to add the public link to your Nextcloud" : "فشل في إضافة الرابط العام إلى الخادم السحابي الخاص بك",
@@ -110,8 +111,8 @@
"Public upload disabled by the administrator" : "عمليات الرفع العامة معطلة من قبل الادارة",
"Public upload is only possible for publicly shared folders" : "عمليات الرفع العامة مسموحة فقط في المجلدات العامة",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "مشاركة %s لارسال كلمة المرور من قبل التحدث نكست كلاود فشلت بسبب عدم تفعيل تطبيق التحدث.",
- "Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "فشلت مشاركة %1$s لأن الخلفية لا تسمح بالمشاركة من النوع %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "تاريخ غير صحيح, يجب أن يكون تنسيق التاريخ YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "لا يمكن مشاركة الجماعات اذا التطبيق كان معطل",
"Please specify a valid circle" : "يرجى ادخال جماعة صحيحة",
"Sharing %s failed because the back end does not support room shares" : "فشلت مشاركة %s لأن الخلفية لا تدعم مشاركة الغرفة",
diff --git a/apps/files_sharing/l10n/bg.js b/apps/files_sharing/l10n/bg.js
index f188439c09c..acceed139bf 100644
--- a/apps/files_sharing/l10n/bg.js
+++ b/apps/files_sharing/l10n/bg.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Публичното качване е е спряно от администратора",
"Public upload is only possible for publicly shared folders" : "Публичното качване е възможно само за публично споделени папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Споделянето %s на изпращането на паролата от Nextcloud Talk не бе успешно, тъй като Nextcloud Talk не е активирано",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделянето %1$s не бе успешно, защото вътрешния сървър не позволява споделяния от тип %2$s",
"Please specify a valid federated user ID" : "Моля, посочете валиден идентификатор на федериран потребител",
+ "Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Моля, посочете валиден идентификатор на федерирана група",
"You cannot share to a Circle if the app is not enabled" : "Не можете да споделяте с Кръг, ако приложението не е активирано",
"Please specify a valid circle" : "Моля, изберете валиден кръг",
diff --git a/apps/files_sharing/l10n/bg.json b/apps/files_sharing/l10n/bg.json
index 9e65e4408b7..712b2a8f67c 100644
--- a/apps/files_sharing/l10n/bg.json
+++ b/apps/files_sharing/l10n/bg.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Публичното качване е е спряно от администратора",
"Public upload is only possible for publicly shared folders" : "Публичното качване е възможно само за публично споделени папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Споделянето %s на изпращането на паролата от Nextcloud Talk не бе успешно, тъй като Nextcloud Talk не е активирано",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделянето %1$s не бе успешно, защото вътрешния сървър не позволява споделяния от тип %2$s",
"Please specify a valid federated user ID" : "Моля, посочете валиден идентификатор на федериран потребител",
+ "Invalid date, date format must be YYYY-MM-DD" : "Невалидна дата, форматът е различен от ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Моля, посочете валиден идентификатор на федерирана група",
"You cannot share to a Circle if the app is not enabled" : "Не можете да споделяте с Кръг, ако приложението не е активирано",
"Please specify a valid circle" : "Моля, изберете валиден кръг",
diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js
index f4f9a213671..ae8d4ff515c 100644
--- a/apps/files_sharing/l10n/ca.js
+++ b/apps/files_sharing/l10n/ca.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "S'ha desactivat la càrrega pública per part de l'administrador",
"Public upload is only possible for publicly shared folders" : "La càrrega pública només és possible per a carpetes compartides públicament",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "No s'ha pogut compartir %s enviant la contrasenya per Nextcloud Talk perquè Nextcloud Talk no està activat",
- "Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser AAAA-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "No s'ha pogut compartir %1$s perquè l'aplicació de fons no permet comparticions de tipus %2$s",
"Please specify a valid federated user ID" : "Especifiqueu un identificador d'usuari federat vàlid",
+ "Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser AAAA-MM-DD",
"Please specify a valid federated group ID" : "Especifiqueu un identificador de grup federat vàlid",
"You cannot share to a Circle if the app is not enabled" : "No podeu compartir en un cercle si l'aplicació no està activada",
"Please specify a valid circle" : "Especifiqueu un cercle vàlid",
diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json
index 565ece28926..c80e7f31fa6 100644
--- a/apps/files_sharing/l10n/ca.json
+++ b/apps/files_sharing/l10n/ca.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "S'ha desactivat la càrrega pública per part de l'administrador",
"Public upload is only possible for publicly shared folders" : "La càrrega pública només és possible per a carpetes compartides públicament",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "No s'ha pogut compartir %s enviant la contrasenya per Nextcloud Talk perquè Nextcloud Talk no està activat",
- "Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser AAAA-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "No s'ha pogut compartir %1$s perquè l'aplicació de fons no permet comparticions de tipus %2$s",
"Please specify a valid federated user ID" : "Especifiqueu un identificador d'usuari federat vàlid",
+ "Invalid date, date format must be YYYY-MM-DD" : "La data no és vàlida, el format de la data ha de ser AAAA-MM-DD",
"Please specify a valid federated group ID" : "Especifiqueu un identificador de grup federat vàlid",
"You cannot share to a Circle if the app is not enabled" : "No podeu compartir en un cercle si l'aplicació no està activada",
"Please specify a valid circle" : "Especifiqueu un cercle vàlid",
diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js
index b35e1aa8309..4fbe95049be 100644
--- a/apps/files_sharing/l10n/cs.js
+++ b/apps/files_sharing/l10n/cs.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Nahrávání veřejností zakázáno správcem",
"Public upload is only possible for publicly shared folders" : "Veřejné nahrávání je možné pouze do veřejně sdílených šložek",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sdílení %s posláním hesla přes Nextcloud Talk se nezdařilo, protože Nextcloud Talk není zapnutý",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby jeho formát byl RRRR-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sdílení %1$s se nezdařilo, protože podpůrná vrstva nepodporuje typ sdílení %2$s",
"Please specify a valid federated user ID" : "Zadejte platný federovaný identifikátor uživatele",
+ "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby jeho formát byl RRRR-MM-DD",
"Please specify a valid federated group ID" : "Zadejte platné federovaný identifikátor skupiny",
"You cannot share to a Circle if the app is not enabled" : "Do okruhu nemůžete sdílet, pokud není aplikace zapnuta",
"Please specify a valid circle" : "Zadejte platný okruh",
diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json
index 81950e1b477..19d7cf12846 100644
--- a/apps/files_sharing/l10n/cs.json
+++ b/apps/files_sharing/l10n/cs.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Nahrávání veřejností zakázáno správcem",
"Public upload is only possible for publicly shared folders" : "Veřejné nahrávání je možné pouze do veřejně sdílených šložek",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sdílení %s posláním hesla přes Nextcloud Talk se nezdařilo, protože Nextcloud Talk není zapnutý",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby jeho formát byl RRRR-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sdílení %1$s se nezdařilo, protože podpůrná vrstva nepodporuje typ sdílení %2$s",
"Please specify a valid federated user ID" : "Zadejte platný federovaný identifikátor uživatele",
+ "Invalid date, date format must be YYYY-MM-DD" : "Neplatné datum – je třeba, aby jeho formát byl RRRR-MM-DD",
"Please specify a valid federated group ID" : "Zadejte platné federovaný identifikátor skupiny",
"You cannot share to a Circle if the app is not enabled" : "Do okruhu nemůžete sdílet, pokud není aplikace zapnuta",
"Please specify a valid circle" : "Zadejte platný okruh",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index ebfbbffef8c..08f7bb37b1d 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
"Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht verfügbar ist",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
"Please specify a valid federated user ID" : "Bitte gib eine gültige Federated-Benutzer-ID ein",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Please specify a valid federated group ID" : "Bitte gib eine gültige Federated-Gruppen-ID ein",
"You cannot share to a Circle if the app is not enabled" : "Du kannst nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
"Please specify a valid circle" : "Bitte gib einen gültigen Kreis an",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index ea343b44212..f688ad204f6 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
"Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht verfügbar ist",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
"Please specify a valid federated user ID" : "Bitte gib eine gültige Federated-Benutzer-ID ein",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Please specify a valid federated group ID" : "Bitte gib eine gültige Federated-Gruppen-ID ein",
"You cannot share to a Circle if the app is not enabled" : "Du kannst nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
"Please specify a valid circle" : "Bitte gib einen gültigen Kreis an",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index d8a34955d29..12def4f5459 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
"Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht aktiviert ist",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
"Please specify a valid federated user ID" : "Bitte geben Sie eine gültige Federated-Benutzer-ID ein",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Please specify a valid federated group ID" : "Bitte geben Sie eine gültige Federated-Gruppen-ID ein",
"You cannot share to a Circle if the app is not enabled" : "Sie können nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
"Please specify a valid circle" : "Bitte einen gültigen Kreis angeben",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 175b8cca909..5c5f45a1b2e 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Das öffentliche Hochladen ist durch den Administrator deaktiviert",
"Public upload is only possible for publicly shared folders" : "Das öffentliche Hochladen ist nur für öffentlich freigegebene Ordner erlaubt",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "%s Freigeben: Senden des Passwortes über Nextcloud Talk gescheitert, da Nextcloud Talk nicht aktiviert ist",
- "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Freigabe von %1$s fehlgeschlagen, da das Backend die Freigabe vom Typ %2$s nicht erlaubt",
"Please specify a valid federated user ID" : "Bitte geben Sie eine gültige Federated-Benutzer-ID ein",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ungültiges Datum, zulässiges Datumsformat: JJJJ-MM-TT",
"Please specify a valid federated group ID" : "Bitte geben Sie eine gültige Federated-Gruppen-ID ein",
"You cannot share to a Circle if the app is not enabled" : "Sie können nichts mit einem Kreis teilen, wenn die App nicht aktiviert ist",
"Please specify a valid circle" : "Bitte einen gültigen Kreis angeben",
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index 6c1d5a6399b..66322a86572 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -113,8 +113,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Δημόσιο ανέβασμα είναι απενεργοποιημένο από τον διαχειριστή",
"Public upload is only possible for publicly shared folders" : "Δημόσιο ανέβασμα είναι δυνατό μόνο για δημόσια διαμοιρασμένους φακέλους",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η κοινή χρήση %s της αποστολής του κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk",
- "Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή της ημερομηνίας πρέπει να είναι YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Διαμοιρασμός %1$s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς από τύπο %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή της ημερομηνίας πρέπει να είναι YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "Δεν μπορείτε να διαμοιράσετε σε έναν Κύκλο εάν η εφαρμογή δεν είναι ενεργοποιημένη",
"Please specify a valid circle" : "Παρακαλούμε προσδιορίστε έναν έγκυρο κύκλο",
"Sharing %s failed because the back end does not support room shares" : "Διαμοιρασμός %s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς δωματίων",
@@ -169,6 +169,7 @@ OC.L10N.register(
"Shared with the group {user} by {owner}" : "Διαμοιράστηκε με την ομάδα {user} του {owner}",
"Shared with the conversation {user} by {owner}" : "Διαμοιράστηκε με τη συζήτηση {user} από {owner}",
"Shared with {user} by {owner}" : "Διαμοιράστηκε με {user} από τον {owner}",
+ "Allow download" : "Να επιτρέπεται η λήψη",
"Added by {initiator}" : "Προστέθηκε από {initiator}",
"Via “{folder}”" : "Μέσω “{folder}”",
"Internal link" : "Εσωτερικός σύνδεσμος",
@@ -195,7 +196,9 @@ OC.L10N.register(
"Shared via link by {initiator}" : "Διαμοιράστηκε μέσω συνδέσμου {initiator}",
"Share link ({label})" : "Σύνδεσμος κοινής χρήσης ({label})",
"Share link" : "Διαμοιρασμός συνδέσμου",
+ "Actions for \"{title}\"" : "Ενέργειες για \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Σφάλμα, παρακαλώ εισάγετε τον σωστό κωδικό πρόσβασης και/ή ημερομηνία λήξης",
+ "Link share created" : "Δημιουργήθηκε ο σύνδεσμος κοινής χρήσης",
"Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
"No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
"Resharing is not allowed" : "Δεν επιτρέπεται ο επαναμοιρασμός",
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index 9f538e694b0..c0ec927acb2 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -111,8 +111,8 @@
"Public upload disabled by the administrator" : "Δημόσιο ανέβασμα είναι απενεργοποιημένο από τον διαχειριστή",
"Public upload is only possible for publicly shared folders" : "Δημόσιο ανέβασμα είναι δυνατό μόνο για δημόσια διαμοιρασμένους φακέλους",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η κοινή χρήση %s της αποστολής του κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk",
- "Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή της ημερομηνίας πρέπει να είναι YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Διαμοιρασμός %1$s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς από τύπο %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Μη έγκυρη ημερομηνία, η μορφή της ημερομηνίας πρέπει να είναι YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "Δεν μπορείτε να διαμοιράσετε σε έναν Κύκλο εάν η εφαρμογή δεν είναι ενεργοποιημένη",
"Please specify a valid circle" : "Παρακαλούμε προσδιορίστε έναν έγκυρο κύκλο",
"Sharing %s failed because the back end does not support room shares" : "Διαμοιρασμός %s απέτυχε επειδή ο εξυπηρετητής δεν επιτρέπει διαμοιρασμούς δωματίων",
@@ -167,6 +167,7 @@
"Shared with the group {user} by {owner}" : "Διαμοιράστηκε με την ομάδα {user} του {owner}",
"Shared with the conversation {user} by {owner}" : "Διαμοιράστηκε με τη συζήτηση {user} από {owner}",
"Shared with {user} by {owner}" : "Διαμοιράστηκε με {user} από τον {owner}",
+ "Allow download" : "Να επιτρέπεται η λήψη",
"Added by {initiator}" : "Προστέθηκε από {initiator}",
"Via “{folder}”" : "Μέσω “{folder}”",
"Internal link" : "Εσωτερικός σύνδεσμος",
@@ -193,7 +194,9 @@
"Shared via link by {initiator}" : "Διαμοιράστηκε μέσω συνδέσμου {initiator}",
"Share link ({label})" : "Σύνδεσμος κοινής χρήσης ({label})",
"Share link" : "Διαμοιρασμός συνδέσμου",
+ "Actions for \"{title}\"" : "Ενέργειες για \"{title}\"",
"Error, please enter proper password and/or expiration date" : "Σφάλμα, παρακαλώ εισάγετε τον σωστό κωδικό πρόσβασης και/ή ημερομηνία λήξης",
+ "Link share created" : "Δημιουργήθηκε ο σύνδεσμος κοινής χρήσης",
"Search for share recipients" : "Αναζήτηση για παραλήπτες διαμοιρασμού",
"No recommendations. Start typing." : "Δεν υπάρχουν συστάσεις. Αρχίστε να πληκτρολογείτε.",
"Resharing is not allowed" : "Δεν επιτρέπεται ο επαναμοιρασμός",
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 2315c7aa2f2..c8f79d38b62 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Public upload disabled by the administrator",
"Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled",
- "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sharing %1$s failed because the back end does not allow shares from type %2$s",
"Please specify a valid federated user ID" : "Please specify a valid federated user ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
"You cannot share to a Circle if the app is not enabled" : "You cannot share to a Circle if the app is not enabled",
"Please specify a valid circle" : "Please specify a valid circle",
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index dd1a781eeaf..75f01249190 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Public upload disabled by the administrator",
"Public upload is only possible for publicly shared folders" : "Public upload is only possible for publicly shared folders",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled",
- "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sharing %1$s failed because the back end does not allow shares from type %2$s",
"Please specify a valid federated user ID" : "Please specify a valid federated user ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "Invalid date, date format must be YYYY-MM-DD",
"Please specify a valid federated group ID" : "Please specify a valid federated group ID",
"You cannot share to a Circle if the app is not enabled" : "You cannot share to a Circle if the app is not enabled",
"Please specify a valid circle" : "Please specify a valid circle",
diff --git a/apps/files_sharing/l10n/eo.js b/apps/files_sharing/l10n/eo.js
index 30cdb2c7697..ccea48ff13b 100644
--- a/apps/files_sharing/l10n/eo.js
+++ b/apps/files_sharing/l10n/eo.js
@@ -99,8 +99,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Publikan alŝuton malebligis la administranto",
"Public upload is only possible for publicly shared folders" : "Publika alŝuto eblas nur por publike kunhavigitaj dosierujoj",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kunhavigo de %s per sendado de la pasvorto per „Nextcloud Talk“ malsukcesis, ĉar Nextcloud Talk ne estas ebligita.",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kunhavigo de %1$s malsukcesis, ĉar la servilo ne permesas kunhavon de tipo %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
"You cannot share to a Circle if the app is not enabled" : "Vi ne povas kunhavigi per Rondo, se la aplikaĵo „Rondo“ ne estas ebligita",
"Please specify a valid circle" : "Bv. doni validan rondon",
"Sharing %s failed because the back end does not support room shares" : "Kunhavigo de %s malsukcesis, ĉar la servilo ne subtenas kunhavon de ĉambro",
diff --git a/apps/files_sharing/l10n/eo.json b/apps/files_sharing/l10n/eo.json
index 0c81b6469a7..0744d50fc74 100644
--- a/apps/files_sharing/l10n/eo.json
+++ b/apps/files_sharing/l10n/eo.json
@@ -97,8 +97,8 @@
"Public upload disabled by the administrator" : "Publikan alŝuton malebligis la administranto",
"Public upload is only possible for publicly shared folders" : "Publika alŝuto eblas nur por publike kunhavigitaj dosierujoj",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kunhavigo de %s per sendado de la pasvorto per „Nextcloud Talk“ malsukcesis, ĉar Nextcloud Talk ne estas ebligita.",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kunhavigo de %1$s malsukcesis, ĉar la servilo ne permesas kunhavon de tipo %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Nevalida dato; datoformo estu JJJJ-MM-TT",
"You cannot share to a Circle if the app is not enabled" : "Vi ne povas kunhavigi per Rondo, se la aplikaĵo „Rondo“ ne estas ebligita",
"Please specify a valid circle" : "Bv. doni validan rondon",
"Sharing %s failed because the back end does not support room shares" : "Kunhavigo de %s malsukcesis, ĉar la servilo ne subtenas kunhavon de ĉambro",
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index 4431bd29de6..eecac7921d9 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "La subida pública está deshabilitado por el administrador",
"Public upload is only possible for publicly shared folders" : "La subida publica solo es posible para las carpetas publicas compartidas",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk ha falllado porque Nextcloud Talk no está activado",
- "Invalid date, date format must be YYYY-MM-DD" : "Fecha inválida, el formato de las fechas debe ser YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s ha fallado porque el backend no permite compartidos del tipo %2$s",
"Please specify a valid federated user ID" : "Por favor, especifique un ID de usuario federado válido",
+ "Invalid date, date format must be YYYY-MM-DD" : "Fecha inválida, el formato de las fechas debe ser YYYY-MM-DD",
"Please specify a valid federated group ID" : "Por favor, especifique un ID de grupo federado válido",
"You cannot share to a Circle if the app is not enabled" : "No puede compartir a un Circulo si la aplicación no esta activada",
"Please specify a valid circle" : "Por favor especifique un circulo valido",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index 1f8bdf5a5ad..051d9ae621b 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "La subida pública está deshabilitado por el administrador",
"Public upload is only possible for publicly shared folders" : "La subida publica solo es posible para las carpetas publicas compartidas",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando la contraseña por Nextcloud Talk ha falllado porque Nextcloud Talk no está activado",
- "Invalid date, date format must be YYYY-MM-DD" : "Fecha inválida, el formato de las fechas debe ser YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Compartir %1$s ha fallado porque el backend no permite compartidos del tipo %2$s",
"Please specify a valid federated user ID" : "Por favor, especifique un ID de usuario federado válido",
+ "Invalid date, date format must be YYYY-MM-DD" : "Fecha inválida, el formato de las fechas debe ser YYYY-MM-DD",
"Please specify a valid federated group ID" : "Por favor, especifique un ID de grupo federado válido",
"You cannot share to a Circle if the app is not enabled" : "No puede compartir a un Circulo si la aplicación no esta activada",
"Please specify a valid circle" : "Por favor especifique un circulo valido",
diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js
index 2d317135f9c..98812c6bb68 100644
--- a/apps/files_sharing/l10n/eu.js
+++ b/apps/files_sharing/l10n/eu.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Administratzaileak karga publikoak desgaitu ditu",
"Public upload is only possible for publicly shared folders" : "Karga publikoa publikoki partekatutako karpetetan egin daiteke soilik",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : " %s Nextcloud Talk-etik pasahitza bidaliz partekatzeak huts egin du, Nextcloud Talk ez dagoelako gaituta",
- "Invalid date, date format must be YYYY-MM-DD" : "Data baliogabea, dataren formatuak UUUU-HH-EE izan behar du",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : " %1$s partekatzeak huts egin du, atzealdeak %2$s motako partekatzeak ez dituelako onartzen",
"Please specify a valid federated user ID" : "Mesedez, zehaztu baliozko erabiltzaile federatu baten id-a",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data baliogabea, dataren formatuak UUUU-HH-EE izan behar du",
"Please specify a valid federated group ID" : "Mesedez, zehaztu baliozko talde federatu baten id-a",
"You cannot share to a Circle if the app is not enabled" : "Ezin duzu zirkulu batekin partekatu aplikazioa gaituta ez badago",
"Please specify a valid circle" : "Zehaztu baliozko zirkulu bat",
diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json
index 553868a74e0..7ecbd08433b 100644
--- a/apps/files_sharing/l10n/eu.json
+++ b/apps/files_sharing/l10n/eu.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Administratzaileak karga publikoak desgaitu ditu",
"Public upload is only possible for publicly shared folders" : "Karga publikoa publikoki partekatutako karpetetan egin daiteke soilik",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : " %s Nextcloud Talk-etik pasahitza bidaliz partekatzeak huts egin du, Nextcloud Talk ez dagoelako gaituta",
- "Invalid date, date format must be YYYY-MM-DD" : "Data baliogabea, dataren formatuak UUUU-HH-EE izan behar du",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : " %1$s partekatzeak huts egin du, atzealdeak %2$s motako partekatzeak ez dituelako onartzen",
"Please specify a valid federated user ID" : "Mesedez, zehaztu baliozko erabiltzaile federatu baten id-a",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data baliogabea, dataren formatuak UUUU-HH-EE izan behar du",
"Please specify a valid federated group ID" : "Mesedez, zehaztu baliozko talde federatu baten id-a",
"You cannot share to a Circle if the app is not enabled" : "Ezin duzu zirkulu batekin partekatu aplikazioa gaituta ez badago",
"Please specify a valid circle" : "Zehaztu baliozko zirkulu bat",
diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js
index 64f6d5e5e66..1e847bcce03 100644
--- a/apps/files_sharing/l10n/fa.js
+++ b/apps/files_sharing/l10n/fa.js
@@ -111,8 +111,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است",
"Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : ".اشتراک‍‍‍%s ارسال رمز عبور توسط Nextcloud Talk به دلیل فعال نشدن Nextcloud Talk انجام نشد.",
- "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است ، قالب تاریخ باید YYYY-MM-DD باشد",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%2$sاشتراک گذاری%1$s انجام نشد زیرا بک اِند اجازه نمی دهد نوع از سهام استفاده شود",
+ "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است ، قالب تاریخ باید YYYY-MM-DD باشد",
"You cannot share to a Circle if the app is not enabled" : "اگر برنامه فعال نباشد ، نمی توانید در یک حلقه به اشتراک بگذارید",
"Please specify a valid circle" : "لطفاً یک حلقه معتبر تعیین کنید",
"Sharing %s failed because the back end does not support room shares" : "اشتراک گذاری %sانجام نشد زیرا قسمت پشتی سهام اتاق را پشتیبانی نمی کند",
diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json
index 93164a9c194..c2df1709f8a 100644
--- a/apps/files_sharing/l10n/fa.json
+++ b/apps/files_sharing/l10n/fa.json
@@ -109,8 +109,8 @@
"Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است",
"Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : ".اشتراک‍‍‍%s ارسال رمز عبور توسط Nextcloud Talk به دلیل فعال نشدن Nextcloud Talk انجام نشد.",
- "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است ، قالب تاریخ باید YYYY-MM-DD باشد",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%2$sاشتراک گذاری%1$s انجام نشد زیرا بک اِند اجازه نمی دهد نوع از سهام استفاده شود",
+ "Invalid date, date format must be YYYY-MM-DD" : "تاریخ نامعتبر است ، قالب تاریخ باید YYYY-MM-DD باشد",
"You cannot share to a Circle if the app is not enabled" : "اگر برنامه فعال نباشد ، نمی توانید در یک حلقه به اشتراک بگذارید",
"Please specify a valid circle" : "لطفاً یک حلقه معتبر تعیین کنید",
"Sharing %s failed because the back end does not support room shares" : "اشتراک گذاری %sانجام نشد زیرا قسمت پشتی سهام اتاق را پشتیبانی نمی کند",
diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js
index 0aa30fec77c..4453b7a1ef1 100644
--- a/apps/files_sharing/l10n/fi.js
+++ b/apps/files_sharing/l10n/fi.js
@@ -113,8 +113,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Ylläpitäjä on estänyt julkisen lähetyksen",
"Public upload is only possible for publicly shared folders" : "Julkinen lähettäminen on mahdollista vain julkisesti jaetuille kansioille",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kohteen %s jakaminen lähettämällä salasana Nextcloud Talkin kautta epäonnistui, koska Nextcloud Talk ei ole käytössä",
- "Invalid date, date format must be YYYY-MM-DD" : "Virheellinen päiväys, päivämäärän muodon tulee olla VVVV-KK-PP",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kohteen %1$s jakaminen epäonnistui, koska tietovarasto ei salli %2$s tyyppisiä jakoja",
+ "Invalid date, date format must be YYYY-MM-DD" : "Virheellinen päiväys, päivämäärän muodon tulee olla VVVV-KK-PP",
"You cannot share to a Circle if the app is not enabled" : "Et voi jakaa piiriin, jos sovellusta ei ole aktivoitu",
"Please specify a valid circle" : "Määritä kelvollinen piiri",
"Sharing %s failed because the back end does not support room shares" : "Kohteen %s jakaminen epäonnistui, koska taustaosa ei tue huonejakoja",
diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json
index c63db430f6b..5469554f8bf 100644
--- a/apps/files_sharing/l10n/fi.json
+++ b/apps/files_sharing/l10n/fi.json
@@ -111,8 +111,8 @@
"Public upload disabled by the administrator" : "Ylläpitäjä on estänyt julkisen lähetyksen",
"Public upload is only possible for publicly shared folders" : "Julkinen lähettäminen on mahdollista vain julkisesti jaetuille kansioille",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Kohteen %s jakaminen lähettämällä salasana Nextcloud Talkin kautta epäonnistui, koska Nextcloud Talk ei ole käytössä",
- "Invalid date, date format must be YYYY-MM-DD" : "Virheellinen päiväys, päivämäärän muodon tulee olla VVVV-KK-PP",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Kohteen %1$s jakaminen epäonnistui, koska tietovarasto ei salli %2$s tyyppisiä jakoja",
+ "Invalid date, date format must be YYYY-MM-DD" : "Virheellinen päiväys, päivämäärän muodon tulee olla VVVV-KK-PP",
"You cannot share to a Circle if the app is not enabled" : "Et voi jakaa piiriin, jos sovellusta ei ole aktivoitu",
"Please specify a valid circle" : "Määritä kelvollinen piiri",
"Sharing %s failed because the back end does not support room shares" : "Kohteen %s jakaminen epäonnistui, koska taustaosa ei tue huonejakoja",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index c7ac7bf9970..b86c1064534 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -113,13 +113,14 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Envois publics désactivés par l'administrateur",
"Public upload is only possible for publicly shared folders" : "Les envois publics sont possibles uniquement pour les dossiers partagés publiquement",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Partager %s en envoyant le mot de passe par Nextcloud Talk a échoué car Nextcloud Talk n'est pas activé.",
- "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Le partage %1$s a échoué parce que l'infrastructure n'autorise pas les partages du type %2$s",
"Please specify a valid federated user ID" : "Merci de spécifier un utilisateur fédéré valide",
+ "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY",
"Please specify a valid federated group ID" : "Merci de spécifier un groupe fédéré valide",
"You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée",
"Please specify a valid circle" : "Veuillez entrer un cercle valide",
"Sharing %s failed because the back end does not support room shares" : "Le partage %s a échoué parce que l'arrière-plan ne prend pas en charge les partages.",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Le partage de %s a échoué car le serveur ne supporte pas les partages ScienceMesh",
"Unknown share type" : "Type de partage inconnu",
"Not a directory" : "N'est pas un dossier",
"Could not lock node" : "Impossible de verrouiller le nœud",
@@ -225,6 +226,7 @@ OC.L10N.register(
"Circle" : "Cercle",
"Talk conversation" : "Conversation Talk",
"Deck board" : "Tableau Deck",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "sur {server}",
"Others with access" : "Autres utilisateurs ayant accès",
"No other users with access found" : "Aucun autre utilisateur ayant un accès n'a été trouvé",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 76e537ba5d3..4681e1c5504 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -111,13 +111,14 @@
"Public upload disabled by the administrator" : "Envois publics désactivés par l'administrateur",
"Public upload is only possible for publicly shared folders" : "Les envois publics sont possibles uniquement pour les dossiers partagés publiquement",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Partager %s en envoyant le mot de passe par Nextcloud Talk a échoué car Nextcloud Talk n'est pas activé.",
- "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Le partage %1$s a échoué parce que l'infrastructure n'autorise pas les partages du type %2$s",
"Please specify a valid federated user ID" : "Merci de spécifier un utilisateur fédéré valide",
+ "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY",
"Please specify a valid federated group ID" : "Merci de spécifier un groupe fédéré valide",
"You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée",
"Please specify a valid circle" : "Veuillez entrer un cercle valide",
"Sharing %s failed because the back end does not support room shares" : "Le partage %s a échoué parce que l'arrière-plan ne prend pas en charge les partages.",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Le partage de %s a échoué car le serveur ne supporte pas les partages ScienceMesh",
"Unknown share type" : "Type de partage inconnu",
"Not a directory" : "N'est pas un dossier",
"Could not lock node" : "Impossible de verrouiller le nœud",
@@ -223,6 +224,7 @@
"Circle" : "Cercle",
"Talk conversation" : "Conversation Talk",
"Deck board" : "Tableau Deck",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "sur {server}",
"Others with access" : "Autres utilisateurs ayant accès",
"No other users with access found" : "Aucun autre utilisateur ayant un accès n'a été trouvé",
diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js
index 3548cf4941e..9ea01300d89 100644
--- a/apps/files_sharing/l10n/gl.js
+++ b/apps/files_sharing/l10n/gl.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "O envío público foi desactivado polo administrador",
"Public upload is only possible for publicly shared folders" : "O envío público só é posíbel para aos cartafoles públicos compartidos",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando o contrasinal por Nextcloud Talk fallou porque Nextcloud Talk non está activado",
- "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Fallou a compartición de %1$s, xa que a infraestrutura non permite accións do tipo %2$s",
"Please specify a valid federated user ID" : "Especifique un ID de usuario federado válido",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Please specify a valid federated group ID" : "Especifique un ID de grupo federado válido",
"You cannot share to a Circle if the app is not enabled" : "Vostede non pode compartir para un circulo se a aplicación non esta activada",
"Please specify a valid circle" : "Especifique un circulo correcto",
diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json
index 3937346f85c..0104b21229e 100644
--- a/apps/files_sharing/l10n/gl.json
+++ b/apps/files_sharing/l10n/gl.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "O envío público foi desactivado polo administrador",
"Public upload is only possible for publicly shared folders" : "O envío público só é posíbel para aos cartafoles públicos compartidos",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Compartir %s enviando o contrasinal por Nextcloud Talk fallou porque Nextcloud Talk non está activado",
- "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Fallou a compartición de %1$s, xa que a infraestrutura non permite accións do tipo %2$s",
"Please specify a valid federated user ID" : "Especifique un ID de usuario federado válido",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data incorrecta, o formato da date debe ser AAAA-MM-DD",
"Please specify a valid federated group ID" : "Especifique un ID de grupo federado válido",
"You cannot share to a Circle if the app is not enabled" : "Vostede non pode compartir para un circulo se a aplicación non esta activada",
"Please specify a valid circle" : "Especifique un circulo correcto",
diff --git a/apps/files_sharing/l10n/he.js b/apps/files_sharing/l10n/he.js
index c8d6ef825c3..4dea331403a 100644
--- a/apps/files_sharing/l10n/he.js
+++ b/apps/files_sharing/l10n/he.js
@@ -108,8 +108,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
"Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "שיתוף%s שליחת הסיסמה באמצעות Nextcloud Talk נכשל מכיוון ש- Nextcloud Talk אינו מופעל",
- "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "השיתוף%1$s נכשל מכיוון שה-\"קצה אחורי\" אינו מאפשר שיתופים מסוג %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "לא ניתן לשתף למעגל אם היישומון לא מופעל",
"Please specify a valid circle" : "נא לציין מעגל תקני",
"Sharing %s failed because the back end does not support room shares" : "השיתוף של%sנכשל מכיוון שה-\"קצה אחורי\" אינו תומך בשיתופי חדרים",
diff --git a/apps/files_sharing/l10n/he.json b/apps/files_sharing/l10n/he.json
index 619d9cb9ce0..644400ddb81 100644
--- a/apps/files_sharing/l10n/he.json
+++ b/apps/files_sharing/l10n/he.json
@@ -106,8 +106,8 @@
"Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
"Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "שיתוף%s שליחת הסיסמה באמצעות Nextcloud Talk נכשל מכיוון ש- Nextcloud Talk אינו מופעל",
- "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "השיתוף%1$s נכשל מכיוון שה-\"קצה אחורי\" אינו מאפשר שיתופים מסוג %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "לא ניתן לשתף למעגל אם היישומון לא מופעל",
"Please specify a valid circle" : "נא לציין מעגל תקני",
"Sharing %s failed because the back end does not support room shares" : "השיתוף של%sנכשל מכיוון שה-\"קצה אחורי\" אינו תומך בשיתופי חדרים",
diff --git a/apps/files_sharing/l10n/hr.js b/apps/files_sharing/l10n/hr.js
index ef12fc9723a..5fc7d8ae783 100644
--- a/apps/files_sharing/l10n/hr.js
+++ b/apps/files_sharing/l10n/hr.js
@@ -109,9 +109,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Administrator je onemogućio javno otpremanje",
"Public upload is only possible for publicly shared folders" : "Javno otpremanje moguće je samo za javno dijeljene mape",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Neuspješno dijeljenje %s slanjem zaporke za Nextcloud Talk jer Nextcloud Talk nije omogućen",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevažeći datum, oblik datuma mora biti GGGG-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Neuspješno dijeljenje %1$s jer pozadinski servis ne dopušta dijeljenje vrste %2$s",
"Please specify a valid federated user ID" : "Navedite važeći ID udruženog korisnika",
+ "Invalid date, date format must be YYYY-MM-DD" : "Nevažeći datum, oblik datuma mora biti GGGG-MM-DD",
"Please specify a valid federated group ID" : "Navedite važeći ID udružene grupe",
"You cannot share to a Circle if the app is not enabled" : "Ne možete dijeliti s krugom ako aplikacija nije omogućena",
"Please specify a valid circle" : "Navedite valjani krug",
diff --git a/apps/files_sharing/l10n/hr.json b/apps/files_sharing/l10n/hr.json
index 13cb3e8ef0f..a23cc59903b 100644
--- a/apps/files_sharing/l10n/hr.json
+++ b/apps/files_sharing/l10n/hr.json
@@ -107,9 +107,9 @@
"Public upload disabled by the administrator" : "Administrator je onemogućio javno otpremanje",
"Public upload is only possible for publicly shared folders" : "Javno otpremanje moguće je samo za javno dijeljene mape",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Neuspješno dijeljenje %s slanjem zaporke za Nextcloud Talk jer Nextcloud Talk nije omogućen",
- "Invalid date, date format must be YYYY-MM-DD" : "Nevažeći datum, oblik datuma mora biti GGGG-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Neuspješno dijeljenje %1$s jer pozadinski servis ne dopušta dijeljenje vrste %2$s",
"Please specify a valid federated user ID" : "Navedite važeći ID udruženog korisnika",
+ "Invalid date, date format must be YYYY-MM-DD" : "Nevažeći datum, oblik datuma mora biti GGGG-MM-DD",
"Please specify a valid federated group ID" : "Navedite važeći ID udružene grupe",
"You cannot share to a Circle if the app is not enabled" : "Ne možete dijeliti s krugom ako aplikacija nije omogućena",
"Please specify a valid circle" : "Navedite valjani krug",
diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js
index 4a437e96676..f1668f9cee5 100644
--- a/apps/files_sharing/l10n/hu.js
+++ b/apps/files_sharing/l10n/hu.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "A nyilvános feltöltést letiltotta a rendszergazda",
"Public upload is only possible for publicly shared folders" : "A nyilvános feltöltés csak a nyilvánosan megosztott mappákban lehetséges",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "A(z) %s megosztás jelszavának Nextcloud Beszélgetéssel történő elküldése sikertelen, mert a Nextcloud Beszélgetés nem engedélyezett",
- "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "A(z) %1$s megosztása sikertelen, mert a háttérprogram nem engedélyezi a(z) %2$s típusú megosztást",
"Please specify a valid federated user ID" : "Adjon meg egy érvényes föderált felhasználóazonosítót",
+ "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie",
"Please specify a valid federated group ID" : "Adjon meg egy érvényes föderált csoportazonosítót",
"You cannot share to a Circle if the app is not enabled" : "Nem tudja megosztani egy Kör számára, ha az alkalmazás nem engedélyezett",
"Please specify a valid circle" : "Adjon meg egy érvényes Kört",
diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json
index 7f01f9d3eb5..e11cb432f0e 100644
--- a/apps/files_sharing/l10n/hu.json
+++ b/apps/files_sharing/l10n/hu.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "A nyilvános feltöltést letiltotta a rendszergazda",
"Public upload is only possible for publicly shared folders" : "A nyilvános feltöltés csak a nyilvánosan megosztott mappákban lehetséges",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "A(z) %s megosztás jelszavának Nextcloud Beszélgetéssel történő elküldése sikertelen, mert a Nextcloud Beszélgetés nem engedélyezett",
- "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "A(z) %1$s megosztása sikertelen, mert a háttérprogram nem engedélyezi a(z) %2$s típusú megosztást",
"Please specify a valid federated user ID" : "Adjon meg egy érvényes föderált felhasználóazonosítót",
+ "Invalid date, date format must be YYYY-MM-DD" : "Érvénytelen dátum, a dátumnak YYYY-MM-DD formátumúnak kell lennie",
"Please specify a valid federated group ID" : "Adjon meg egy érvényes föderált csoportazonosítót",
"You cannot share to a Circle if the app is not enabled" : "Nem tudja megosztani egy Kör számára, ha az alkalmazás nem engedélyezett",
"Please specify a valid circle" : "Adjon meg egy érvényes Kört",
diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js
index 1f924baf4ce..a0296b8b370 100644
--- a/apps/files_sharing/l10n/is.js
+++ b/apps/files_sharing/l10n/is.js
@@ -96,8 +96,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Opinber innsending hefur verið gerð óvirk af kerfisstjóra.",
"Public upload is only possible for publicly shared folders" : "Opinber innsending er einungis möguleg í möppur sem er deilt opinberlega",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deiling á %s með því að senda lykilorð með Nextcloud Talk mistókst því að Nextcloud Talk er ekki virkt",
- "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deiling %1$s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "Þú getur ekki deilt með hring ef forritið er ekki virkt",
"Please specify a valid circle" : "Settu inn gildan hring",
"Sharing %s failed because the back end does not support room shares" : "Deiling %s mistókst því bakvinnslukerfið leyfir ekki spjallsvæðasameignir",
diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json
index ce90e2f50f6..579594cf1a0 100644
--- a/apps/files_sharing/l10n/is.json
+++ b/apps/files_sharing/l10n/is.json
@@ -94,8 +94,8 @@
"Public upload disabled by the administrator" : "Opinber innsending hefur verið gerð óvirk af kerfisstjóra.",
"Public upload is only possible for publicly shared folders" : "Opinber innsending er einungis möguleg í möppur sem er deilt opinberlega",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deiling á %s með því að senda lykilorð með Nextcloud Talk mistókst því að Nextcloud Talk er ekki virkt",
- "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deiling %1$s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ógild dagsetning, dagsetningasniðið verður að vera ÁÁÁÁ-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "Þú getur ekki deilt með hring ef forritið er ekki virkt",
"Please specify a valid circle" : "Settu inn gildan hring",
"Sharing %s failed because the back end does not support room shares" : "Deiling %s mistókst því bakvinnslukerfið leyfir ekki spjallsvæðasameignir",
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index f38de7a2161..7b5e5b1ea61 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Caricamento pubblico disabilitato dall'amministratore",
"Public upload is only possible for publicly shared folders" : "Il caricamento pubblico è possibile solo per cartelle condivise pubblicamente",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "La condivisione di %s tramite invio della password da Nextcloud Talk non è riuscito poiché Nextcloud Talk non è abilitato",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non valida, il formato della data deve essere YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Condivisione di %1$s non riuscita poiché il motore non consente condivisioni del tipo %2$s",
"Please specify a valid federated user ID" : "Specifica un ID di utente federato valido",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data non valida, il formato della data deve essere YYYY-MM-DD",
"Please specify a valid federated group ID" : "Specifica un ID di gruppo federato valido",
"You cannot share to a Circle if the app is not enabled" : "Non puoi condividere con una cerchia se l'applicazione non è abilitata",
"Please specify a valid circle" : "Specifica una cerchia valida",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index 8ae74e905b1..8423697e5cb 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Caricamento pubblico disabilitato dall'amministratore",
"Public upload is only possible for publicly shared folders" : "Il caricamento pubblico è possibile solo per cartelle condivise pubblicamente",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "La condivisione di %s tramite invio della password da Nextcloud Talk non è riuscito poiché Nextcloud Talk non è abilitato",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non valida, il formato della data deve essere YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Condivisione di %1$s non riuscita poiché il motore non consente condivisioni del tipo %2$s",
"Please specify a valid federated user ID" : "Specifica un ID di utente federato valido",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data non valida, il formato della data deve essere YYYY-MM-DD",
"Please specify a valid federated group ID" : "Specifica un ID di gruppo federato valido",
"You cannot share to a Circle if the app is not enabled" : "Non puoi condividere con una cerchia se l'applicazione non è abilitata",
"Please specify a valid circle" : "Specifica una cerchia valida",
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index 021b4cfd9b8..9beee803f58 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "URL共有へのアップロードが管理者によって無効されています。",
"Public upload is only possible for publicly shared folders" : "公開共有されているフォルダーにしか公開アップロードはできません。",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talkが有効になっていないため、Nextcloud Talkでパスワードを送信した %s を共有できませんでした",
- "Invalid date, date format must be YYYY-MM-DD" : "無効な日付です。YYYY-MM-DDのフォーマットで日付を指定してください。",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s の共有に失敗しました。バックエンド側で %2$s タイプの共有が許可されていません。",
"Please specify a valid federated user ID" : "正しい連携ユーザーIDを指定してください",
+ "Invalid date, date format must be YYYY-MM-DD" : "無効な日付です。YYYY-MM-DDのフォーマットで日付を指定してください。",
"Please specify a valid federated group ID" : "正しい連携グループIDを指定してください",
"You cannot share to a Circle if the app is not enabled" : "アプリが無効の場合は、サークルには共有できません",
"Please specify a valid circle" : "正しいサークルを指定してください",
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index 8198f3c5e54..96f672f8188 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "URL共有へのアップロードが管理者によって無効されています。",
"Public upload is only possible for publicly shared folders" : "公開共有されているフォルダーにしか公開アップロードはできません。",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talkが有効になっていないため、Nextcloud Talkでパスワードを送信した %s を共有できませんでした",
- "Invalid date, date format must be YYYY-MM-DD" : "無効な日付です。YYYY-MM-DDのフォーマットで日付を指定してください。",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s の共有に失敗しました。バックエンド側で %2$s タイプの共有が許可されていません。",
"Please specify a valid federated user ID" : "正しい連携ユーザーIDを指定してください",
+ "Invalid date, date format must be YYYY-MM-DD" : "無効な日付です。YYYY-MM-DDのフォーマットで日付を指定してください。",
"Please specify a valid federated group ID" : "正しい連携グループIDを指定してください",
"You cannot share to a Circle if the app is not enabled" : "アプリが無効の場合は、サークルには共有できません",
"Please specify a valid circle" : "正しいサークルを指定してください",
diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js
index 04fea677391..ed554e883c0 100644
--- a/apps/files_sharing/l10n/ko.js
+++ b/apps/files_sharing/l10n/ko.js
@@ -101,8 +101,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음",
"Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud 토크가 활성화되어 있지 않기 때문에 Nextcloud 토크로 %s의 공유 암호를 전송할 수 없음",
- "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s을(를) 공유할 수 없습니다. 백엔드에서 %2$s 형식의 공유를 지원하지 않습니다",
+ "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다",
"You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음",
"Please specify a valid circle" : "올바른 서클을 지정하십시오",
"Sharing %s failed because the back end does not support room shares" : "%s 공유 실패. 백엔드에서 방 공유를 지원하지 않습니다",
diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json
index 41a97190300..8e7871659d3 100644
--- a/apps/files_sharing/l10n/ko.json
+++ b/apps/files_sharing/l10n/ko.json
@@ -99,8 +99,8 @@
"Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음",
"Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud 토크가 활성화되어 있지 않기 때문에 Nextcloud 토크로 %s의 공유 암호를 전송할 수 없음",
- "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%1$s을(를) 공유할 수 없습니다. 백엔드에서 %2$s 형식의 공유를 지원하지 않습니다",
+ "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다",
"You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음",
"Please specify a valid circle" : "올바른 서클을 지정하십시오",
"Sharing %s failed because the back end does not support room shares" : "%s 공유 실패. 백엔드에서 방 공유를 지원하지 않습니다",
diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js
index 42674143c6b..eddde6372b3 100644
--- a/apps/files_sharing/l10n/lt_LT.js
+++ b/apps/files_sharing/l10n/lt_LT.js
@@ -113,8 +113,8 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Įkėlimas viešam naudojimui yra išjungtas",
"Public upload is only possible for publicly shared folders" : "Duomenų įkėlimas viešam naudojimui galimas tik į viešai dalinamus aplankus",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nepavyko išsiųsti slaptažodžio bendrinimui %s panaudojant Nextcloud Talk, kadangi Nextcloud Talk neįjungtas ",
- "Invalid date, date format must be YYYY-MM-DD" : "Netinkamas datos formavimas. Privaloma: YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Bendrinimas %1$s nepavyko, kadangi sistema nepalaiko bendrinimų šio tipo %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Netinkamas datos formavimas. Privaloma: YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "Negalite dalintis su naudotojų ratu, kai įskiepis \"Circle\" neveikia",
"Please specify a valid circle" : "Pasirinkite naudotojų ratą",
"Sharing %s failed because the back end does not support room shares" : "Bendrinimas %s nepavyko, kadangi sistema nepalaiko kambario bendrinimo",
diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json
index 65c208e3533..4a39dcf7cd4 100644
--- a/apps/files_sharing/l10n/lt_LT.json
+++ b/apps/files_sharing/l10n/lt_LT.json
@@ -111,8 +111,8 @@
"Public upload disabled by the administrator" : "Įkėlimas viešam naudojimui yra išjungtas",
"Public upload is only possible for publicly shared folders" : "Duomenų įkėlimas viešam naudojimui galimas tik į viešai dalinamus aplankus",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nepavyko išsiųsti slaptažodžio bendrinimui %s panaudojant Nextcloud Talk, kadangi Nextcloud Talk neįjungtas ",
- "Invalid date, date format must be YYYY-MM-DD" : "Netinkamas datos formavimas. Privaloma: YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Bendrinimas %1$s nepavyko, kadangi sistema nepalaiko bendrinimų šio tipo %2$s",
+ "Invalid date, date format must be YYYY-MM-DD" : "Netinkamas datos formavimas. Privaloma: YYYY-MM-DD",
"You cannot share to a Circle if the app is not enabled" : "Negalite dalintis su naudotojų ratu, kai įskiepis \"Circle\" neveikia",
"Please specify a valid circle" : "Pasirinkite naudotojų ratą",
"Sharing %s failed because the back end does not support room shares" : "Bendrinimas %s nepavyko, kadangi sistema nepalaiko kambario bendrinimo",
diff --git a/apps/files_sharing/l10n/mk.js b/apps/files_sharing/l10n/mk.js
index 46b17cc38de..2e186e4c7fd 100644
--- a/apps/files_sharing/l10n/mk.js
+++ b/apps/files_sharing/l10n/mk.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Јавно прикачување е оневозможено од страна на администраторот",
"Public upload is only possible for publicly shared folders" : "Јавно прикачување е возможно само на јавно споделени папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Неуспешно испраќање на лозинка за споделувањето %s преку разговор бидејќи разговорот не е овозможен",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделувањето на %1$s е неуспешно бидејќи позадината не дозволува споделувања од видот %2$s",
"Please specify a valid federated user ID" : "Внесете валидно федерално корисничко ИД",
+ "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Внесете валидно федерално групно ИД",
"You cannot share to a Circle if the app is not enabled" : "Неможете да споделите во круг ако апликацијата не е овозможена",
"Please specify a valid circle" : "Изберете круг",
diff --git a/apps/files_sharing/l10n/mk.json b/apps/files_sharing/l10n/mk.json
index 304b6547b8b..ae2867ea02b 100644
--- a/apps/files_sharing/l10n/mk.json
+++ b/apps/files_sharing/l10n/mk.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Јавно прикачување е оневозможено од страна на администраторот",
"Public upload is only possible for publicly shared folders" : "Јавно прикачување е возможно само на јавно споделени папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Неуспешно испраќање на лозинка за споделувањето %s преку разговор бидејќи разговорот не е овозможен",
- "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Споделувањето на %1$s е неуспешно бидејќи позадината не дозволува споделувања од видот %2$s",
"Please specify a valid federated user ID" : "Внесете валидно федерално корисничко ИД",
+ "Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Внесете валидно федерално групно ИД",
"You cannot share to a Circle if the app is not enabled" : "Неможете да споделите во круг ако апликацијата не е овозможена",
"Please specify a valid circle" : "Изберете круг",
diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js
index 568b35ae197..119c449ff86 100644
--- a/apps/files_sharing/l10n/nb.js
+++ b/apps/files_sharing/l10n/nb.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Offentlig opplasting er deaktivert av administratoren",
"Public upload is only possible for publicly shared folders" : "Offentlig opplasting er kun mulig i offentlig delte mapper",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deling av %s ved å sende passordet av Nextcloud Talk mislyktes fordi Nextcloud Talk ikke er aktivert",
- "Invalid date, date format must be YYYY-MM-DD" : "Feil dato, dato må være i formatet YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deling av %1$s mislyktes fordi serveren ikke tillater delinger fra typen %2$s",
"Please specify a valid federated user ID" : "Angi en gyldig sammenknyttet brukersky-ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "Feil dato, dato må være i formatet YYYY-MM-DD",
"Please specify a valid federated group ID" : "Angi en gyldig sammenknyttet gruppesky-ID",
"You cannot share to a Circle if the app is not enabled" : "Du kan ikke dele til en sirkel så lenge appen ikke er aktivert",
"Please specify a valid circle" : "Angi en gyldig sirkel",
diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json
index c010a5134bb..fa1880a9a6d 100644
--- a/apps/files_sharing/l10n/nb.json
+++ b/apps/files_sharing/l10n/nb.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Offentlig opplasting er deaktivert av administratoren",
"Public upload is only possible for publicly shared folders" : "Offentlig opplasting er kun mulig i offentlig delte mapper",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Deling av %s ved å sende passordet av Nextcloud Talk mislyktes fordi Nextcloud Talk ikke er aktivert",
- "Invalid date, date format must be YYYY-MM-DD" : "Feil dato, dato må være i formatet YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Deling av %1$s mislyktes fordi serveren ikke tillater delinger fra typen %2$s",
"Please specify a valid federated user ID" : "Angi en gyldig sammenknyttet brukersky-ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "Feil dato, dato må være i formatet YYYY-MM-DD",
"Please specify a valid federated group ID" : "Angi en gyldig sammenknyttet gruppesky-ID",
"You cannot share to a Circle if the app is not enabled" : "Du kan ikke dele til en sirkel så lenge appen ikke er aktivert",
"Please specify a valid circle" : "Angi en gyldig sirkel",
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 54be2901167..d22d487e66f 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
"Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Delen %s versturen van het wachtwoord via Nextcloud Talk is mislukt omdat Nextcloud Talk niet is ingeschakeld",
- "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, datumnotatie moet in de vorm YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delen van %1$s mislukte omdat de backend het delen van type %2$s niet ondersteunt",
"Please specify a valid federated user ID" : "Geef een geldig gefedereerd gebruikersID op",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, datumnotatie moet in de vorm YYYY-MM-DD",
"Please specify a valid federated group ID" : "Geef een geldig gefedereerd groepID op",
"You cannot share to a Circle if the app is not enabled" : "Je kunt niets met een Kring delen als de app niet is ingeschakeld.",
"Please specify a valid circle" : "Geef een geldige kring op",
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 7da38601e83..fb7e0280723 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Publieke upload uitgeschakeld door de systeembeheerder",
"Public upload is only possible for publicly shared folders" : "Publieke upload is alleen mogelijk voor publiek gedeelde mappen",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Delen %s versturen van het wachtwoord via Nextcloud Talk is mislukt omdat Nextcloud Talk niet is ingeschakeld",
- "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, datumnotatie moet in de vorm YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delen van %1$s mislukte omdat de backend het delen van type %2$s niet ondersteunt",
"Please specify a valid federated user ID" : "Geef een geldig gefedereerd gebruikersID op",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ongeldige datum, datumnotatie moet in de vorm YYYY-MM-DD",
"Please specify a valid federated group ID" : "Geef een geldig gefedereerd groepID op",
"You cannot share to a Circle if the app is not enabled" : "Je kunt niets met een Kring delen als de app niet is ingeschakeld.",
"Please specify a valid circle" : "Geef een geldige kring op",
diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js
index e198ff2cad5..27bb6faac7d 100644
--- a/apps/files_sharing/l10n/pl.js
+++ b/apps/files_sharing/l10n/pl.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Przesyłanie publiczne zostało wyłączone przez administratora",
"Public upload is only possible for publicly shared folders" : "Przesyłanie publiczne jest możliwe tylko w przypadku katalogów udostępnianych publicznie",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Udostępnienie %s wysyłanego hasła przez Nextcloud Talk nie powiodło się, ponieważ Nextcloud Talk nie jest włączony",
- "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, data musi być w formacie RRRR-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Udostępnienie %1$s nie powiodło się, ponieważ zaplecze nie zezwala na udostępnianie typu %2$s",
"Please specify a valid federated user ID" : "Podaj prawidłowy ID użytkownika federacyjnego",
+ "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, data musi być w formacie RRRR-MM-DD",
"Please specify a valid federated group ID" : "Podaj prawidłowy ID grupy federacyjnej",
"You cannot share to a Circle if the app is not enabled" : "Nie możesz udostępnić w Kręgach, jeśli aplikacja jest wyłączona",
"Please specify a valid circle" : "Podaj prawidłowy krąg",
diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json
index 10855463619..f2502d85c38 100644
--- a/apps/files_sharing/l10n/pl.json
+++ b/apps/files_sharing/l10n/pl.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Przesyłanie publiczne zostało wyłączone przez administratora",
"Public upload is only possible for publicly shared folders" : "Przesyłanie publiczne jest możliwe tylko w przypadku katalogów udostępnianych publicznie",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Udostępnienie %s wysyłanego hasła przez Nextcloud Talk nie powiodło się, ponieważ Nextcloud Talk nie jest włączony",
- "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, data musi być w formacie RRRR-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Udostępnienie %1$s nie powiodło się, ponieważ zaplecze nie zezwala na udostępnianie typu %2$s",
"Please specify a valid federated user ID" : "Podaj prawidłowy ID użytkownika federacyjnego",
+ "Invalid date, date format must be YYYY-MM-DD" : "Nieprawidłowa data, data musi być w formacie RRRR-MM-DD",
"Please specify a valid federated group ID" : "Podaj prawidłowy ID grupy federacyjnej",
"You cannot share to a Circle if the app is not enabled" : "Nie możesz udostępnić w Kręgach, jeśli aplikacja jest wyłączona",
"Please specify a valid circle" : "Podaj prawidłowy krąg",
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 650426ed8f7..600285748b7 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador",
"Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "O compartilhamento %s falhou ao enviar a senha ao Nextcloud Talk porque este não está ativado",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "O compartilhamento %1$s falhou porque a infraestrutura não permite compartilhamentos do tipo %2$s",
"Please specify a valid federated user ID" : "Especifique um ID de usuário federado válido ",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD",
"Please specify a valid federated group ID" : "Especifique um ID de grupo federado válido ",
"You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado",
"Please specify a valid circle" : "Por favor especifique um círculo válido",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 78404e026e1..fa91ddc5a41 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador",
"Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "O compartilhamento %s falhou ao enviar a senha ao Nextcloud Talk porque este não está ativado",
- "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "O compartilhamento %1$s falhou porque a infraestrutura não permite compartilhamentos do tipo %2$s",
"Please specify a valid federated user ID" : "Especifique um ID de usuário federado válido ",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD",
"Please specify a valid federated group ID" : "Especifique um ID de grupo federado válido ",
"You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado",
"Please specify a valid circle" : "Por favor especifique um círculo válido",
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index 5ba3d5da784..ddbe4c63468 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Выгрузка в общедоступную папку запрещена администратором",
"Public upload is only possible for publicly shared folders" : "Общедоступная выгрузка возможна только в общедоступные папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Не удалось отправить пароль для доступа к «%s»: приложение Nextcloud Talk отключено.",
- "Invalid date, date format must be YYYY-MM-DD" : "Недопустимая дата. Дата должна быть указана в формате ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Не удалось предоставить общий доступ к «%1$s», поскольку механизм удалённого обмена не разрешает публикации типа %2$s",
"Please specify a valid federated user ID" : "Укажите действительный идентификатор федеративного пользователя",
+ "Invalid date, date format must be YYYY-MM-DD" : "Недопустимая дата. Дата должна быть указана в формате ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Укажите действительный идентификатор федеративной группы",
"You cannot share to a Circle if the app is not enabled" : "Вы не можете поделиться с кругом, если приложение «Круг» не включено",
"Please specify a valid circle" : "Укажите верный круг",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index db8f769e75c..d4383a5c9e8 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Выгрузка в общедоступную папку запрещена администратором",
"Public upload is only possible for publicly shared folders" : "Общедоступная выгрузка возможна только в общедоступные папки",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Не удалось отправить пароль для доступа к «%s»: приложение Nextcloud Talk отключено.",
- "Invalid date, date format must be YYYY-MM-DD" : "Недопустимая дата. Дата должна быть указана в формате ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Не удалось предоставить общий доступ к «%1$s», поскольку механизм удалённого обмена не разрешает публикации типа %2$s",
"Please specify a valid federated user ID" : "Укажите действительный идентификатор федеративного пользователя",
+ "Invalid date, date format must be YYYY-MM-DD" : "Недопустимая дата. Дата должна быть указана в формате ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Укажите действительный идентификатор федеративной группы",
"You cannot share to a Circle if the app is not enabled" : "Вы не можете поделиться с кругом, если приложение «Круг» не включено",
"Please specify a valid circle" : "Укажите верный круг",
diff --git a/apps/files_sharing/l10n/sc.js b/apps/files_sharing/l10n/sc.js
index 2f8c1835cc8..6a1f76b6563 100644
--- a/apps/files_sharing/l10n/sc.js
+++ b/apps/files_sharing/l10n/sc.js
@@ -109,9 +109,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Su carrigamentu pùblicu est disativadu dae s'amministradore",
"Public upload is only possible for publicly shared folders" : "Su carrigamentu pùblicu si podet fàghere isceti cun cartellas cumpartzidas pùblicas",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sa cumpartzidura de%scun s'imbiu de sa crae dae Nextcloud Talk est faddida ca Nextcloud Talk est disativadu",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non vàlida, su formadu depet èssere YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sa cumpartzidura de %1$s est faddida ca su motore non permitit cumpartziduras de genia %2$s",
"Please specify a valid federated user ID" : "Ispetzìfica un'id de utente federadu bàlidu",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data non vàlida, su formadu depet èssere YYYY-MM-DD",
"Please specify a valid federated group ID" : "Ispetzìfica un'id de grupu federadu bàlidu",
"You cannot share to a Circle if the app is not enabled" : "Non podes cumpartzire cun unu tzircu si s'aplicatzione est disativada",
"Please specify a valid circle" : "Ispetzìfica unu tzircu bàlidu",
diff --git a/apps/files_sharing/l10n/sc.json b/apps/files_sharing/l10n/sc.json
index 01d4d3ff8fb..70f488aac71 100644
--- a/apps/files_sharing/l10n/sc.json
+++ b/apps/files_sharing/l10n/sc.json
@@ -107,9 +107,9 @@
"Public upload disabled by the administrator" : "Su carrigamentu pùblicu est disativadu dae s'amministradore",
"Public upload is only possible for publicly shared folders" : "Su carrigamentu pùblicu si podet fàghere isceti cun cartellas cumpartzidas pùblicas",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Sa cumpartzidura de%scun s'imbiu de sa crae dae Nextcloud Talk est faddida ca Nextcloud Talk est disativadu",
- "Invalid date, date format must be YYYY-MM-DD" : "Data non vàlida, su formadu depet èssere YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sa cumpartzidura de %1$s est faddida ca su motore non permitit cumpartziduras de genia %2$s",
"Please specify a valid federated user ID" : "Ispetzìfica un'id de utente federadu bàlidu",
+ "Invalid date, date format must be YYYY-MM-DD" : "Data non vàlida, su formadu depet èssere YYYY-MM-DD",
"Please specify a valid federated group ID" : "Ispetzìfica un'id de grupu federadu bàlidu",
"You cannot share to a Circle if the app is not enabled" : "Non podes cumpartzire cun unu tzircu si s'aplicatzione est disativada",
"Please specify a valid circle" : "Ispetzìfica unu tzircu bàlidu",
diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js
index 7eda3e1648d..fd5418cb18b 100644
--- a/apps/files_sharing/l10n/sk.js
+++ b/apps/files_sharing/l10n/sk.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Verejné nahrávanie je zakázané administrátorom",
"Public upload is only possible for publicly shared folders" : "Verejné nahrávanie je možné len do verejne sprístupnených priečinkov",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Zdieľanie %s odoslaním hesla cez Nextcloud Talk zlyhalo, pretože Nextcloud Talk nie je zapnutý",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatný dátum, formát musí byť v tvare YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sprístupnenie %1$s zlyhalo, backend nepodporuje typ sprístupnenia %2$s",
"Please specify a valid federated user ID" : "Prosím zvoľte platné ID federovaného užívateľa",
+ "Invalid date, date format must be YYYY-MM-DD" : "Neplatný dátum, formát musí byť v tvare YYYY-MM-DD",
"Please specify a valid federated group ID" : "Prosím zvoľte platné ID federovanej skupiny",
"You cannot share to a Circle if the app is not enabled" : "Ak aplikácia nie je povolená, nemôžete ju zdieľať s Kruhom",
"Please specify a valid circle" : "Zadajte platný kruh",
diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json
index 6f14ba533f6..51bab7a47c8 100644
--- a/apps/files_sharing/l10n/sk.json
+++ b/apps/files_sharing/l10n/sk.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Verejné nahrávanie je zakázané administrátorom",
"Public upload is only possible for publicly shared folders" : "Verejné nahrávanie je možné len do verejne sprístupnených priečinkov",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Zdieľanie %s odoslaním hesla cez Nextcloud Talk zlyhalo, pretože Nextcloud Talk nie je zapnutý",
- "Invalid date, date format must be YYYY-MM-DD" : "Neplatný dátum, formát musí byť v tvare YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Sprístupnenie %1$s zlyhalo, backend nepodporuje typ sprístupnenia %2$s",
"Please specify a valid federated user ID" : "Prosím zvoľte platné ID federovaného užívateľa",
+ "Invalid date, date format must be YYYY-MM-DD" : "Neplatný dátum, formát musí byť v tvare YYYY-MM-DD",
"Please specify a valid federated group ID" : "Prosím zvoľte platné ID federovanej skupiny",
"You cannot share to a Circle if the app is not enabled" : "Ak aplikácia nie je povolená, nemôžete ju zdieľať s Kruhom",
"Please specify a valid circle" : "Zadajte platný kruh",
diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js
index 14c6502a0fb..074d1513ec5 100644
--- a/apps/files_sharing/l10n/sl.js
+++ b/apps/files_sharing/l10n/sl.js
@@ -112,9 +112,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Javno pošiljanje v oblak je skrbniško onemogočeno",
"Public upload is only possible for publicly shared folders" : "Javno pošiljanje v oblak je mogoče le za mape v javni skupni rabi.",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Souporaba %s s pošiljanjem gesla prek programa Nextcloud Talk je spodletela, ker program Talk ni omogočen.",
- "Invalid date, date format must be YYYY-MM-DD" : "Neveljaven zapis časa; biti mora v zapisu YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Souporaba %1$s je spodletela, ker ozadnji program ne omogoča souporabe prek vrste %2$s.",
"Please specify a valid federated user ID" : "Navesti je treba veljaven ID zveznega uporabnika",
+ "Invalid date, date format must be YYYY-MM-DD" : "Neveljaven zapis časa; biti mora v zapisu YYYY-MM-DD",
"Please specify a valid federated group ID" : "Navesti je treba veljaven ID zvezne skupine",
"You cannot share to a Circle if the app is not enabled" : "Ni mogoče odobriti souporabe s Krogom, če program ni omogočen",
"Please specify a valid circle" : "Določite veljaven krog",
diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json
index f47cc5c8222..025326dab61 100644
--- a/apps/files_sharing/l10n/sl.json
+++ b/apps/files_sharing/l10n/sl.json
@@ -110,9 +110,9 @@
"Public upload disabled by the administrator" : "Javno pošiljanje v oblak je skrbniško onemogočeno",
"Public upload is only possible for publicly shared folders" : "Javno pošiljanje v oblak je mogoče le za mape v javni skupni rabi.",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Souporaba %s s pošiljanjem gesla prek programa Nextcloud Talk je spodletela, ker program Talk ni omogočen.",
- "Invalid date, date format must be YYYY-MM-DD" : "Neveljaven zapis časa; biti mora v zapisu YYYY-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Souporaba %1$s je spodletela, ker ozadnji program ne omogoča souporabe prek vrste %2$s.",
"Please specify a valid federated user ID" : "Navesti je treba veljaven ID zveznega uporabnika",
+ "Invalid date, date format must be YYYY-MM-DD" : "Neveljaven zapis časa; biti mora v zapisu YYYY-MM-DD",
"Please specify a valid federated group ID" : "Navesti je treba veljaven ID zvezne skupine",
"You cannot share to a Circle if the app is not enabled" : "Ni mogoče odobriti souporabe s Krogom, če program ni omogočen",
"Please specify a valid circle" : "Določite veljaven krog",
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index 6a37370b32e..28af8d92488 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом",
"Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Дељење %s слањем лозинке преко Nextcloud Talk-а није успело пошто Nextcloud Talk није укључен",
- "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Дељење %1$s није успело зато што позадина не дозвољава дељење које је типа %2$s",
"Please specify a valid federated user ID" : "Navedite važeći federalni korisnički ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Navedite važeći ID federalne grupe",
"You cannot share to a Circle if the app is not enabled" : "Не можете делити са Круговима ако та апликација није укључена",
"Please specify a valid circle" : "Одаберите исправан круг",
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index 406e1f2e3c3..8a27d57bf45 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Администратор је забранио отпремања са јавним приступом",
"Public upload is only possible for publicly shared folders" : "Отпремања са јавним приступом су могућа само за јавно дељене фасцикле",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Дељење %s слањем лозинке преко Nextcloud Talk-а није успело пошто Nextcloud Talk није укључен",
- "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Дељење %1$s није успело зато што позадина не дозвољава дељење које је типа %2$s",
"Please specify a valid federated user ID" : "Navedite važeći federalni korisnički ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Please specify a valid federated group ID" : "Navedite važeći ID federalne grupe",
"You cannot share to a Circle if the app is not enabled" : "Не можете делити са Круговима ако та апликација није укључена",
"Please specify a valid circle" : "Одаберите исправан круг",
diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js
index 90d67891c49..6297e5586c1 100644
--- a/apps/files_sharing/l10n/sv.js
+++ b/apps/files_sharing/l10n/sv.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
"Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Dela %s och skicka lösenordet via Nextcloud Talk går inte eftersom Nextcloud Talk är inte aktiverad",
- "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delning av %1$s misslyckades för att det inte är tillåtet med delningar från typ %2$s",
"Please specify a valid federated user ID" : "Vänligen ange ett giltigt federerat användar-id.",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD",
"Please specify a valid federated group ID" : "Vänligen ange ett giltigt federerat grupp-id.",
"You cannot share to a Circle if the app is not enabled" : "Du kan inte dela till en cirkel om appen inte är aktiverad",
"Please specify a valid circle" : "Vänligen ange en giltig cirkel",
diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json
index 39fef34b92a..c52f2f4aee5 100644
--- a/apps/files_sharing/l10n/sv.json
+++ b/apps/files_sharing/l10n/sv.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt",
"Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Dela %s och skicka lösenordet via Nextcloud Talk går inte eftersom Nextcloud Talk är inte aktiverad",
- "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Delning av %1$s misslyckades för att det inte är tillåtet med delningar från typ %2$s",
"Please specify a valid federated user ID" : "Vänligen ange ett giltigt federerat användar-id.",
+ "Invalid date, date format must be YYYY-MM-DD" : "Ogiltigt datum, måste anges: ÅÅÅÅ-MM-DD",
"Please specify a valid federated group ID" : "Vänligen ange ett giltigt federerat grupp-id.",
"You cannot share to a Circle if the app is not enabled" : "Du kan inte dela till en cirkel om appen inte är aktiverad",
"Please specify a valid circle" : "Vänligen ange en giltig cirkel",
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index 3947af3ce31..b2a1c277ae5 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından devre dışı bırakılmış",
"Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk etkinleştirilmemiş olduğundan, %s paylaşım parolası Nextcloud Talk ile gönderilemedi",
- "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Yönetim bölümünden %2$s türündeki paylaşımlar yapılamadığından %1$s paylaşılamadı",
"Please specify a valid federated user ID" : "Lütfen geçerli bir birleşik kullanıcı kodu belirtin",
+ "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kodu belirtin",
"You cannot share to a Circle if the app is not enabled" : "Uygulama etkinleştirilmemiş ise bir Çevre ile paylaşamazsınız",
"Please specify a valid circle" : "Lütfen geçerli bir çevre belirtin",
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index c0696139636..bab9bff2939 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "Herkese açık yükleme BT yöneticisi tarafından devre dışı bırakılmış",
"Public upload is only possible for publicly shared folders" : "Herkese açık yükleme ancak herkese açık paylaşılmış klasörlere yapılabilir",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Nextcloud Talk etkinleştirilmemiş olduğundan, %s paylaşım parolası Nextcloud Talk ile gönderilemedi",
- "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Yönetim bölümünden %2$s türündeki paylaşımlar yapılamadığından %1$s paylaşılamadı",
"Please specify a valid federated user ID" : "Lütfen geçerli bir birleşik kullanıcı kodu belirtin",
+ "Invalid date, date format must be YYYY-MM-DD" : "Tarih geçersiz. Tarih biçimi YYYY-AA-GG olmalıdır",
"Please specify a valid federated group ID" : "Lütfen geçerli bir birleşik grup kodu belirtin",
"You cannot share to a Circle if the app is not enabled" : "Uygulama etkinleştirilmemiş ise bir Çevre ile paylaşamazsınız",
"Please specify a valid circle" : "Lütfen geçerli bir çevre belirtin",
diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js
index 95a8ce3d4b0..c9dfccfaeb3 100644
--- a/apps/files_sharing/l10n/uk.js
+++ b/apps/files_sharing/l10n/uk.js
@@ -113,13 +113,14 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "Публічне завантаження вимкнено адміністратором",
"Public upload is only possible for publicly shared folders" : "Публічне завантаження можливе лише для каталогів з публічним доступом",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Виникла помилка під час надання доступу до %s, оскільки Nextcloud Talk не активний й відтак неможливо надіслати пароль.",
- "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Неможливо поділитися %1$s, оскільки бекенд не дозволяє надавати доступ категорії %2$s",
"Please specify a valid federated user ID" : "Будь ласка, зазначте дійсний ідентифікатор користувача об'єднаної хмари",
+ "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД",
"Please specify a valid federated group ID" : "Будь ласка, зазначте дійсний ідентифікатор групи об'єднаної хмари",
"You cannot share to a Circle if the app is not enabled" : "Ви не можете поділитися у Circle, оскільки застосунок не активний",
"Please specify a valid circle" : "Будь ласка, зазначте дійсне коло",
"Sharing %s failed because the back end does not support room shares" : "Помилка спільного доступу %s, оскільки серверна частина не підтримує спільний доступ до кімнат",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Спільне використання %s не вдалося, оскільки бекенд не підтримує спільне використання ScienceMesh",
"Unknown share type" : "Невідомий тип спільного ресурсу",
"Not a directory" : "Не каталог",
"Could not lock node" : "Не вдалося заблокувати вузол",
@@ -225,6 +226,7 @@ OC.L10N.register(
"Circle" : "Коло",
"Talk conversation" : "Розмова Talk",
"Deck board" : "Дошка Deck",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
"Others with access" : "Доступ для інших",
"No other users with access found" : "Більше немає користувачів, які мають доступ",
@@ -275,6 +277,8 @@ OC.L10N.register(
"Copy to clipboard" : "Копіювати до буферу обміну",
"Sorry, this link doesn’t seem to work anymore." : "На жаль, посилання більше не дійсне.",
"Toggle grid view" : "Перемкнути подання сіткою",
+ "Sharing %s failed because the back end does not support sciencemesh shares" : "Поширення %s не вдалося, оскільки бекенд не підтримує ресурси типа ScienceMesh",
+ "Science Mesh" : "Science Mesh",
"Error generating password from password_policy" : "Помилка під час створення паролів з password_policy"
},
"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_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json
index 3541782fc58..26efb0187c1 100644
--- a/apps/files_sharing/l10n/uk.json
+++ b/apps/files_sharing/l10n/uk.json
@@ -111,13 +111,14 @@
"Public upload disabled by the administrator" : "Публічне завантаження вимкнено адміністратором",
"Public upload is only possible for publicly shared folders" : "Публічне завантаження можливе лише для каталогів з публічним доступом",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Виникла помилка під час надання доступу до %s, оскільки Nextcloud Talk не активний й відтак неможливо надіслати пароль.",
- "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "Неможливо поділитися %1$s, оскільки бекенд не дозволяє надавати доступ категорії %2$s",
"Please specify a valid federated user ID" : "Будь ласка, зазначте дійсний ідентифікатор користувача об'єднаної хмари",
+ "Invalid date, date format must be YYYY-MM-DD" : "Недійсна дата, формат дати має бути РРРР-ММ-ДД",
"Please specify a valid federated group ID" : "Будь ласка, зазначте дійсний ідентифікатор групи об'єднаної хмари",
"You cannot share to a Circle if the app is not enabled" : "Ви не можете поділитися у Circle, оскільки застосунок не активний",
"Please specify a valid circle" : "Будь ласка, зазначте дійсне коло",
"Sharing %s failed because the back end does not support room shares" : "Помилка спільного доступу %s, оскільки серверна частина не підтримує спільний доступ до кімнат",
+ "Sharing %s failed because the back end does not support ScienceMesh shares" : "Спільне використання %s не вдалося, оскільки бекенд не підтримує спільне використання ScienceMesh",
"Unknown share type" : "Невідомий тип спільного ресурсу",
"Not a directory" : "Не каталог",
"Could not lock node" : "Не вдалося заблокувати вузол",
@@ -223,6 +224,7 @@
"Circle" : "Коло",
"Talk conversation" : "Розмова Talk",
"Deck board" : "Дошка Deck",
+ "ScienceMesh" : "ScienceMesh",
"on {server}" : "на {server}",
"Others with access" : "Доступ для інших",
"No other users with access found" : "Більше немає користувачів, які мають доступ",
@@ -273,6 +275,8 @@
"Copy to clipboard" : "Копіювати до буферу обміну",
"Sorry, this link doesn’t seem to work anymore." : "На жаль, посилання більше не дійсне.",
"Toggle grid view" : "Перемкнути подання сіткою",
+ "Sharing %s failed because the back end does not support sciencemesh shares" : "Поширення %s не вдалося, оскільки бекенд не підтримує ресурси типа ScienceMesh",
+ "Science Mesh" : "Science Mesh",
"Error generating password from password_policy" : "Помилка під час створення паролів з password_policy"
},"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_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js
index 12b770985d4..0f9898bd47b 100644
--- a/apps/files_sharing/l10n/zh_CN.js
+++ b/apps/files_sharing/l10n/zh_CN.js
@@ -112,10 +112,10 @@ OC.L10N.register(
"Public link sharing is disabled by the administrator" : "公共链接共享已被管理员禁用",
"Public upload disabled by the administrator" : "公共上传已被管理员禁用",
"Public upload is only possible for publicly shared folders" : "公共上传仅适用于公共共享文件夹",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "由于 Nextcloud Talk 没有启用,所以通过 Nextcloud Talk 发送 %s 共享密码失败。",
- "Invalid date, date format must be YYYY-MM-DD" : "无效的日期,日期格式必须是 YYYY-MM-DD",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "由于Nextcloud通话应用没有启用,所以通过Nextcloud通话应用发送%s共享密码失败。",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "共享 %1$s 失败,后端不允许类型为 %2$s 的共享",
"Please specify a valid federated user ID" : "请指定一个有效的联邦用户 ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "无效的日期,日期格式必须是 YYYY-MM-DD",
"Please specify a valid federated group ID" : "请指定一个有效的联邦群组 ID",
"You cannot share to a Circle if the app is not enabled" : "如果这个应用程序不可用,您不能共享到圈子",
"Please specify a valid circle" : "请指明一个可用圈子",
@@ -127,7 +127,7 @@ OC.L10N.register(
"Wrong or no update parameter given" : "错误或没有更新参数给出",
"Share must at least have READ or CREATE permissions" : "分享至少具有 READ 或 CREATE 权限",
"Share must have READ permission if UPDATE or DELETE permission is set" : "分享如果设置了 UPDATE 或 DELETE 权限,则必须具有 READ 权限",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通过Nextcloud Talk发送密码”共享文件或文件夹失败了,因为未启用 Nextcloud Talk",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通过Nextcloud通话应用发送密码”共享文件或文件夹失败了,因为未启用Nextcloud通话应用",
"shared by %s" : "共享者 %s",
"Download all files" : "下载所有文件",
"Direct link" : "直接链接",
@@ -217,7 +217,7 @@ OC.L10N.register(
"Group" : "群组",
"Email" : "电子邮箱",
"Circle" : "圈子",
- "Talk conversation" : "Talk 会话",
+ "Talk conversation" : "通话应用对话",
"Deck board" : "Deck 看板",
"on {server}" : "在 {server} 上",
"Others with access" : "其他具有访问权限的人",
diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json
index 777a5cb3c70..f76dbe4fd70 100644
--- a/apps/files_sharing/l10n/zh_CN.json
+++ b/apps/files_sharing/l10n/zh_CN.json
@@ -110,10 +110,10 @@
"Public link sharing is disabled by the administrator" : "公共链接共享已被管理员禁用",
"Public upload disabled by the administrator" : "公共上传已被管理员禁用",
"Public upload is only possible for publicly shared folders" : "公共上传仅适用于公共共享文件夹",
- "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "由于 Nextcloud Talk 没有启用,所以通过 Nextcloud Talk 发送 %s 共享密码失败。",
- "Invalid date, date format must be YYYY-MM-DD" : "无效的日期,日期格式必须是 YYYY-MM-DD",
+ "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "由于Nextcloud通话应用没有启用,所以通过Nextcloud通话应用发送%s共享密码失败。",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "共享 %1$s 失败,后端不允许类型为 %2$s 的共享",
"Please specify a valid federated user ID" : "请指定一个有效的联邦用户 ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "无效的日期,日期格式必须是 YYYY-MM-DD",
"Please specify a valid federated group ID" : "请指定一个有效的联邦群组 ID",
"You cannot share to a Circle if the app is not enabled" : "如果这个应用程序不可用,您不能共享到圈子",
"Please specify a valid circle" : "请指明一个可用圈子",
@@ -125,7 +125,7 @@
"Wrong or no update parameter given" : "错误或没有更新参数给出",
"Share must at least have READ or CREATE permissions" : "分享至少具有 READ 或 CREATE 权限",
"Share must have READ permission if UPDATE or DELETE permission is set" : "分享如果设置了 UPDATE 或 DELETE 权限,则必须具有 READ 权限",
- "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通过Nextcloud Talk发送密码”共享文件或文件夹失败了,因为未启用 Nextcloud Talk",
+ "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通过Nextcloud通话应用发送密码”共享文件或文件夹失败了,因为未启用Nextcloud通话应用",
"shared by %s" : "共享者 %s",
"Download all files" : "下载所有文件",
"Direct link" : "直接链接",
@@ -215,7 +215,7 @@
"Group" : "群组",
"Email" : "电子邮箱",
"Circle" : "圈子",
- "Talk conversation" : "Talk 会话",
+ "Talk conversation" : "通话应用对话",
"Deck board" : "Deck 看板",
"on {server}" : "在 {server} 上",
"Others with access" : "其他具有访问权限的人",
diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js
index ec5413ecd31..f5b04f71694 100644
--- a/apps/files_sharing/l10n/zh_HK.js
+++ b/apps/files_sharing/l10n/zh_HK.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "公開上傳已被管理員停用",
"Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
"Please specify a valid federated user ID" : "請指定一個有效的聯合用戶 ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid federated group ID" : "請指定一個有效的聯合群組 ID",
"You cannot share to a Circle if the app is not enabled" : "當應用未被啟用,你無法分享到circle。",
"Please specify a valid circle" : "請指定一個有效的circle",
diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json
index 718daeeb14a..1e505211e62 100644
--- a/apps/files_sharing/l10n/zh_HK.json
+++ b/apps/files_sharing/l10n/zh_HK.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "公開上傳已被管理員停用",
"Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
"Please specify a valid federated user ID" : "請指定一個有效的聯合用戶 ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid federated group ID" : "請指定一個有效的聯合群組 ID",
"You cannot share to a Circle if the app is not enabled" : "當應用未被啟用,你無法分享到circle。",
"Please specify a valid circle" : "請指定一個有效的circle",
diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js
index 7bd157e2041..11a32e75557 100644
--- a/apps/files_sharing/l10n/zh_TW.js
+++ b/apps/files_sharing/l10n/zh_TW.js
@@ -113,9 +113,9 @@ OC.L10N.register(
"Public upload disabled by the administrator" : "公開上傳已被管理員停用",
"Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
"Please specify a valid federated user ID" : "請指定有效的聯盟使用者 ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid federated group ID" : "請指定有效的聯盟群組 ID",
"You cannot share to a Circle if the app is not enabled" : "因為應用程式未啟用,所以您無法分享至小圈圈",
"Please specify a valid circle" : "請指定有效的小圈圈",
diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json
index 6650d4127ac..666c6679505 100644
--- a/apps/files_sharing/l10n/zh_TW.json
+++ b/apps/files_sharing/l10n/zh_TW.json
@@ -111,9 +111,9 @@
"Public upload disabled by the administrator" : "公開上傳已被管理員停用",
"Public upload is only possible for publicly shared folders" : "只有公開分享的資料夾可以接受公開上傳",
"Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "因為未啟用 Nextcloud Talk,因此透過 Nextcloud Talk 傳送密碼分享 %s 失敗",
- "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Sharing %1$s failed because the back end does not allow shares from type %2$s" : "分享 %1$s 失敗,因為後端不允許來自 %2$s 類型的分享",
"Please specify a valid federated user ID" : "請指定有效的聯盟使用者 ID",
+ "Invalid date, date format must be YYYY-MM-DD" : "無效的日期,需為 YYYY-MM-DD 格式",
"Please specify a valid federated group ID" : "請指定有效的聯盟群組 ID",
"You cannot share to a Circle if the app is not enabled" : "因為應用程式未啟用,所以您無法分享至小圈圈",
"Please specify a valid circle" : "請指定有效的小圈圈",
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index e1595a98ea3..3287d9447d8 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -627,16 +627,6 @@ class ShareAPIController extends OCSController {
$share->setSendPasswordByTalk(true);
}
-
- //Expire date
- if ($expireDate !== '') {
- try {
- $expireDate = $this->parseDate($expireDate);
- $share->setExpirationDate($expireDate);
- } catch (\Exception $e) {
- throw new OCSNotFoundException($this->l->t('Invalid date, date format must be YYYY-MM-DD'));
- }
- }
} elseif ($shareType === IShare::TYPE_REMOTE) {
if (!$this->shareManager->outgoingServer2ServerSharesAllowed()) {
throw new OCSForbiddenException($this->l->t('Sharing %1$s failed because the back end does not allow shares from type %2$s', [$node->getPath(), $shareType]));
@@ -710,6 +700,16 @@ class ShareAPIController extends OCSController {
throw new OCSBadRequestException($this->l->t('Unknown share type'));
}
+ //Expire date
+ if ($expireDate !== '') {
+ try {
+ $expireDate = $this->parseDate($expireDate);
+ $share->setExpirationDate($expireDate);
+ } catch (\Exception $e) {
+ throw new OCSNotFoundException($this->l->t('Invalid date, date format must be YYYY-MM-DD'));
+ }
+ }
+
$share->setShareType($shareType);
if ($note !== '') {
@@ -1216,17 +1216,6 @@ class ShareAPIController extends OCSController {
$permissions = $newPermissions;
}
- if ($expireDate === '') {
- $share->setExpirationDate(null);
- } elseif ($expireDate !== null) {
- try {
- $expireDate = $this->parseDate($expireDate);
- } catch (\Exception $e) {
- throw new OCSBadRequestException($e->getMessage(), $e);
- }
- $share->setExpirationDate($expireDate);
- }
-
if ($password === '') {
$share->setPassword(null);
} elseif ($password !== null) {
@@ -1256,17 +1245,17 @@ class ShareAPIController extends OCSController {
if ($permissions !== null) {
$share->setPermissions($permissions);
}
+ }
- if ($expireDate === '') {
- $share->setExpirationDate(null);
- } elseif ($expireDate !== null) {
- try {
- $expireDate = $this->parseDate($expireDate);
- } catch (\Exception $e) {
- throw new OCSBadRequestException($e->getMessage(), $e);
- }
- $share->setExpirationDate($expireDate);
+ if ($expireDate === '') {
+ $share->setExpirationDate(null);
+ } elseif ($expireDate !== null) {
+ try {
+ $expireDate = $this->parseDate($expireDate);
+ } catch (\Exception $e) {
+ throw new OCSBadRequestException($e->getMessage(), $e);
}
+ $share->setExpirationDate($expireDate);
}
try {
diff --git a/apps/files_sharing/lib/Scanner.php b/apps/files_sharing/lib/Scanner.php
index baab7a862bd..d5a1c24418e 100644
--- a/apps/files_sharing/lib/Scanner.php
+++ b/apps/files_sharing/lib/Scanner.php
@@ -25,7 +25,7 @@
namespace OCA\Files_Sharing;
-use OC\Files\ObjectStore\NoopScanner;
+use OC\Files\ObjectStore\ObjectStoreScanner;
/**
* Scanner for SharedStorage
@@ -72,7 +72,8 @@ class Scanner extends \OC\Files\Cache\Scanner {
public function scanFile($file, $reuseExisting = 0, $parentId = -1, $cacheData = null, $lock = true, $data = null) {
$sourceScanner = $this->getSourceScanner();
- if ($sourceScanner instanceof NoopScanner) {
+ if ($sourceScanner instanceof ObjectStoreScanner) {
+ // ObjectStoreScanner doesn't scan
return [];
} else {
return parent::scanFile($file, $reuseExisting, $parentId, $cacheData, $lock);
diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue
index e45690ba2a0..b3740d4097f 100644
--- a/apps/files_sharing/src/components/SharingEntryLink.vue
+++ b/apps/files_sharing/src/components/SharingEntryLink.vue
@@ -161,6 +161,7 @@
class="share-link-password"
:class="{ error: errors.password}"
:disabled="saving"
+ :show-trailing-button="hasUnsavedPassword"
:required="config.enforcePasswordForPublicLink"
:value="hasUnsavedPassword ? share.newPassword : '***************'"
icon="icon-password"
@@ -903,7 +904,7 @@ export default {
}
::v-deep .avatar-link-share {
- background-color: var(--color-primary);
+ background-color: var(--color-primary-element);
}
.sharing-entry__action--public-upload {
diff --git a/apps/files_sharing/src/components/SharingInput.vue b/apps/files_sharing/src/components/SharingInput.vue
index a86a8998468..8b740c1bac3 100644
--- a/apps/files_sharing/src/components/SharingInput.vue
+++ b/apps/files_sharing/src/components/SharingInput.vue
@@ -24,7 +24,7 @@
<div class="sharing-search">
<label for="sharing-search-input">{{ t('files_sharing', 'Search for share recipients') }}</label>
<NcSelect ref="select"
- id="sharing-search-input"
+ input-id="sharing-search-input"
class="sharing-search__input"
:disabled="!canReshare"
:loading="loading"
diff --git a/apps/files_sharing/src/share.js b/apps/files_sharing/src/share.js
index 06eea5807a1..a54f2f13698 100644
--- a/apps/files_sharing/src/share.js
+++ b/apps/files_sharing/src/share.js
@@ -94,7 +94,7 @@ import { getCapabilities } from '@nextcloud/capabilities'
}
if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) {
delete fileActions.actions.all.Download
- if (fileData.permissions & OC.PERMISSION_UPDATE === 0) {
+ if ((fileData.permissions & OC.PERMISSION_UPDATE) === 0) {
// neither move nor copy is allowed, remove the action completely
delete fileActions.actions.all.MoveCopy
}
diff --git a/apps/files_sharing/tests/External/ScannerTest.php b/apps/files_sharing/tests/External/ScannerTest.php
index 2d2486737dc..8d077715b2d 100644
--- a/apps/files_sharing/tests/External/ScannerTest.php
+++ b/apps/files_sharing/tests/External/ScannerTest.php
@@ -26,9 +26,11 @@ namespace OCA\Files_Sharing\Tests\External;
use OCA\Files_Sharing\External\Scanner;
use Test\TestCase;
+/**
+ * @group DB
+ */
class ScannerTest extends TestCase {
- /** @var \OCA\Files_Sharing\External\Scanner */
- protected $scanner;
+ protected Scanner $scanner;
/** @var \OCA\Files_Sharing\External\Storage|\PHPUnit\Framework\MockObject\MockObject */
protected $storage;
/** @var \OC\Files\Cache\Cache|\PHPUnit\Framework\MockObject\MockObject */
diff --git a/apps/files_trashbin/l10n/uk.js b/apps/files_trashbin/l10n/uk.js
index 42d574e8225..2a3ea3cc96e 100644
--- a/apps/files_trashbin/l10n/uk.js
+++ b/apps/files_trashbin/l10n/uk.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"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." : "Цей застосунок дозволяє користувачам відновлювати файли, які було вилучено у системі. Він показує список вилучених у вебінтерфейсі файлів, дозволяє відновлювати вилучені файліи до каталогів користувача, звідки файл було вилучено, або остаточно вилучати файли з системи. Відновлення файлу також відновлює віповідні версії файлу, якщо підтримку версій увімкнено у системі. Якщо файл було вилучено зі спільного ресурсу, то його також можна відновити, при цьому його буде відновлено уже як не спільний ресурс. Типово вилучені файли зберігаються у кошику протягом 30 днів.\nДля запобігання понадмірного використання дискового простору вилучені файли не можуть займати понад 50% поточного доступного простору за квотою для вилучених файлів. Якщо розмір вилучених файлів перевищує зазначене обмеження, застосунок вилучатиме без можливості відновлення найстаріші файли аж до досягнення обмеження. Додаткову інформацію можна знайти у документації до застосунку.",
"Restore" : "Відновити",
+ "List of files that have been deleted." : "Список файлів, які було видалено.",
"Deleted" : "Вилучено",
"No deleted files" : "Кошик порожній",
"You will be able to recover deleted files from here" : "Тут ви можете відновити файли, які було вилучено",
diff --git a/apps/files_trashbin/l10n/uk.json b/apps/files_trashbin/l10n/uk.json
index ce856f1a152..27df9d08b5d 100644
--- a/apps/files_trashbin/l10n/uk.json
+++ b/apps/files_trashbin/l10n/uk.json
@@ -5,6 +5,7 @@
"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." : "Цей застосунок дозволяє користувачам відновлювати файли, які було вилучено у системі. Він показує список вилучених у вебінтерфейсі файлів, дозволяє відновлювати вилучені файліи до каталогів користувача, звідки файл було вилучено, або остаточно вилучати файли з системи. Відновлення файлу також відновлює віповідні версії файлу, якщо підтримку версій увімкнено у системі. Якщо файл було вилучено зі спільного ресурсу, то його також можна відновити, при цьому його буде відновлено уже як не спільний ресурс. Типово вилучені файли зберігаються у кошику протягом 30 днів.\nДля запобігання понадмірного використання дискового простору вилучені файли не можуть займати понад 50% поточного доступного простору за квотою для вилучених файлів. Якщо розмір вилучених файлів перевищує зазначене обмеження, застосунок вилучатиме без можливості відновлення найстаріші файли аж до досягнення обмеження. Додаткову інформацію можна знайти у документації до застосунку.",
"Restore" : "Відновити",
+ "List of files that have been deleted." : "Список файлів, які було видалено.",
"Deleted" : "Вилучено",
"No deleted files" : "Кошик порожній",
"You will be able to recover deleted files from here" : "Тут ви можете відновити файли, які було вилучено",
diff --git a/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php b/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php
index 70338a469d3..842721eeac9 100644
--- a/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php
+++ b/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php
@@ -67,7 +67,7 @@ class TrashbinMigrator implements IMigrator, ISizeEstimationMigrator {
/**
* {@inheritDoc}
*/
- public function getEstimatedExportSize(IUser $user): int {
+ public function getEstimatedExportSize(IUser $user): int|float {
$uid = $user->getUID();
try {
@@ -75,7 +75,7 @@ class TrashbinMigrator implements IMigrator, ISizeEstimationMigrator {
if (!$trashbinFolder instanceof Folder) {
return 0;
}
- return (int)ceil($trashbinFolder->getSize() / 1024);
+ return ceil($trashbinFolder->getSize() / 1024);
} catch (\Throwable $e) {
return 0;
}
diff --git a/apps/files_versions/l10n/pl.js b/apps/files_versions/l10n/pl.js
index b9d8dd4687a..e55af7f1c3d 100644
--- a/apps/files_versions/l10n/pl.js
+++ b/apps/files_versions/l10n/pl.js
@@ -4,13 +4,16 @@ OC.L10N.register(
"Versions" : "Wersje",
"This application automatically maintains older versions of files that are changed." : "Aplikacja przechowuje starsze wersje plików poddanych modyfikacji.",
"This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikacja automatycznie utrzymuje starsze wersje zmienionych plików. Po włączeniu, ukryty katalog versions jest udostępniany w każdym katalogu użytkownika i służy do przechowywania starych wersji plików. Użytkownik może w dowolnym momencie powrócić do starszej wersji za pośrednictwem strony internetowej, a zastąpiony plik staje się jego wersją. Aplikacja automatycznie zarządza katalogiem versions, aby zapewnić użytkownikowi ciągłość wersji.\n\t\tOprócz wygaśnięcia wersji, aplikacja Versions zapewnia, że nigdy nie będzie wykorzystywać więcej niż 50% dostępnej przestrzeni użytkownika. Jeśli przechowywane wersje przekroczą ten limit, aplikacja usunie najpierw najstarsze wersje, aż do osiągnięcia tego limitu. Więcej informacji można znaleźć w dokumentacji Versions.",
+ "Name this version" : "Nazwij tę wersję",
"Edit version name" : "Edytuj nazwę wersji",
"Restore version" : "Przywróć wersję",
"Download version" : "Pobierz wersję",
"Delete version" : "Usuń wersję",
"Version name" : "Nazwa wersji",
+ "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nazwane wersje są utrwalane i wykluczane z automatycznego czyszczenia, gdy limit przechowywania zostanie przekroczony.",
"Remove version name" : "Usuń nazwę wersji",
"Save version name" : "Zapis nazwę wersji",
+ "Initial version restored" : "Przywrócono wersję początkową",
"Version restored" : "Wersja przywrócona",
"Could not restore version" : "Nie można przywrócić wersji",
"Could not set version name" : "Nie można ustawić nazwy wersji",
diff --git a/apps/files_versions/l10n/pl.json b/apps/files_versions/l10n/pl.json
index a9cd03e6fee..93ccd7b4ad4 100644
--- a/apps/files_versions/l10n/pl.json
+++ b/apps/files_versions/l10n/pl.json
@@ -2,13 +2,16 @@
"Versions" : "Wersje",
"This application automatically maintains older versions of files that are changed." : "Aplikacja przechowuje starsze wersje plików poddanych modyfikacji.",
"This application automatically maintains older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user's directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. The app automatically manages the versions folder to ensure the user does not run out of Quota because of versions.\n\t\tIn addition to the expiry of versions, the versions app makes certain never to use more than 50% of the user's currently available free space. If stored versions exceed this limit, the app will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation." : "Aplikacja automatycznie utrzymuje starsze wersje zmienionych plików. Po włączeniu, ukryty katalog versions jest udostępniany w każdym katalogu użytkownika i służy do przechowywania starych wersji plików. Użytkownik może w dowolnym momencie powrócić do starszej wersji za pośrednictwem strony internetowej, a zastąpiony plik staje się jego wersją. Aplikacja automatycznie zarządza katalogiem versions, aby zapewnić użytkownikowi ciągłość wersji.\n\t\tOprócz wygaśnięcia wersji, aplikacja Versions zapewnia, że nigdy nie będzie wykorzystywać więcej niż 50% dostępnej przestrzeni użytkownika. Jeśli przechowywane wersje przekroczą ten limit, aplikacja usunie najpierw najstarsze wersje, aż do osiągnięcia tego limitu. Więcej informacji można znaleźć w dokumentacji Versions.",
+ "Name this version" : "Nazwij tę wersję",
"Edit version name" : "Edytuj nazwę wersji",
"Restore version" : "Przywróć wersję",
"Download version" : "Pobierz wersję",
"Delete version" : "Usuń wersję",
"Version name" : "Nazwa wersji",
+ "Named versions are persisted, and excluded from automatic cleanups when your storage quota is full." : "Nazwane wersje są utrwalane i wykluczane z automatycznego czyszczenia, gdy limit przechowywania zostanie przekroczony.",
"Remove version name" : "Usuń nazwę wersji",
"Save version name" : "Zapis nazwę wersji",
+ "Initial version restored" : "Przywrócono wersję początkową",
"Version restored" : "Wersja przywrócona",
"Could not restore version" : "Nie można przywrócić wersji",
"Could not set version name" : "Nie można ustawić nazwy wersji",
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php
index 85d8660f240..cd13e74e786 100644
--- a/apps/files_versions/lib/Storage.php
+++ b/apps/files_versions/lib/Storage.php
@@ -443,24 +443,26 @@ class Storage {
$view->lockFile($path1, ILockingProvider::LOCK_EXCLUSIVE);
$view->lockFile($path2, ILockingProvider::LOCK_EXCLUSIVE);
- // TODO add a proper way of overwriting a file while maintaining file ids
- if ($storage1->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage') || $storage2->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage')) {
- $source = $storage1->fopen($internalPath1, 'r');
- $target = $storage2->fopen($internalPath2, 'w');
- [, $result] = \OC_Helper::streamCopy($source, $target);
- fclose($source);
- fclose($target);
-
- if ($result !== false) {
- $storage1->unlink($internalPath1);
+ try {
+ // TODO add a proper way of overwriting a file while maintaining file ids
+ if ($storage1->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage') || $storage2->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage')) {
+ $source = $storage1->fopen($internalPath1, 'r');
+ $target = $storage2->fopen($internalPath2, 'w');
+ [, $result] = \OC_Helper::streamCopy($source, $target);
+ fclose($source);
+ fclose($target);
+
+ if ($result !== false) {
+ $storage1->unlink($internalPath1);
+ }
+ } else {
+ $result = $storage2->moveFromStorage($storage1, $internalPath1, $internalPath2);
}
- } else {
- $result = $storage2->moveFromStorage($storage1, $internalPath1, $internalPath2);
+ } finally {
+ $view->unlockFile($path1, ILockingProvider::LOCK_EXCLUSIVE);
+ $view->unlockFile($path2, ILockingProvider::LOCK_EXCLUSIVE);
}
- $view->unlockFile($path1, ILockingProvider::LOCK_EXCLUSIVE);
- $view->unlockFile($path2, ILockingProvider::LOCK_EXCLUSIVE);
-
return ($result !== false);
}
@@ -606,7 +608,12 @@ class Storage {
foreach ($versions as $version) {
$internalPath = $version->getInternalPath();
\OC_Hook::emit('\OCP\Versions', 'preDelete', ['path' => $internalPath, 'trigger' => self::DELETE_TRIGGER_RETENTION_CONSTRAINT]);
- $versionsMapper->delete($versionEntities[$version->getId()]);
+
+ $versionEntity = $versionEntities[$version->getId()];
+ if (!is_null($versionEntity)) {
+ $versionsMapper->delete($versionEntity);
+ }
+
$version->delete();
\OC_Hook::emit('\OCP\Versions', 'delete', ['path' => $internalPath, 'trigger' => self::DELETE_TRIGGER_RETENTION_CONSTRAINT]);
}
diff --git a/apps/files_versions/lib/Versions/VersionManager.php b/apps/files_versions/lib/Versions/VersionManager.php
index b3b6d6f85e8..3e769000da7 100644
--- a/apps/files_versions/lib/Versions/VersionManager.php
+++ b/apps/files_versions/lib/Versions/VersionManager.php
@@ -27,8 +27,13 @@ namespace OCA\Files_Versions\Versions;
use OCP\Files\File;
use OCP\Files\FileInfo;
+use OCP\Files\IRootFolder;
+use OCP\Files\Lock\ILock;
+use OCP\Files\Lock\ILockManager;
+use OCP\Files\Lock\LockContext;
use OCP\Files\Storage\IStorage;
use OCP\IUser;
+use OCP\Lock\ManuallyLockedException;
class VersionManager implements IVersionManager, INameableVersionBackend, IDeletableVersionBackend {
/** @var (IVersionBackend[])[] */
@@ -94,7 +99,7 @@ class VersionManager implements IVersionManager, INameableVersionBackend, IDelet
public function rollback(IVersion $version) {
$backend = $version->getBackend();
- $result = $backend->rollback($version);
+ $result = self::handleAppLocks(fn(): ?bool => $backend->rollback($version));
// rollback doesn't have a return type yet and some implementations don't return anything
if ($result === null || $result === true) {
\OC_Hook::emit('\OCP\Versions', 'rollback', [
@@ -133,4 +138,48 @@ class VersionManager implements IVersionManager, INameableVersionBackend, IDelet
$backend->deleteVersion($version);
}
}
+
+ /**
+ * Catch ManuallyLockedException and retry in app context if possible.
+ *
+ * Allow users to go back to old versions via the versions tab in the sidebar
+ * even when the file is opened in the viewer next to it.
+ *
+ * Context: If a file is currently opened for editing
+ * the files_lock app will throw ManuallyLockedExceptions.
+ * This prevented the user from rolling an opened file back to a previous version.
+ *
+ * Text and Richdocuments can handle changes of open files.
+ * So we execute the rollback under their lock context
+ * to let them handle the conflict.
+ *
+ * @param callable $callback function to run with app locks handled
+ * @return bool|null
+ * @throws ManuallyLockedException
+ *
+ */
+ private static function handleAppLocks(callable $callback): ?bool {
+ try {
+ return $callback();
+ } catch (ManuallyLockedException $e) {
+ $owner = (string) $e->getOwner();
+ $appsThatHandleUpdates = array("text", "richdocuments");
+ if (!in_array($owner, $appsThatHandleUpdates)) {
+ throw $e;
+ }
+ // The LockWrapper in the files_lock app only compares the lock type and owner
+ // when checking the lock against the current scope.
+ // So we do not need to get the actual node here
+ // and use the root node instead.
+ $root = \OC::$server->get(IRootFolder::class);
+ $lockContext = new LockContext($root, ILock::TYPE_APP, $owner);
+ $lockManager = \OC::$server->get(ILockManager::class);
+ $result = null;
+ $lockManager->runInScope($lockContext, function() use ($callback, &$result) {
+ $result = $callback();
+ });
+ return $result;
+ }
+ }
+
}
diff --git a/apps/provisioning_api/lib/Controller/AUserData.php b/apps/provisioning_api/lib/Controller/AUserData.php
index e7496c6c5ed..128fda588e2 100644
--- a/apps/provisioning_api/lib/Controller/AUserData.php
+++ b/apps/provisioning_api/lib/Controller/AUserData.php
@@ -60,6 +60,7 @@ abstract class AUserData extends OCSController {
public const USER_FIELD_LOCALE = 'locale';
public const USER_FIELD_PASSWORD = 'password';
public const USER_FIELD_QUOTA = 'quota';
+ public const USER_FIELD_MANAGER = 'manager';
public const USER_FIELD_NOTIFICATION_EMAIL = 'notify_email';
/** @var IUserManager */
@@ -151,6 +152,8 @@ abstract class AUserData extends OCSController {
$data['backend'] = $targetUserObject->getBackendClassName();
$data['subadmin'] = $this->getUserSubAdminGroupsData($targetUserObject->getUID());
$data[self::USER_FIELD_QUOTA] = $this->fillStorageInfo($targetUserObject->getUID());
+ $managerUids = $targetUserObject->getManagerUids();
+ $data[self::USER_FIELD_MANAGER] = empty($managerUids) ? '' : $managerUids[0];
try {
if ($includeScopes) {
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index bc97e32faa4..7dfdea991e5 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -338,7 +338,8 @@ class UsersController extends AUserData {
array $groups = [],
array $subadmin = [],
string $quota = '',
- string $language = ''
+ string $language = '',
+ ?string $manager = null,
): DataResponse {
$user = $this->userSession->getUser();
$isAdmin = $this->groupManager->isAdmin($user->getUID());
@@ -447,6 +448,15 @@ class UsersController extends AUserData {
$this->editUser($userid, self::USER_FIELD_LANGUAGE, $language);
}
+ /**
+ * null -> nothing sent
+ * '' -> unset manager
+ * else -> set manager
+ */
+ if ($manager !== null) {
+ $this->editUser($userid, self::USER_FIELD_MANAGER, $manager);
+ }
+
// Send new user mail only if a mail is set
if ($email !== '') {
$newUser->setEMailAddress($email);
@@ -800,9 +810,11 @@ class UsersController extends AUserData {
$permittedFields[] = IAccountManager::PROPERTY_AVATAR . self::SCOPE_SUFFIX;
- // If admin they can edit their own quota
+ // If admin they can edit their own quota and manager
if ($this->groupManager->isAdmin($currentLoggedInUser->getUID())) {
$permittedFields[] = self::USER_FIELD_QUOTA;
+ $permittedFields[] = self::USER_FIELD_MANAGER;
+
}
} else {
// Check if admin / subadmin
@@ -836,6 +848,7 @@ class UsersController extends AUserData {
$permittedFields[] = IAccountManager::PROPERTY_PROFILE_ENABLED;
$permittedFields[] = self::USER_FIELD_QUOTA;
$permittedFields[] = self::USER_FIELD_NOTIFICATION_EMAIL;
+ $permittedFields[] = self::USER_FIELD_MANAGER;
} else {
// No rights
throw new OCSException('', OCSController::RESPOND_NOT_FOUND);
@@ -885,6 +898,9 @@ class UsersController extends AUserData {
}
$targetUser->setQuota($quota);
break;
+ case self::USER_FIELD_MANAGER:
+ $targetUser->setManagerUids([$value]);
+ break;
case self::USER_FIELD_PASSWORD:
try {
if (strlen($value) > IUserManager::MAX_PASSWORD_LENGTH) {
@@ -942,11 +958,11 @@ class UsersController extends AUserData {
if (filter_var($value, FILTER_VALIDATE_EMAIL) && $value !== $targetUser->getSystemEMailAddress()) {
$userAccount = $this->accountManager->getAccount($targetUser);
$mailCollection = $userAccount->getPropertyCollection(IAccountManager::COLLECTION_EMAIL);
- foreach ($mailCollection->getProperties() as $property) {
- if ($property->getValue() === $value) {
- break;
- }
+
+ if ($mailCollection->getPropertyByValue($value)) {
+ throw new OCSException('', 102);
}
+
$mailCollection->addPropertyWithDefaults($value);
$this->accountManager->updateAccount($userAccount);
} else {
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index b8b8fa8715c..56a47f23a5c 100644
--- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -52,7 +52,9 @@ use OCA\Settings\Mailer\NewUserMailHelper;
use OCP\Accounts\IAccount;
use OCP\Accounts\IAccountManager;
use OCP\Accounts\IAccountProperty;
+use OCP\Accounts\IAccountPropertyCollection;
use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\OCS\OCSException;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
use OCP\IGroup;
@@ -1091,6 +1093,7 @@ class UsersControllerTest extends TestCase {
'biography' => 'biography',
'profile_enabled' => '1',
'notify_email' => null,
+ 'manager' => '',
];
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UID']));
}
@@ -1231,6 +1234,7 @@ class UsersControllerTest extends TestCase {
'biography' => 'biography',
'profile_enabled' => '1',
'notify_email' => null,
+ 'manager' => '',
];
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UID']));
}
@@ -1409,6 +1413,7 @@ class UsersControllerTest extends TestCase {
'biography' => 'biography',
'profile_enabled' => '1',
'notify_email' => null,
+ 'manager' => '',
];
$this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UID']));
}
@@ -1544,7 +1549,162 @@ class UsersControllerTest extends TestCase {
$this->assertEquals([], $this->api->editUser('UserToEdit', 'email', 'demo@nextcloud.com')->getData());
}
+ public function testEditUserRegularUserSelfEditAddAdditionalEmailValid(): void {
+ $loggedInUser = $this->getMockBuilder(IUser::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $loggedInUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->willReturn('UID');
+ $targetUser = $this->getMockBuilder(IUser::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->userSession
+ ->expects($this->once())
+ ->method('getUser')
+ ->willReturn($loggedInUser);
+ $this->userManager
+ ->expects($this->once())
+ ->method('get')
+ ->with('UserToEdit')
+ ->willReturn($targetUser);
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->willReturn('UID');
+
+ $backend = $this->createMock(UserInterface::class);
+ $targetUser
+ ->expects($this->any())
+ ->method('getBackend')
+ ->willReturn($backend);
+
+ $userAccount = $this->createMock(IAccount::class);
+
+ $this->accountManager
+ ->expects($this->once())
+ ->method('getAccount')
+ ->with($targetUser)
+ ->willReturn($userAccount);
+ $this->accountManager
+ ->expects($this->once())
+ ->method('updateAccount')
+ ->with($userAccount);
+
+ $this->assertEquals([], $this->api->editUser('UserToEdit', 'additional_mail', 'demo1@nextcloud.com')->getData());
+ }
+
+ public function testEditUserRegularUserSelfEditAddAdditionalEmailMainAddress(): void {
+ $loggedInUser = $this->getMockBuilder(IUser::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $loggedInUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->willReturn('UID');
+ $targetUser = $this->getMockBuilder(IUser::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->userSession
+ ->expects($this->once())
+ ->method('getUser')
+ ->willReturn($loggedInUser);
+ $this->userManager
+ ->expects($this->once())
+ ->method('get')
+ ->with('UserToEdit')
+ ->willReturn($targetUser);
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->willReturn('UID');
+
+ $backend = $this->createMock(UserInterface::class);
+ $targetUser
+ ->expects($this->any())
+ ->method('getBackend')
+ ->willReturn($backend);
+ $targetUser
+ ->expects($this->any())
+ ->method('getSystemEMailAddress')
+ ->willReturn('demo@nextcloud.com');
+
+ $userAccount = $this->createMock(IAccount::class);
+ $this->accountManager
+ ->expects($this->never())
+ ->method('getAccount')
+ ->with($targetUser)
+ ->willReturn($userAccount);
+ $this->accountManager
+ ->expects($this->never())
+ ->method('updateAccount')
+ ->with($userAccount);
+
+ $this->expectException(OCSException::class);
+ $this->expectExceptionCode(102);
+ $this->api->editUser('UserToEdit', 'additional_mail', 'demo@nextcloud.com')->getData();
+ }
+
+ public function testEditUserRegularUserSelfEditAddAdditionalEmailDuplicate(): void {
+ $loggedInUser = $this->getMockBuilder(IUser::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $loggedInUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->willReturn('UID');
+ $targetUser = $this->getMockBuilder(IUser::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->userSession
+ ->expects($this->once())
+ ->method('getUser')
+ ->willReturn($loggedInUser);
+ $this->userManager
+ ->expects($this->once())
+ ->method('get')
+ ->with('UserToEdit')
+ ->willReturn($targetUser);
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->willReturn('UID');
+
+ $backend = $this->createMock(UserInterface::class);
+ $targetUser
+ ->expects($this->any())
+ ->method('getBackend')
+ ->willReturn($backend);
+
+ $property = $this->createMock(IAccountProperty::class);
+ $property->method('getValue')
+ ->willReturn('demo1@nextcloud.com');
+ $collection = $this->createMock(IAccountPropertyCollection::class);
+ $collection->method('getPropertyByValue')
+ ->with('demo1@nextcloud.com')
+ ->willReturn($property);
+
+ $userAccount = $this->createMock(IAccount::class);
+ $userAccount->method('getPropertyCollection')
+ ->with(IAccountManager::COLLECTION_EMAIL)
+ ->willReturn($collection);
+
+ $this->accountManager
+ ->expects($this->once())
+ ->method('getAccount')
+ ->with($targetUser)
+ ->willReturn($userAccount);
+ $this->accountManager
+ ->expects($this->never())
+ ->method('updateAccount')
+ ->with($userAccount);
+
+ $this->expectException(OCSException::class);
+ $this->expectExceptionCode(102);
+ $this->api->editUser('UserToEdit', 'additional_mail', 'demo1@nextcloud.com')->getData();
+ }
public function testEditUserRegularUserSelfEditChangeEmailInvalid() {
$this->expectException(\OCP\AppFramework\OCS\OCSException::class);
diff --git a/apps/settings/css/settings.css b/apps/settings/css/settings.css
index 49c99f687c5..f9b8f3ed1be 100644
--- a/apps/settings/css/settings.css
+++ b/apps/settings/css/settings.css
@@ -1 +1 @@
-input#openid,input#webdav{width:20em}.clear{clear:both}.nav-icon-personal-settings{background-image:var(--icon-personal-dark)}.nav-icon-security{background-image:var(--icon-toggle-filelist-dark)}.nav-icon-clientsbox{background-image:var(--icon-change-dark)}.nav-icon-federated-cloud{background-image:var(--icon-share-dark)}.nav-icon-second-factor-backup-codes,.nav-icon-ssl-root-certificate{background-image:var(--icon-password-dark)}#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 1fr 1fr}.personal-show-container{width:100%}.personal-settings-setting-box .section{padding:10px 30px}.personal-settings-setting-box .section .headerbar-label{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%}.personal-settings-setting-box-profile{grid-row:3/5}.personal-settings-setting-box-detail{grid-row:5}.personal-settings-setting-box-detail--without-profile{grid-row:3}select#timezone{width:100%}#personal-settings{display:grid;padding:20px;max-width:1700px;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));grid-column-gap:10px}#personal-settings .section{padding:10px 10px;border:0}#personal-settings .section h2{margin-bottom:12px}#personal-settings .section h3>label{font-weight:bold}#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:.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-hover)}.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}.personal-settings-container{display:inline-grid;grid-template-columns: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%;align-items:center;gap:8px}.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:#fff;color:#000;border:none;opacity:100}.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:0;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:.8}.federation-menu .icon-federation-menu{padding-left:16px;background-size:16px;background-position:left center;opacity:.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:.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:.5;cursor:default}.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled *{cursor:default}.clientsbox img{height:60px}#sslCertificate tr.expired{background-color:rgba(255,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:.2em 0}#security-password #passwordform{display:flex;flex-wrap:wrap;flex-direction:column;gap:1rem}#security-password #passwordform .input-control{display:flex;flex-wrap:wrap;flex-direction:column}#security-password #passwordform .input-control label{margin-bottom:.5rem}#security-password #passwordform #pass1,#security-password #passwordform .personal-show-container{flex-shrink:1;width:300px;min-width:150px}#security-password #passwordform .personal-show-container #pass2{position:relative;top:.5rem}#security-password #passwordform .personal-show-container .personal-show-label{top:34px !important;margin-right:0;margin-top:0 !important;right:3px}#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:5px;overflow:hidden;height:3px}#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;filter:var(--background-invert-if-dark)}.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}table.grid{width:100%}table.grid th{height:2em;color:#999;border-bottom:1px solid var(--color-border);padding:0 .5em;padding-left:.8em;text-align:left;font-weight:normal}table.grid td{border-bottom:1px solid var(--color-border);padding:0 .5em;padding-left:.8em;text-align:left;font-weight:normal}td.name,th.name{padding-left:.8em;min-width:5em;max-width:12em;text-overflow:ellipsis;overflow:hidden}td.password,th.password{padding-left:.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}#app-content>svg.app-filter{float:left;height:0;width:0}#app-category-app-bundles{margin-bottom:20px}.appinfo{margin:1em 40px}#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:rgba(0,0,0,0);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:.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:.7}#apps-list.store .app-image-icon .icon-settings-dark{width:100%;height:150px;background-size:45px;opacity:.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:.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:.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%}}@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}}.section{margin-bottom:0}.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}.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:.5}.app-description-container{clear:both;position:relative;top:7px}.app-description{clear:both}#app-category-1{margin-bottom:18px}#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}.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:sticky;top:0;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:.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;width:64px;height:64px;opacity:.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{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:.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);max-width:600px;height:150px;margin-left:20px;box-sizing:border-box}.icon-info{padding:11px 20px;vertical-align:text-bottom;opacity:.5}#two-factor-auth h2,#shareAPI h2,#mail_general_settings h2{display:inline-block}.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:60px}.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}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}#warning{color:red}.settings-hint{margin-top:-12px;margin-bottom:12px;opacity:.7}#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;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}#body-settings #app-content.user-list-grid .row.disabled{opacity:.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:not(.row--editable) .groups,#body-settings #app-content.user-list-grid .row:not(.row--editable) .subadmins{overflow:auto;max-height:100%}#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 .groups progress,#body-settings #app-content.user-list-grid .row .subadmins progress,#body-settings #app-content.user-list-grid .row .quota progress{max-width:95%}#body-settings #app-content.user-list-grid .row .obfuscated{width:400px;opacity:.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.row--editable .userActions{z-index:10}#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;top:0}#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{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}#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:rgba(0,0,0,0);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{line-height:1.3em;max-height:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}#body-settings #app-content.user-list-grid .row>div.name .subtitle,#body-settings #app-content.user-list-grid .row>.displayName>form.name .subtitle,#body-settings #app-content.user-list-grid .row>form.name .subtitle{color:var(--color-main-text)}#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:.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:.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:.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{min-width:100%;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:.5;user-select:none}.animated{animation:blink-animation 1s steps(5, start) 4}@keyframes blink-animation{to{opacity:.6}}@-webkit-keyframes blink-animation{to{opacity:1}}/*# sourceMappingURL=settings.css.map */
+input#openid,input#webdav{width:20em}.clear{clear:both}.nav-icon-personal-settings{background-image:var(--icon-personal-dark)}.nav-icon-security{background-image:var(--icon-toggle-filelist-dark)}.nav-icon-clientsbox{background-image:var(--icon-change-dark)}.nav-icon-federated-cloud{background-image:var(--icon-share-dark)}.nav-icon-second-factor-backup-codes,.nav-icon-ssl-root-certificate{background-image:var(--icon-password-dark)}#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 1fr 1fr}.personal-show-container{width:100%}.personal-settings-setting-box .section{padding:10px 30px}.personal-settings-setting-box .section .headerbar-label{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%}.personal-settings-setting-box-profile{grid-row:3/5}.personal-settings-setting-box-detail{grid-row:5}.personal-settings-setting-box-detail--without-profile{grid-row:3}select#timezone{width:100%}#personal-settings{display:grid;padding:20px;max-width:1700px;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));grid-column-gap:10px}#personal-settings .section{padding:10px 10px;border:0}#personal-settings .section h2{margin-bottom:12px}#personal-settings .section h3>label{font-weight:bold}#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:.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-hover)}.link-button{display:inline-block;margin:16px;padding:14px 20px;background-color:var(--color-primary-element);color:#fff;border-radius:var(--border-radius-pill);border:1px solid var(--color-primary-element);box-shadow:0 2px 9px var(--color-box-shadow)}.link-button:active,.link-button:hover,.link-button:focus{color:var(--color-primary-element);background-color:var(--color-primary-element-text);border-color:var(--color-primary-element) !important}.link-button.icon-file{padding-left:48px;background-position:24px}.personal-settings-container{display:inline-grid;grid-template-columns: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%;align-items:center;gap:8px}.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:#fff;color:#000;border:none;opacity:100}.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:0;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:.8}.federation-menu .icon-federation-menu{padding-left:16px;background-size:16px;background-position:left center;opacity:.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:.75}.federation-menu .federationScopeMenu.popovermenu .menuitem.active{box-shadow:inset 2px 0 var(--color-primary-element)}.federation-menu .federationScopeMenu.popovermenu .menuitem.active .menuitem-text{font-weight:bold}.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled{opacity:.5;cursor:default}.federation-menu .federationScopeMenu.popovermenu .menuitem.disabled *{cursor:default}.clientsbox img{height:60px}#sslCertificate tr.expired{background-color:rgba(255,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:.2em 0}#security-password #passwordform{display:flex;flex-wrap:wrap;flex-direction:column;gap:1rem}#security-password #passwordform .input-control{display:flex;flex-wrap:wrap;flex-direction:column}#security-password #passwordform .input-control label{margin-bottom:.5rem}#security-password #passwordform #pass1,#security-password #passwordform .personal-show-container{flex-shrink:1;width:300px;min-width:150px}#security-password #passwordform .personal-show-container #pass2{position:relative;top:.5rem}#security-password #passwordform .personal-show-container .personal-show-label{top:34px !important;margin-right:0;margin-top:0 !important;right:3px}#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:5px;overflow:hidden;height:3px}#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;filter:var(--background-invert-if-dark)}.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}table.grid{width:100%}table.grid th{height:2em;color:#999;border-bottom:1px solid var(--color-border);padding:0 .5em;padding-left:.8em;text-align:left;font-weight:normal}table.grid td{border-bottom:1px solid var(--color-border);padding:0 .5em;padding-left:.8em;text-align:left;font-weight:normal}td.name,th.name{padding-left:.8em;min-width:5em;max-width:12em;text-overflow:ellipsis;overflow:hidden}td.password,th.password{padding-left:.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}#app-content>svg.app-filter{float:left;height:0;width:0}#app-category-app-bundles{margin-bottom:20px}.appinfo{margin:1em 40px}#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:rgba(0,0,0,0);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:.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:.7}#apps-list.store .app-image-icon .icon-settings-dark{width:100%;height:150px;background-size:45px;opacity:.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:.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:.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%}}@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}}.section{margin-bottom:0}.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}.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:.5}.app-description-container{clear:both;position:relative;top:7px}.app-description{clear:both}#app-category-1{margin-bottom:18px}#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}.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:sticky;top:0;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:.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;width:64px;height:64px;opacity:.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{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.loading>div{display:none}#shareAPI p{padding-bottom:.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);max-width:600px;height:150px;margin-left:20px;box-sizing:border-box}.icon-info{padding:11px 20px;vertical-align:text-bottom;opacity:.5}#two-factor-auth h2,#shareAPI h2,#mail_general_settings h2{display:inline-block}.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:60px}.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}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}#warning{color:red}.settings-hint{margin-top:-12px;margin-bottom:12px;opacity:.7}#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;grid-template-columns:44px minmax(190px, 1fr) minmax(160px, 1fr) minmax(160px, 1fr) minmax(240px, 1fr) minmax(240px, 1fr) minmax(160px, 1fr) minmax(240px, 1fr) repeat(auto-fit, minmax(160px, 1fr));border-bottom:var(--color-border) 1px solid}#body-settings #app-content.user-list-grid .row.disabled{opacity:.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:not(.row--editable) .groups,#body-settings #app-content.user-list-grid .row:not(.row--editable) .subadmins{overflow:auto;max-height:100%}#body-settings #app-content.user-list-grid .row .managers,#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 .managers .multiselect,#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 .managers progress,#body-settings #app-content.user-list-grid .row .groups progress,#body-settings #app-content.user-list-grid .row .subadmins progress,#body-settings #app-content.user-list-grid .row .quota progress{max-width:95%}#body-settings #app-content.user-list-grid .row .obfuscated{width:400px;opacity:.7}#body-settings #app-content.user-list-grid .row .userActions{display:flex;justify-content:flex-end;right:0px;min-width:88px}#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;top:0}#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{padding-left:7px;text-transform:none;color:var(--color-text-maxcontrast);vertical-align:baseline}#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>td,#body-settings #app-content.user-list-grid .row>form{grid-row:1;display:inline-flex;color:var(--color-text-lighter);flex-grow:1}#body-settings #app-content.user-list-grid .row>td>input:not(:focus):not(:active),#body-settings #app-content.user-list-grid .row>form>input:not(:focus):not(:active){border-color:rgba(0,0,0,0);cursor:pointer}#body-settings #app-content.user-list-grid .row>td>input:focus+.icon-confirm,#body-settings #app-content.user-list-grid .row>td>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>td: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>td.name,#body-settings #app-content.user-list-grid .row>form.name{word-break:break-all}#body-settings #app-content.user-list-grid .row>td.displayName>input,#body-settings #app-content.user-list-grid .row>td.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>td.name,#body-settings #app-content.user-list-grid .row>td.userBackend,#body-settings #app-content.user-list-grid .row>form.name,#body-settings #app-content.user-list-grid .row>form.userBackend{line-height:1.3em;max-height:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}#body-settings #app-content.user-list-grid .row>td.name .subtitle,#body-settings #app-content.user-list-grid .row>form.name .subtitle{color:var(--color-main-text)}#body-settings #app-content.user-list-grid .row>td.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>td.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>td .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>td .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>td.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>td.avatar img,#body-settings #app-content.user-list-grid .row>form.avatar img{display:block}#body-settings #app-content.user-list-grid .row>td.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>td.userActions #newsubmit,#body-settings #app-content.user-list-grid .row>form.userActions #newsubmit{width:100%}#body-settings #app-content.user-list-grid .row>td.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>td.userActions .toggleUserActions .icon-more,#body-settings #app-content.user-list-grid .row>form.userActions .toggleUserActions .icon-more{width:44px;height:44px;opacity:.5;cursor:pointer}#body-settings #app-content.user-list-grid .row>td.userActions .toggleUserActions .icon-more:focus,#body-settings #app-content.user-list-grid .row>td.userActions .toggleUserActions .icon-more:hover,#body-settings #app-content.user-list-grid .row>td.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:.7;background-color:var(--color-background-dark)}#body-settings #app-content.user-list-grid .row>td.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>td.userActions .feedback .icon-checkmark,#body-settings #app-content.user-list-grid .row>form.userActions .feedback .icon-checkmark{opacity:.5;margin-right:5px}#body-settings #app-content.user-list-grid .row>td .multiselect.multiselect-vue,#body-settings #app-content.user-list-grid .row>form .multiselect.multiselect-vue{min-width:100%;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:.5;user-select:none}.animated{animation:blink-animation 1s steps(5, start) 4}@keyframes blink-animation{to{opacity:.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
index 0872e074c7c..054592d26c3 100644
--- a/apps/settings/css/settings.css.map
+++ b/apps/settings/css/settings.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAOC,0BACC,WAKF,OACC,WAID,4BC+CC,2CD3CD,mBC2CC,kDDvCD,qBCuCC,yCDnCD,0BCmCC,wCD/BD,oEC+BC,2CD3BD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,4DACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,iBACA,mBACA,gBAGD,mGACC,4BACA,kBACA,WAMF,oBACC,kBACA,wCACC,0BACA,8CACC,oDAKH,aACC,qBACA,YACA,kBACA,sCACA,WACA,wCACA,sCACA,6CAEA,0DAGC,2BACA,2CACA,6CAGD,uBACC,kBACA,yBAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,UACA,UACA,oBACA,YAKH,qCACC,kBACA,UACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,WACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,WACA,YACA,aACA,SACA,gBACA,YAEA,8CAEC,+CACA,wCAEA,0FACC,WAIF,uCACC,kBACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,SAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,4CAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,iBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,eACA,wBACA,UAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,OACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,iBAGD,oDACC,WACA,YACA,mBACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,QAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,WACA,4CACA,eACA,kBACA,gBACA,mBAGD,cACC,4CACA,eACA,kBACA,gBACA,mBAKD,gBACC,kBACA,cACA,eACA,uBACA,gBAGD,wBACC,kBAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,mBACA,cAIF,2BACC,mBAID,4BACC,WACA,SACA,QAGD,0BACC,mBAGD,SACC,gBAKA,oBACC,mBACA,iBACA,WAGD,gCACC,kBAIA,gGACC,cAIF,4BACC,gBAGD,iCACC,gBAGD,8BACC,oCAIF,aACC,gBACA,iBACA,oCAGD,aACC,oCAIA,gBACC,oCACA,+BACA,+CACA,mCACA,gBAGD,aACC,aACA,YACA,mBAGD,qBACC,gCACA,+BACA,kBAGD,sBACC,kCACA,gCACA,+BACA,kBACA,2BAIF,WACC,kBACA,QACA,WAIA,qCACC,aAMD,0BACC,SAGD,2BACC,cACA,aAGD,yDACC,eAGD,8BACC,WAGD,qDACC,WACA,aACA,qBACA,WAGD,kCACC,YAGD,0BACC,gBAMA,4FAEC,qBACA,WACA,YACA,kBACA,WAIF,0CACC,YACA,WAEA,yGAEC,mBAGD,2DACC,YAIF,uFACC,oCAGD,iDACC,cAGD,kDACC,cAGD,sCACC,kBACA,MACA,QACA,aACA,WACA,UACA,WACA,YAGD,wCACC,aACA,mBAEA,oDACC,YAIF,yCACC,0BACA,iBAGD,iOAKC,cAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,0CACC,gBACC,UAED,kCACC,YAIF,2CACC,gBACC,WAIF,0CACC,gBACC,YAKF,0CAEE,kEACC,yBAKH,0CACC,iCACC,yBAIF,SACC,gBAEA,0BACC,4CAID,YACC,mBAEA,uBACC,iBACA,2BACA,qBAKH,iBACC,cACA,yBAGD,WACC,kBACA,aACA,UACA,gBAGD,6CACC,qBAGD,0DACC,WACA,cACA,eACA,WAGD,2BACC,WACA,kBACA,QAGD,iBACC,WAGD,gBACC,mBAKD,kBACC,0BAGD,kBACC,cAGD,sBACC,mBACA,wBACA,2BAGD,WAyGC,aACA,eACA,yBAvGA,oBACC,eAGD,0BACC,wBAGD,gCACC,iBAGD,oBACC,OAfgB,KAgBhB,QAjBiB,IAmBjB,aAlBgB,KAmBhB,WACA,8CACA,gBACA,MACA,UACA,aACA,mBAGD,qBAQC,oBAPA,0CACC,cACA,WACA,YACA,WAjCe,KAsChB,8BACC,kBACA,UACA,SAEA,gCACC,mBACA,eACA,sBACA,WACA,4CACA,YACA,sBAGD,uCACC,8CAKF,oCACC,aAEA,0CACC,iBAIF,gCACC,WACA,YACA,iBAGD,kGAEC,eACA,WACA,YACA,WACA,sBACA,qBAGD,8BACC,iBAEA,kDACC,qBACA,QACA,kBAKH,+CACC,kBACA,YAEA,WACA,YACA,WAOD,kBACC,aAGD,oBACC,kBACA,cAEA,gCACC,cACA,aAGD,0BACC,8CAKD,8BACC,cAGD,+BACC,gBAGD,+BACC,mBAEA,oEACC,kBAKD,8DACC,iBAKD,oEACC,kBAMH,wBACC,kBACA,kBAEA,4BACC,mBACA,YAGD,2BACC,mBACA,kBACA,iBACA,iBAEA,mCACC,kBACA,SACA,iBAGD,oCACC,gBAQF,8BACC,gBAMH,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAOA,+IACC,sBAEA,+KACC,aAGD,mKACC,WACA,YACA,kCACA,qBACA,kBAGD,mOACC,sCAGD,mNACC,sCAGD,mNACC,oCAMF,YACC,oBAGD,yCACC,WAGD,kBACC,kBAGD,yBACC,kBAGD,sBACC,kBAIF,yCACC,kBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,iBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,iBAGD,+EAEC,YAIF,eACC,WAGD,SACC,iBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,WACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAIA,oBACC,iBACA,gBAEA,uBACC,cAGD,uBACC,kBAIF,0BACC,YACA,gCAGD,oDACC,yBAGD,wDACC,2BAGD,uBACC,cAKD,oBACC,0BAGD,oCACC,gBAIF,eACC,mBAEA,iBACC,qBACA,cAIF,SACC,UAGD,eACC,iBACA,mBACA,WASA,2CACC,aACA,qBACA,yCAEA,gDAGC,aACA,aACA,WAbgB,KAchB,sBACA,aACA,mBAGA,sBACE,yIAOF,4CAEA,yDACC,WAID,iaAOC,UAxCkB,MA0ClB,ooCACC,6BACA,wBACA,uBAKD,odAMC,gBAMD,2JAEC,cACA,gBAIF,0KAGC,UAxEkB,MA0ElB,iNACC,WACA,6BACA,wBAGD,qMACC,cAIF,4DACC,YACA,WAGD,6DACC,aACA,yBACA,gBACA,UACA,eACA,8CAGD,2EACC,WAGD,0DACC,oCACA,wBAID,4DACC,gBACA,kBACA,8CACA,YACA,MAEA,mEACC,mDAIF,4DACC,oCACA,yBAEA,2wBAWC,iBACA,oBACA,oCACA,wBAKD,wGACC,4CAGD,wEACC,sDAIF,qDACC,WAGD,2KAGC,WACA,oBACA,gCACA,YAEA,wQACC,2BACA,eAIA,qfACC,yBAKF,4SACC,WACA,YAGD,0LACC,qBAKA,kcACC,uBACA,YAIF,yYAGC,kBACA,gBACA,gBAIA,uBACA,oBACA,qBACA,4BAGD,wNACC,6BAGD,6LACC,aACA,qBACA,mBACA,kBAEA,wNACC,YACA,gBACA,WAIF,qNACC,cACA,eAEA,4PACC,aAIF,gMACC,YACA,WACA,WAEA,4MACC,cAIF,+MACC,aACA,yBAEA,gPACC,WAGD,wQACC,kBACA,aACA,mBACA,8CAEA,ySACC,WACA,YACA,WACA,eAEA,o7BAGC,WACA,8CAKH,6OACC,aACA,mBACA,mBACA,qCAEA,6RACC,WACA,iBAMH,kQACC,eACA,WAKH,uEACC,aACA,mBACA,uBACA,sBAGD,2DACC,WACA,iBAKH,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE","file":"settings.css"} \ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["settings.scss","../../../core/css/functions.scss"],"names":[],"mappings":"AAOC,0BACC,WAKF,OACC,WAID,4BC+CC,2CD3CD,mBC2CC,kDDvCD,qBCuCC,yCDnCD,0BCmCC,wCD/BD,oEC+BC,2CD3BD,oCACC,oBACA,0BACA,+BACA,mBAGD,4BACC,oBACA,kCAGD,yBACC,WAIA,wCACC,kBACA,yDACC,gBAIA,mOACC,WAKH,uCACC,aAGD,sCACC,WAED,uDACC,WAKD,gBACC,WAIF,mBACC,aACA,aACA,iBACA,4DACA,qBAEA,4BACC,kBACA,SAEA,+BACC,mBAIA,qCACC,iBAKH,kCACC,iBACA,mBACA,gBAGD,mGACC,4BACA,kBACA,WAMF,oBACC,kBACA,wCACC,0BACA,8CACC,oDAKH,aACC,qBACA,YACA,kBACA,8CACA,WACA,wCACA,8CACA,6CAEA,0DAGC,mCACA,mDACA,qDAGD,uBACC,kBACA,yBAIF,6BACC,oBACA,kCAEA,mCACC,WAIA,oCACC,kBACA,oBACA,iBACA,2BACA,WACA,mBACA,QAEA,0CACC,mBACA,uBACA,gBAKD,gIACC,kBACA,UACA,UACA,oBACA,YAKH,qCACC,kBACA,UACA,MACA,SAEA,yCACC,qBAIF,4CACC,eAGD,4CACC,sBACA,WACA,YACA,YAMF,qBACC,aACA,WACA,SACA,YAEA,uBACC,aAGD,uCACC,sBACA,cACA,yBAIF,iBACC,kBACA,eACA,WACA,YACA,aACA,SACA,gBACA,YAEA,8CAEC,+CACA,wCAEA,0FACC,WAIF,uCACC,kBACA,qBACA,gCACA,WACA,eAEA,wDACC,qBACA,sBACA,eAIF,sCACC,SAGC,4DAEC,iBACA,kBAEA,kFACC,YAGD,mEACC,oDAEA,kFACC,iBAIF,qEACC,WAEA,eAEA,uEACC,eAQN,gBACC,YAIA,2BACC,kCAGD,mBACC,YAIF,sCAEC,aAGD,eACC,WAGD,YACC,qBAIA,aACC,WACA,yBACA,YAGD,WACC,WACA,yBACA,YAMD,oBACC,iBAGD,iBACC,eAKD,iCACC,aACA,eACA,sBACA,SACA,gDACC,aACA,eACA,sBACA,sDACC,oBAIF,kGACC,cACA,YACA,gBAKA,iEACC,kBACA,UAED,+EACC,oBACA,eACA,wBACA,UAIF,wCACC,WAGD,iDACC,qBAGD,sDACC,kBACA,OACA,WACA,0BACA,eACA,gBACA,WAQF,oBACC,gBAGD,wBACC,iBAGD,oDACC,WACA,YACA,mBACA,wCAOD,oBACC,UACA,cACA,gBACA,uBAGD,2BACC,UAKD,oCAEC,cAKD,wEAEC,aAIF,gBACC,kBACA,QACA,QAEA,sBACC,YAGD,sBACC,iBAKF,WACC,WAEA,cACC,WACA,WACA,4CACA,eACA,kBACA,gBACA,mBAGD,cACC,4CACA,eACA,kBACA,gBACA,mBAKD,gBACC,kBACA,cACA,eACA,uBACA,gBAGD,wBACC,kBAEA,gCACC,kBAIF,sCACC,kBAGD,sDAEC,cACA,eACA,eAEA,0EACC,UACA,qBACA,uBACA,gBAIF,8BACC,eAGD,kCACC,mBACA,cAIF,2BACC,mBAID,4BACC,WACA,SACA,QAGD,0BACC,mBAGD,SACC,gBAKA,oBACC,mBACA,iBACA,WAGD,gCACC,kBAIA,gGACC,cAIF,4BACC,gBAGD,iCACC,gBAGD,8BACC,oCAIF,aACC,gBACA,iBACA,oCAGD,aACC,oCAIA,gBACC,oCACA,+BACA,+CACA,mCACA,gBAGD,aACC,aACA,YACA,mBAGD,qBACC,gCACA,+BACA,kBAGD,sBACC,kCACA,gCACA,+BACA,kBACA,2BAIF,WACC,kBACA,QACA,WAIA,qCACC,aAMD,0BACC,SAGD,2BACC,cACA,aAGD,yDACC,eAGD,8BACC,WAGD,qDACC,WACA,aACA,qBACA,WAGD,kCACC,YAGD,0BACC,gBAMA,4FAEC,qBACA,WACA,YACA,kBACA,WAIF,0CACC,YACA,WAEA,yGAEC,mBAGD,2DACC,YAIF,uFACC,oCAGD,iDACC,cAGD,kDACC,cAGD,sCACC,kBACA,MACA,QACA,aACA,WACA,UACA,WACA,YAGD,wCACC,aACA,mBAEA,oDACC,YAIF,yCACC,0BACA,iBAGD,iOAKC,cAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,2CACC,gBACC,UAED,kCACC,WAIF,0CACC,gBACC,UAED,kCACC,YAIF,2CACC,gBACC,WAIF,0CACC,gBACC,YAKF,0CAEE,kEACC,yBAKH,0CACC,iCACC,yBAIF,SACC,gBAEA,0BACC,4CAID,YACC,mBAEA,uBACC,iBACA,2BACA,qBAKH,iBACC,cACA,yBAGD,WACC,kBACA,aACA,UACA,gBAGD,6CACC,qBAGD,0DACC,WACA,cACA,eACA,WAGD,2BACC,WACA,kBACA,QAGD,iBACC,WAGD,gBACC,mBAKD,kBACC,0BAGD,kBACC,cAGD,sBACC,mBACA,wBACA,2BAGD,WAyGC,aACA,eACA,yBAvGA,oBACC,eAGD,0BACC,wBAGD,gCACC,iBAGD,oBACC,OAfgB,KAgBhB,QAjBiB,IAmBjB,aAlBgB,KAmBhB,WACA,8CACA,gBACA,MACA,UACA,aACA,mBAGD,qBAQC,oBAPA,0CACC,cACA,WACA,YACA,WAjCe,KAsChB,8BACC,kBACA,UACA,SAEA,gCACC,mBACA,eACA,sBACA,WACA,4CACA,YACA,sBAGD,uCACC,8CAKF,oCACC,aAEA,0CACC,iBAIF,gCACC,WACA,YACA,iBAGD,kGAEC,eACA,WACA,YACA,WACA,sBACA,qBAGD,8BACC,iBAEA,kDACC,qBACA,QACA,kBAKH,+CACC,kBACA,YAEA,WACA,YACA,WAOD,kBACC,aAGD,oBACC,kBACA,cAEA,gCACC,cACA,aAGD,0BACC,8CAKD,8BACC,cAGD,+BACC,gBAGD,+BACC,mBAEA,oEACC,kBAKD,8DACC,iBAKD,oEACC,kBAMH,wBACC,kBACA,kBAEA,4BACC,mBACA,YAGD,2BACC,mBACA,kBACA,iBACA,iBAEA,mCACC,kBACA,SACA,iBAGD,oCACC,gBAQF,8BACC,gBAMH,KACC,mBACA,mBAGD,SACC,aAGD,mBACC,mBAGD,eACC,gBAOA,+IACC,sBAEA,+KACC,aAGD,mKACC,WACA,YACA,kCACA,qBACA,kBAGD,mOACC,sCAGD,mNACC,sCAGD,mNACC,oCAMF,sBACC,aAGD,YACC,oBAGD,yCACC,WAGD,kBACC,kBAGD,yBACC,kBAGD,sBACC,kBAIF,yCACC,kBAGD,wBACC,qBAGD,2BACC,wBAEA,gBACA,aACA,iBACA,sBAKD,WACC,kBACA,2BACA,WAGD,2DAGC,qBAIA,mCACC,qBACA,YACA,iBAGD,+EAEC,YAIF,eACC,WAGD,SACC,iBAGD,QACC,qBACA,YACA,WACA,2BAEA,gBACC,kBAIF,qBACC,sBACA,qBACA,YACA,iBAGD,kBACC,qBACA,gBAIA,aACC,sCACA,mCAGD,WACC,oCAGD,mBACC,sCACA,oBAMF,8CACC,WACA,YAGD,wBACC,WACA,YACA,mBACA,kBACA,+DAIA,oBACC,iBACA,gBAEA,uBACC,cAGD,uBACC,kBAIF,0BACC,YACA,gCAGD,oDACC,yBAGD,wDACC,2BAGD,uBACC,cAKD,oBACC,0BAGD,oCACC,gBAIF,eACC,mBAEA,iBACC,qBACA,cAIF,SACC,UAGD,eACC,iBACA,mBACA,WASA,2CACC,aACA,qBACA,yCAEA,gDAGC,aACA,aACA,WAbgB,KAchB,sBACA,aACA,mBAGA,sBACE,+KASF,4CAEA,yDACC,WAID,iaAOC,UA1CkB,MA4ClB,ooCACC,6BACA,wBACA,uBAKD,odAMC,gBAMD,2JAEC,cACA,gBAIF,oOAIC,UA3EkB,MA6ElB,wRACC,WACA,6BACA,wBAGD,wQACC,cAIF,4DACC,YACA,WAGD,6DACC,aACA,yBACA,UACA,eAGD,0DACC,oCACA,wBAID,4DACC,gBACA,kBACA,8CACA,YACA,MAEA,mEACC,mDAIF,4DACC,oCACA,yBAEA,2wBAWC,iBACA,oBACA,oCACA,wBAKD,wEACC,sDAIF,qDACC,WAGD,wGAEC,WACA,oBACA,gCACA,YAEA,sKACC,2BACA,eAIA,0TACC,yBAKF,8LACC,WACA,YAGD,kHACC,qBAKA,wRACC,uBACA,YAIF,kPAGC,kBACA,gBACA,gBAIA,uBACA,oBACA,qBACA,4BAGD,sIACC,6BAGD,oHACC,aACA,qBACA,mBACA,kBAEA,sIACC,YACA,gBACA,WAIF,oIACC,cACA,eAEA,8JACC,aAIF,sHACC,YACA,WACA,WAEA,8HACC,cAIF,gIACC,aACA,yBAEA,sJACC,WAGD,sKACC,kBACA,aACA,mBACA,8CAEA,4LACC,WACA,YACA,WACA,eAEA,0lBAGC,WACA,8CAKH,oJACC,aACA,mBACA,mBACA,qCAEA,oLACC,WACA,iBAMH,kKACC,eACA,WAKH,uEACC,aACA,mBACA,uBACA,sBAGD,2DACC,WACA,iBAKH,UACI,+CAGJ,2BACE,GACE,YAGJ,mCACE,GACE","file":"settings.css"} \ No newline at end of file
diff --git a/apps/settings/css/settings.scss b/apps/settings/css/settings.scss
index ff5a8df1e69..40e9c1b60f9 100644
--- a/apps/settings/css/settings.scss
+++ b/apps/settings/css/settings.scss
@@ -135,18 +135,18 @@ select {
display: inline-block;
margin: 16px;
padding: 14px 20px;
- background-color: var(--color-primary);
+ background-color: var(--color-primary-element);
color: #fff;
border-radius: var(--border-radius-pill);
- border: 1px solid var(--color-primary);
+ border: 1px solid var(--color-primary-element);
box-shadow: 0 2px 9px var(--color-box-shadow);
&:active,
&:hover,
&:focus {
- color: var(--color-primary);
- background-color: var(--color-primary-text);
- border-color: var(--color-primary) !important;
+ color: var(--color-primary-element);
+ background-color: var(--color-primary-element-text);
+ border-color: var(--color-primary-element) !important;
}
&.icon-file {
@@ -281,7 +281,7 @@ select {
}
&.active {
- box-shadow: inset 2px 0 var(--color-primary);
+ box-shadow: inset 2px 0 var(--color-primary-element);
.menuitem-text {
font-weight: bold;
@@ -1129,6 +1129,10 @@ table.grid td.date {
}
#shareAPI {
+ &.loading > div {
+ display: none;
+ }
+
p {
padding-bottom: 0.8em;
}
@@ -1346,6 +1350,8 @@ doesnotexist:-o-prefocus, .strengthify-wrapper {
minmax($grid-col-min-width, 1fr) // email
minmax(1.5*$grid-col-min-width, 1fr) // groups
minmax(1.5*$grid-col-min-width, 1fr) // group admins
+ minmax($grid-col-min-width, 1fr) // quota
+ minmax(1.5*$grid-col-min-width, 1fr) // manager
repeat(auto-fit, minmax($grid-col-min-width, 1fr));
border-bottom: var(--color-border) 1px solid;
@@ -1390,6 +1396,7 @@ doesnotexist:-o-prefocus, .strengthify-wrapper {
}
}
+ .managers,
.groups,
.subadmins,
.quota {
@@ -1414,14 +1421,8 @@ doesnotexist:-o-prefocus, .strengthify-wrapper {
.userActions {
display: flex;
justify-content: flex-end;
- position: sticky;
right: 0px;
min-width: 88px;
- background-color: var(--color-main-background);
- }
-
- &.row--editable .userActions {
- z-index: 10;
}
.subtitle {
@@ -1465,10 +1466,6 @@ doesnotexist:-o-prefocus, .strengthify-wrapper {
}
&:hover {
- input:not([type='submit']):not(:focus):not(:active) {
- border-color: var(--color-border) !important;
- }
-
&:not(#grid-header) {
box-shadow: 5px 0 0 var(--color-primary-element) inset;
}
@@ -1478,8 +1475,7 @@ doesnotexist:-o-prefocus, .strengthify-wrapper {
width: 100%;
}
- > div,
- > .displayName > form,
+ > td,
> form {
grid-row: 1;
display: inline-flex;
diff --git a/apps/settings/l10n/ar.js b/apps/settings/l10n/ar.js
index 632e526a6d7..5463f004f81 100644
--- a/apps/settings/l10n/ar.js
+++ b/apps/settings/l10n/ar.js
@@ -152,6 +152,7 @@ OC.L10N.register(
"Email" : "البريد الإلكترونى",
"Default language" : "اللغة الافتراضية",
"Add a new user" : "إضافة مستخدِم جديد",
+ "Avatar" : "الصورة الرمزية",
"Group admin for" : "فريق المُدراء لـ",
"Quota" : "حصه",
"Storage location" : "مسار التخزين",
@@ -229,7 +230,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "عملية الترحيل جارية. الرجاء الإنتظار حتى تكتمل العملية",
"Migration started …" : "بدأت عملية الترحيل …",
"Address" : "العنوان",
- "Avatar" : "الصورة الرمزية",
"Plain" : "سادة",
"NT LAN Manager" : "مدير الشبكة المحلية LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/ar.json b/apps/settings/l10n/ar.json
index 40d6a4bfc8d..98d1fe67a53 100644
--- a/apps/settings/l10n/ar.json
+++ b/apps/settings/l10n/ar.json
@@ -150,6 +150,7 @@
"Email" : "البريد الإلكترونى",
"Default language" : "اللغة الافتراضية",
"Add a new user" : "إضافة مستخدِم جديد",
+ "Avatar" : "الصورة الرمزية",
"Group admin for" : "فريق المُدراء لـ",
"Quota" : "حصه",
"Storage location" : "مسار التخزين",
@@ -227,7 +228,6 @@
"Migration in progress. Please wait until the migration is finished" : "عملية الترحيل جارية. الرجاء الإنتظار حتى تكتمل العملية",
"Migration started …" : "بدأت عملية الترحيل …",
"Address" : "العنوان",
- "Avatar" : "الصورة الرمزية",
"Plain" : "سادة",
"NT LAN Manager" : "مدير الشبكة المحلية LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/bg.js b/apps/settings/l10n/bg.js
index 6ed2d7c5bdc..3b9e8adfd44 100644
--- a/apps/settings/l10n/bg.js
+++ b/apps/settings/l10n/bg.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "Имейл",
"Default language" : "Стандартен език",
"Add a new user" : "Добавяне на новия потребител",
+ "Avatar" : "Аватар",
"Group admin for" : "Групов администратор за",
"Quota" : "Квота",
"User backend" : "Потребителски сървър",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Ограничи потребителите, така че да могат да споделят само с други потребители в своите групи.",
"Exclude groups from sharing" : "Забрани групи да споделят",
"These groups will still be able to receive shares, but not to initiate them." : "Тези групи ще могат да получават споделения, но няма да могат самите те да споделят.",
- "Allow username autocompletion in share dialog" : "Разрешаване на автоматично довършване на име на потребител в диалоговия прозорец за споделяне",
- "Allow username autocompletion to users within the same groups" : "Разрешаване на автоматично довършване на име на потребител на потребители в същите групи",
"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)" : "Разрешаване на автоматично довършване при въвеждане на пълното име или имейл адрес (като игнорирате липсващото съвпадение в телефонния указател и сте в същата група)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "В ход е миграция. Моля, изчакайте, докато миграцията приключи",
"Migration started …" : "Миграцията започна …",
"Address" : "Адрес",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Възникна грешка по време на заявката. Не може да се продължи.",
"Plain" : "Обикновен",
"NT LAN Manager" : "NT LAN Manager",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Изберете настройка за фонова работа",
"Recommended" : "Препоръчано",
"The cron.php needs to be executed by the system user \"%s\"." : "Необходимо е cron.php да се стартира от системния потребител \"%s\".",
+ "Allow username autocompletion in share dialog" : "Разрешаване на автоматично довършване на име на потребител в диалоговия прозорец за споделяне",
+ "Allow username autocompletion to users within the same groups" : "Разрешаване на автоматично довършване на име на потребител на потребители в същите групи",
"Change privacy level of profile picture" : "Промяна на нивото на поверителност на снимката на потребителския профил",
"Upload new" : "Качи нова",
"Select from Files" : "Избери от файловете",
diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json
index f617964ebaf..451b01a8a06 100644
--- a/apps/settings/l10n/bg.json
+++ b/apps/settings/l10n/bg.json
@@ -359,6 +359,7 @@
"Email" : "Имейл",
"Default language" : "Стандартен език",
"Add a new user" : "Добавяне на новия потребител",
+ "Avatar" : "Аватар",
"Group admin for" : "Групов администратор за",
"Quota" : "Квота",
"User backend" : "Потребителски сървър",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Ограничи потребителите, така че да могат да споделят само с други потребители в своите групи.",
"Exclude groups from sharing" : "Забрани групи да споделят",
"These groups will still be able to receive shares, but not to initiate them." : "Тези групи ще могат да получават споделения, но няма да могат самите те да споделят.",
- "Allow username autocompletion in share dialog" : "Разрешаване на автоматично довършване на име на потребител в диалоговия прозорец за споделяне",
- "Allow username autocompletion to users within the same groups" : "Разрешаване на автоматично довършване на име на потребител на потребители в същите групи",
"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)" : "Разрешаване на автоматично довършване при въвеждане на пълното име или имейл адрес (като игнорирате липсващото съвпадение в телефонния указател и сте в същата група)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "В ход е миграция. Моля, изчакайте, докато миграцията приключи",
"Migration started …" : "Миграцията започна …",
"Address" : "Адрес",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Възникна грешка по време на заявката. Не може да се продължи.",
"Plain" : "Обикновен",
"NT LAN Manager" : "NT LAN Manager",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Изберете настройка за фонова работа",
"Recommended" : "Препоръчано",
"The cron.php needs to be executed by the system user \"%s\"." : "Необходимо е cron.php да се стартира от системния потребител \"%s\".",
+ "Allow username autocompletion in share dialog" : "Разрешаване на автоматично довършване на име на потребител в диалоговия прозорец за споделяне",
+ "Allow username autocompletion to users within the same groups" : "Разрешаване на автоматично довършване на име на потребител на потребители в същите групи",
"Change privacy level of profile picture" : "Промяна на нивото на поверителност на снимката на потребителския профил",
"Upload new" : "Качи нова",
"Select from Files" : "Избери от файловете",
diff --git a/apps/settings/l10n/br.js b/apps/settings/l10n/br.js
index 9aa14b4619a..88e9b730b63 100644
--- a/apps/settings/l10n/br.js
+++ b/apps/settings/l10n/br.js
@@ -242,6 +242,7 @@ OC.L10N.register(
"Email" : "Postel",
"Default language" : "Yezh dre ziouer",
"Add a new user" : "Ouzhpennan un im^lijer",
+ "Avatar" : "Avatar",
"Group admin for" : "Strollad merour evit",
"Quota" : "Quota",
"User backend" : "Backen implijer",
@@ -361,7 +362,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Oc'h ober an divroadenn. Gortozit e vefe echuet mar-plij",
"Migration started …" : "Divroadeg kroget...",
"Address" : "Chom-lec'h",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ur fazi a zo bet en oberenn. N'eo ket posuple en ober.",
"Plain" : "Sklaer",
"NT LAN Manager" : "NT LAN Manager",
diff --git a/apps/settings/l10n/br.json b/apps/settings/l10n/br.json
index f18532c2863..b926bb40d68 100644
--- a/apps/settings/l10n/br.json
+++ b/apps/settings/l10n/br.json
@@ -240,6 +240,7 @@
"Email" : "Postel",
"Default language" : "Yezh dre ziouer",
"Add a new user" : "Ouzhpennan un im^lijer",
+ "Avatar" : "Avatar",
"Group admin for" : "Strollad merour evit",
"Quota" : "Quota",
"User backend" : "Backen implijer",
@@ -359,7 +360,6 @@
"Migration in progress. Please wait until the migration is finished" : "Oc'h ober an divroadenn. Gortozit e vefe echuet mar-plij",
"Migration started …" : "Divroadeg kroget...",
"Address" : "Chom-lec'h",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ur fazi a zo bet en oberenn. N'eo ket posuple en ober.",
"Plain" : "Sklaer",
"NT LAN Manager" : "NT LAN Manager",
diff --git a/apps/settings/l10n/ca.js b/apps/settings/l10n/ca.js
index 95b5f80dead..b9801bd48f6 100644
--- a/apps/settings/l10n/ca.js
+++ b/apps/settings/l10n/ca.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "Correu electrònic",
"Default language" : "Llengua per defecte",
"Add a new user" : "Afegeix un nou usuari",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grup per",
"Quota" : "Quota",
"User backend" : "Rerefons d'usuari",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Restringeix als usuaris a compartir només amb usuaris del seu grup",
"Exclude groups from sharing" : "Excloure grups de compartició",
"These groups will still be able to receive shares, but not to initiate them." : "Aquests grups encara podran rebre comparticions, però no en podran iniciar.",
- "Allow username autocompletion in share dialog" : "Permet l'emplenament automàtic del nom d'usuari al diàleg de compartir",
- "Allow username autocompletion to users within the same groups" : "Permet l'emplenament automàtic del nom d'usuari als usuaris dels mateixos grups",
"Allow username autocompletion to users based on phone number integration" : "Permet la compleció automàtica del nom d'usuari als usuaris en funció de la integració del número de telèfon",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si la compleció automàtica \"mateix grup\" i \"integració de números de telèfon\" estan habilitats, n'hi ha prou amb una coincidència per mostrar a l'usuari.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permet l'emplenament automàtic en introduir el nom complet o l'adreça de correu electrònic (ignorant la coincidència de l'agenda i estar al mateix grup)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migració en procés. Si us plau, espereu fins que finalitzi la migració",
"Migration started …" : "S'ha iniciat la migració …",
"Address" : "Adreça",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "S'ha produït un error durant la sol·licitud. No es pot continuar.",
"Plain" : "Net",
"NT LAN Manager" : "Gestor NT LAN",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Trieu el paràmetre de la tasca en segon pla",
"Recommended" : "Recomanat",
"The cron.php needs to be executed by the system user \"%s\"." : "El cron.php ha de ser executat per l'usuari del sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Permet l'emplenament automàtic del nom d'usuari al diàleg de compartir",
+ "Allow username autocompletion to users within the same groups" : "Permet l'emplenament automàtic del nom d'usuari als usuaris dels mateixos grups",
"Change privacy level of profile picture" : "Canvia el nivell de privadesa de la foto de perfil",
"Upload new" : "Puja'n una de nova",
"Select from Files" : "Selecciona dels Fitxers",
diff --git a/apps/settings/l10n/ca.json b/apps/settings/l10n/ca.json
index 5a71eaffebc..1725f6e3f10 100644
--- a/apps/settings/l10n/ca.json
+++ b/apps/settings/l10n/ca.json
@@ -359,6 +359,7 @@
"Email" : "Correu electrònic",
"Default language" : "Llengua per defecte",
"Add a new user" : "Afegeix un nou usuari",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grup per",
"Quota" : "Quota",
"User backend" : "Rerefons d'usuari",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Restringeix als usuaris a compartir només amb usuaris del seu grup",
"Exclude groups from sharing" : "Excloure grups de compartició",
"These groups will still be able to receive shares, but not to initiate them." : "Aquests grups encara podran rebre comparticions, però no en podran iniciar.",
- "Allow username autocompletion in share dialog" : "Permet l'emplenament automàtic del nom d'usuari al diàleg de compartir",
- "Allow username autocompletion to users within the same groups" : "Permet l'emplenament automàtic del nom d'usuari als usuaris dels mateixos grups",
"Allow username autocompletion to users based on phone number integration" : "Permet la compleció automàtica del nom d'usuari als usuaris en funció de la integració del número de telèfon",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si la compleció automàtica \"mateix grup\" i \"integració de números de telèfon\" estan habilitats, n'hi ha prou amb una coincidència per mostrar a l'usuari.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permet l'emplenament automàtic en introduir el nom complet o l'adreça de correu electrònic (ignorant la coincidència de l'agenda i estar al mateix grup)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migració en procés. Si us plau, espereu fins que finalitzi la migració",
"Migration started …" : "S'ha iniciat la migració …",
"Address" : "Adreça",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "S'ha produït un error durant la sol·licitud. No es pot continuar.",
"Plain" : "Net",
"NT LAN Manager" : "Gestor NT LAN",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Trieu el paràmetre de la tasca en segon pla",
"Recommended" : "Recomanat",
"The cron.php needs to be executed by the system user \"%s\"." : "El cron.php ha de ser executat per l'usuari del sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Permet l'emplenament automàtic del nom d'usuari al diàleg de compartir",
+ "Allow username autocompletion to users within the same groups" : "Permet l'emplenament automàtic del nom d'usuari als usuaris dels mateixos grups",
"Change privacy level of profile picture" : "Canvia el nivell de privadesa de la foto de perfil",
"Upload new" : "Puja'n una de nova",
"Select from Files" : "Selecciona dels Fitxers",
diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js
index 00f7c68b51f..b5a75d7d435 100644
--- a/apps/settings/l10n/cs.js
+++ b/apps/settings/l10n/cs.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Default language" : "Výchozí jazyk",
"Add a new user" : "Přidat nového uživatele",
+ "Avatar" : "Profilový obrázek",
"Group admin for" : "Správce skupiny",
"Quota" : "Kvóta",
"User backend" : "Podpůrná vrstva pro uživatelské účty",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
"Exclude groups from sharing" : "Vyjmout skupiny ze sdílení",
"These groups will still be able to receive shares, but not to initiate them." : "Těmto skupinám bude stále možné sdílet, nemohou ale samy sdílet ostatním.",
- "Allow username autocompletion in share dialog" : "Povolit automatické dokončování uživatelského jména v dialogu pro sdílení",
- "Allow username autocompletion to users within the same groups" : "Umožnit automatické dokončování uživatelského jména uživatelům v rámci stejných skupin",
"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ě)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Probíhá migrace. Vyčkejte jejího dokončení",
"Migration started …" : "Migrace spuštěna…",
"Address" : "Adresa",
- "Avatar" : "Profilový obrázek",
"An error occured during the request. Unable to proceed." : "Během požadavku došlo k chybě. Nelze pokračovat.",
"Plain" : "V čitelné podobě",
"NT LAN Manager" : "Správce NT LAN",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Vybrat nastavení úlohy na pozadí",
"Recommended" : "Doporučené",
"The cron.php needs to be executed by the system user \"%s\"." : "Je třeba, aby cron.php bylo spouštěno s právy systémového uživatele „%s“.",
+ "Allow username autocompletion in share dialog" : "Povolit automatické dokončování uživatelského jména v dialogu pro sdílení",
+ "Allow username autocompletion to users within the same groups" : "Umožnit automatické dokončování uživatelského jména uživatelům v rámci stejných skupin",
"Change privacy level of profile picture" : "Změnit úroveň soukromí profilového obrázku",
"Upload new" : "Nahrát nový",
"Select from Files" : "Vybrat ze Souborů",
diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json
index 27ebdd12ad9..e16b6ee664e 100644
--- a/apps/settings/l10n/cs.json
+++ b/apps/settings/l10n/cs.json
@@ -359,6 +359,7 @@
"Email" : "E-mail",
"Default language" : "Výchozí jazyk",
"Add a new user" : "Přidat nového uživatele",
+ "Avatar" : "Profilový obrázek",
"Group admin for" : "Správce skupiny",
"Quota" : "Kvóta",
"User backend" : "Podpůrná vrstva pro uživatelské účty",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Povolit sdílení pouze mezi uživateli v rámci skupiny",
"Exclude groups from sharing" : "Vyjmout skupiny ze sdílení",
"These groups will still be able to receive shares, but not to initiate them." : "Těmto skupinám bude stále možné sdílet, nemohou ale samy sdílet ostatním.",
- "Allow username autocompletion in share dialog" : "Povolit automatické dokončování uživatelského jména v dialogu pro sdílení",
- "Allow username autocompletion to users within the same groups" : "Umožnit automatické dokončování uživatelského jména uživatelům v rámci stejných skupin",
"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ě)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Probíhá migrace. Vyčkejte jejího dokončení",
"Migration started …" : "Migrace spuštěna…",
"Address" : "Adresa",
- "Avatar" : "Profilový obrázek",
"An error occured during the request. Unable to proceed." : "Během požadavku došlo k chybě. Nelze pokračovat.",
"Plain" : "V čitelné podobě",
"NT LAN Manager" : "Správce NT LAN",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Vybrat nastavení úlohy na pozadí",
"Recommended" : "Doporučené",
"The cron.php needs to be executed by the system user \"%s\"." : "Je třeba, aby cron.php bylo spouštěno s právy systémového uživatele „%s“.",
+ "Allow username autocompletion in share dialog" : "Povolit automatické dokončování uživatelského jména v dialogu pro sdílení",
+ "Allow username autocompletion to users within the same groups" : "Umožnit automatické dokončování uživatelského jména uživatelům v rámci stejných skupin",
"Change privacy level of profile picture" : "Změnit úroveň soukromí profilového obrázku",
"Upload new" : "Nahrát nový",
"Select from Files" : "Vybrat ze Souborů",
diff --git a/apps/settings/l10n/da.js b/apps/settings/l10n/da.js
index 26b7834ec89..edd3a57ea3f 100644
--- a/apps/settings/l10n/da.js
+++ b/apps/settings/l10n/da.js
@@ -308,6 +308,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Default language" : "Standardsprog",
"Add a new user" : "Tilføj en bruger",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppeadministrator for",
"Quota" : "Kvote",
"User backend" : "Bruger-backend",
@@ -426,8 +427,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Begræns brugere til kun at dele med brugere i deres egen gruppe",
"Exclude groups from sharing" : "Ekskluder grupper fra at dele",
"These groups will still be able to receive shares, but not to initiate them." : "Disse grupper vil stadig kunne modtage delefiler, men ikke skabe dem.",
- "Allow username autocompletion in share dialog" : "Tillad autofuldførelse af brugernavn i delingsdialogen",
- "Allow username autocompletion to users within the same groups" : "Tillad autofuldførelse af brugernavn til brugere inden for de samme grupper",
"Allow username autocompletion to users based on phone number integration" : "Tillad autofuldførelse af brugernavn til brugere baseret på telefonnummerintegration",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Hvis autofuldførelse \"samme gruppe\" og \"telefonnummerintegration\" er aktiveret, er et match i begge nok til at vise brugeren.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Vis ansvarsfraskrivelsestekst på den offentlige linkoverførselsside (vises kun, når fillisten er skjult)",
@@ -465,7 +464,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Immigration er i gang. Vent venligst indtil overflytningen er afsluttet",
"Migration started …" : "Migrering er påbegyndt...",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Der opstod en fejl under anmodningen. Kan ikke fortsætte.",
"Plain" : "Klartekst",
"NT LAN Manager" : "NT LAN Manager",
@@ -483,6 +481,8 @@ OC.L10N.register(
"Pick background job setting" : "Vælg baggrundsjob indstilling",
"Recommended" : "Anbefalet",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php skal udføres af systembrugeren \"%s\".",
+ "Allow username autocompletion in share dialog" : "Tillad autofuldførelse af brugernavn i delingsdialogen",
+ "Allow username autocompletion to users within the same groups" : "Tillad autofuldførelse af brugernavn til brugere inden for de samme grupper",
"Change privacy level of profile picture" : "Skift privatlivsniveau for profilbillede",
"Upload new" : "Upload nyt",
"Select from Files" : "Vælg fra filer",
diff --git a/apps/settings/l10n/da.json b/apps/settings/l10n/da.json
index 532ff64ad3b..0eb045a96f6 100644
--- a/apps/settings/l10n/da.json
+++ b/apps/settings/l10n/da.json
@@ -306,6 +306,7 @@
"Email" : "E-mail",
"Default language" : "Standardsprog",
"Add a new user" : "Tilføj en bruger",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppeadministrator for",
"Quota" : "Kvote",
"User backend" : "Bruger-backend",
@@ -424,8 +425,6 @@
"Restrict users to only share with users in their groups" : "Begræns brugere til kun at dele med brugere i deres egen gruppe",
"Exclude groups from sharing" : "Ekskluder grupper fra at dele",
"These groups will still be able to receive shares, but not to initiate them." : "Disse grupper vil stadig kunne modtage delefiler, men ikke skabe dem.",
- "Allow username autocompletion in share dialog" : "Tillad autofuldførelse af brugernavn i delingsdialogen",
- "Allow username autocompletion to users within the same groups" : "Tillad autofuldførelse af brugernavn til brugere inden for de samme grupper",
"Allow username autocompletion to users based on phone number integration" : "Tillad autofuldførelse af brugernavn til brugere baseret på telefonnummerintegration",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Hvis autofuldførelse \"samme gruppe\" og \"telefonnummerintegration\" er aktiveret, er et match i begge nok til at vise brugeren.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Vis ansvarsfraskrivelsestekst på den offentlige linkoverførselsside (vises kun, når fillisten er skjult)",
@@ -463,7 +462,6 @@
"Migration in progress. Please wait until the migration is finished" : "Immigration er i gang. Vent venligst indtil overflytningen er afsluttet",
"Migration started …" : "Migrering er påbegyndt...",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Der opstod en fejl under anmodningen. Kan ikke fortsætte.",
"Plain" : "Klartekst",
"NT LAN Manager" : "NT LAN Manager",
@@ -481,6 +479,8 @@
"Pick background job setting" : "Vælg baggrundsjob indstilling",
"Recommended" : "Anbefalet",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php skal udføres af systembrugeren \"%s\".",
+ "Allow username autocompletion in share dialog" : "Tillad autofuldførelse af brugernavn i delingsdialogen",
+ "Allow username autocompletion to users within the same groups" : "Tillad autofuldførelse af brugernavn til brugere inden for de samme grupper",
"Change privacy level of profile picture" : "Skift privatlivsniveau for profilbillede",
"Upload new" : "Upload nyt",
"Select from Files" : "Vælg fra filer",
diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js
index f692daa1b4a..7345b0f6875 100644
--- a/apps/settings/l10n/de.js
+++ b/apps/settings/l10n/de.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-Mail-Adresse",
"Default language" : "Standard-Sprache",
"Add a new user" : "Neuen Benutzer hinzufügen",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppenadministrator für",
"Quota" : "Kontingent",
"User backend" : "Benutzer-Backend",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Benutzer auf das Teilen innerhalb ihrer Gruppen beschränken",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
- "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
- "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"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)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migration abgeschlossen ist",
"Migration started …" : "Migration begonnen …",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"Plain" : "Klartext",
"NT LAN Manager" : "NT-LAN-Manager",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Wähle eine Hintergrund-Aufgabeneinstellung aus",
"Recommended" : "Empfohlen",
"The cron.php needs to be executed by the system user \"%s\"." : "Die cron.php muss durch den Systemnutzer \"%s\" ausgeführt werden.",
+ "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
+ "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"Change privacy level of profile picture" : "Datenschutzstufe des Profilbildes ändern",
"Upload new" : "Neues hochladen",
"Select from Files" : "Aus Dateien wählen",
diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json
index 42a888f941e..83b86a08f7e 100644
--- a/apps/settings/l10n/de.json
+++ b/apps/settings/l10n/de.json
@@ -359,6 +359,7 @@
"Email" : "E-Mail-Adresse",
"Default language" : "Standard-Sprache",
"Add a new user" : "Neuen Benutzer hinzufügen",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppenadministrator für",
"Quota" : "Kontingent",
"User backend" : "Benutzer-Backend",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Benutzer auf das Teilen innerhalb ihrer Gruppen beschränken",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
- "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
- "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"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)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migration abgeschlossen ist",
"Migration started …" : "Migration begonnen …",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"Plain" : "Klartext",
"NT LAN Manager" : "NT-LAN-Manager",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Wähle eine Hintergrund-Aufgabeneinstellung aus",
"Recommended" : "Empfohlen",
"The cron.php needs to be executed by the system user \"%s\"." : "Die cron.php muss durch den Systemnutzer \"%s\" ausgeführt werden.",
+ "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
+ "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"Change privacy level of profile picture" : "Datenschutzstufe des Profilbildes ändern",
"Upload new" : "Neues hochladen",
"Select from Files" : "Aus Dateien wählen",
diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js
index 9d23cc4cec6..9125c74634b 100644
--- a/apps/settings/l10n/de_DE.js
+++ b/apps/settings/l10n/de_DE.js
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
"Add" : "Hinzufügen",
"You do not have permissions to see the details of this user" : "Sie haben keine Berechtigung, um auf die Details dieses Benutzers zu sehen",
+ "Edit display name" : "Anzeigename bearbeiten",
"Add new password" : "Neues Passwort hinzufügen",
"Add new email address" : "Neue E-Mail-Adresse hinzufügen",
"Add user to group" : "Benutzer der Gruppe hinzufügen",
"Set user as admin for" : "Benutzer als Administrator setzen für",
"Select user quota" : "Benutzerkontingent auswählen",
+ "Set the language" : "Sprache einstellen",
"Delete user" : "Benutzer löschen",
"Wipe all devices" : "Alle Geräte löschen",
"Disable user" : "Benutzer deaktivieren",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "E-Mail",
"Default language" : "Standard-Sprache",
"Add a new user" : "Neuen Benutzer hinzufügen",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppenadministrator für",
"Quota" : "Kontingent",
"User backend" : "Benutzer-Backend",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Benutzer auf das Teilen innerhalb ihrer Gruppen beschränken",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
- "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
- "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"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)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migration abgeschlossen ist",
"Migration started …" : "Migration begonnen…",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"Plain" : "Klartext",
"NT LAN Manager" : "NT-LAN-Manager",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "Einstellung für Hintergrund-Aufgaben auswählen",
"Recommended" : "Empfohlen",
"The cron.php needs to be executed by the system user \"%s\"." : "Die cron.php muss durch den Systemnutzer \"%s\" ausgeführt werden.",
+ "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
+ "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"Change privacy level of profile picture" : "Datenschutzstufe des Profilbildes ändern",
"Upload new" : "Neues hochladen",
"Select from Files" : "Aus Dateien wählen",
diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json
index c99648d190b..0c8a04b46a1 100644
--- a/apps/settings/l10n/de_DE.json
+++ b/apps/settings/l10n/de_DE.json
@@ -333,11 +333,13 @@
"Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen",
"Add" : "Hinzufügen",
"You do not have permissions to see the details of this user" : "Sie haben keine Berechtigung, um auf die Details dieses Benutzers zu sehen",
+ "Edit display name" : "Anzeigename bearbeiten",
"Add new password" : "Neues Passwort hinzufügen",
"Add new email address" : "Neue E-Mail-Adresse hinzufügen",
"Add user to group" : "Benutzer der Gruppe hinzufügen",
"Set user as admin for" : "Benutzer als Administrator setzen für",
"Select user quota" : "Benutzerkontingent auswählen",
+ "Set the language" : "Sprache einstellen",
"Delete user" : "Benutzer löschen",
"Wipe all devices" : "Alle Geräte löschen",
"Disable user" : "Benutzer deaktivieren",
@@ -359,6 +361,7 @@
"Email" : "E-Mail",
"Default language" : "Standard-Sprache",
"Add a new user" : "Neuen Benutzer hinzufügen",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppenadministrator für",
"Quota" : "Kontingent",
"User backend" : "Benutzer-Backend",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "Benutzer auf das Teilen innerhalb ihrer Gruppen beschränken",
"Exclude groups from sharing" : "Gruppen von Freigaben ausschließen",
"These groups will still be able to receive shares, but not to initiate them." : "Diese Gruppen können weiterhin Freigaben empfangen, aber selbst keine mehr initiieren.",
- "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
- "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"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)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migration abgeschlossen ist",
"Migration started …" : "Migration begonnen…",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Es ist ein Fehler bei der Anfrage aufgetreten. Es kann nicht fortgefahren werden.",
"Plain" : "Klartext",
"NT LAN Manager" : "NT-LAN-Manager",
@@ -544,6 +544,8 @@
"Pick background job setting" : "Einstellung für Hintergrund-Aufgaben auswählen",
"Recommended" : "Empfohlen",
"The cron.php needs to be executed by the system user \"%s\"." : "Die cron.php muss durch den Systemnutzer \"%s\" ausgeführt werden.",
+ "Allow username autocompletion in share dialog" : "Automatische Vervollständigung der Benutzernamen im Teilen-Dialog erlauben",
+ "Allow username autocompletion to users within the same groups" : "Automatische Vervollständigung der Benutzernamen auf Benutzer innerhalb der gleichen Gruppen erlauben",
"Change privacy level of profile picture" : "Datenschutzstufe des Profilbildes ändern",
"Upload new" : "Neues hochladen",
"Select from Files" : "Aus Dateien wählen",
diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js
index fbd87f067e4..ea87f3489c9 100644
--- a/apps/settings/l10n/el.js
+++ b/apps/settings/l10n/el.js
@@ -325,6 +325,7 @@ OC.L10N.register(
"Email" : "Email",
"Default language" : "Προεπιλεγμένη γλώσσα",
"Add a new user" : "Προσθήκη νέου χρήστη",
+ "Avatar" : "Εικόνα προφίλ",
"Group admin for" : "Ομαδα διαχειριστή για",
"Quota" : "Σύνολο Χώρου",
"User backend" : "Σύστημα υποστήριξης χρήστη",
@@ -445,8 +446,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μόνο με χρήστες που ανήκουν στις ομάδες τους",
"Exclude groups from sharing" : "Εξαίρεση ομάδων από τον διαμοιρασμό",
"These groups will still be able to receive shares, but not to initiate them." : "Αυτές οι ομάδες θα συνεχίσουν να λαμβάνουν διαμοιρασμούς, αλλά δεν θα είναι δυνατό να τους δημιουργήσουν.",
- "Allow username autocompletion in share dialog" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη στο πλαίσιο διαλόγου κοινής χρήσης",
- "Allow username autocompletion to users within the same groups" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη σε χρήστες στις ίδιες ομάδες",
"Allow username autocompletion to users based on phone number integration" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη στους χρήστες με βάση τον αριθμό τηλεφώνου",
"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." : "Αυτό το κείμενο θα εμφανιστεί στη σελίδα μεταφόρτωσης δημόσιου συνδέσμου όταν η λίστα αρχείων είναι κρυφή.",
@@ -482,7 +481,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Μετάβαση σε εξέλιξη. Παρακαλούμε περιμένετε μέχρι να ολοκληρωθεί η μετάβαση",
"Migration started …" : "Η μετάβαση ξεκίνησε ...",
"Address" : "Διεύθυνση",
- "Avatar" : "Εικόνα προφίλ",
"An error occured during the request. Unable to proceed." : "Παρουσιάστηκε σφάλμα κατά την εκτέλεση του αιτήματος. Δεν είναι δυνατή η συνέχιση.",
"Plain" : "Απλό",
"NT LAN Manager" : "Διαχειριστης NT LAN",
@@ -501,6 +499,8 @@ OC.L10N.register(
"Pick background job setting" : "Επιλέξτε τη ρύθμιση εργασίας παρασκηνίου",
"Recommended" : "Προτείνεται",
"The cron.php needs to be executed by the system user \"%s\"." : "Το cron.php πρέπει να εκτελεστεί από τον χρήστη του συστήματος \"%s\".",
+ "Allow username autocompletion in share dialog" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη στο πλαίσιο διαλόγου κοινής χρήσης",
+ "Allow username autocompletion to users within the same groups" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη σε χρήστες στις ίδιες ομάδες",
"Change privacy level of profile picture" : "Αλλαγή επιπέδου απορρήτου της εικόνας προφίλ",
"Upload new" : "Μεταφόρτωση νέας",
"Select from Files" : "Επιλογή από τα Αρχεία",
diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json
index 4312f3c7500..db250f1e54c 100644
--- a/apps/settings/l10n/el.json
+++ b/apps/settings/l10n/el.json
@@ -323,6 +323,7 @@
"Email" : "Email",
"Default language" : "Προεπιλεγμένη γλώσσα",
"Add a new user" : "Προσθήκη νέου χρήστη",
+ "Avatar" : "Εικόνα προφίλ",
"Group admin for" : "Ομαδα διαχειριστή για",
"Quota" : "Σύνολο Χώρου",
"User backend" : "Σύστημα υποστήριξης χρήστη",
@@ -443,8 +444,6 @@
"Restrict users to only share with users in their groups" : "Να επιτρέπεται σε χρήστες ο διαμοιρασμός μόνο με χρήστες που ανήκουν στις ομάδες τους",
"Exclude groups from sharing" : "Εξαίρεση ομάδων από τον διαμοιρασμό",
"These groups will still be able to receive shares, but not to initiate them." : "Αυτές οι ομάδες θα συνεχίσουν να λαμβάνουν διαμοιρασμούς, αλλά δεν θα είναι δυνατό να τους δημιουργήσουν.",
- "Allow username autocompletion in share dialog" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη στο πλαίσιο διαλόγου κοινής χρήσης",
- "Allow username autocompletion to users within the same groups" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη σε χρήστες στις ίδιες ομάδες",
"Allow username autocompletion to users based on phone number integration" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη στους χρήστες με βάση τον αριθμό τηλεφώνου",
"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." : "Αυτό το κείμενο θα εμφανιστεί στη σελίδα μεταφόρτωσης δημόσιου συνδέσμου όταν η λίστα αρχείων είναι κρυφή.",
@@ -480,7 +479,6 @@
"Migration in progress. Please wait until the migration is finished" : "Μετάβαση σε εξέλιξη. Παρακαλούμε περιμένετε μέχρι να ολοκληρωθεί η μετάβαση",
"Migration started …" : "Η μετάβαση ξεκίνησε ...",
"Address" : "Διεύθυνση",
- "Avatar" : "Εικόνα προφίλ",
"An error occured during the request. Unable to proceed." : "Παρουσιάστηκε σφάλμα κατά την εκτέλεση του αιτήματος. Δεν είναι δυνατή η συνέχιση.",
"Plain" : "Απλό",
"NT LAN Manager" : "Διαχειριστης NT LAN",
@@ -499,6 +497,8 @@
"Pick background job setting" : "Επιλέξτε τη ρύθμιση εργασίας παρασκηνίου",
"Recommended" : "Προτείνεται",
"The cron.php needs to be executed by the system user \"%s\"." : "Το cron.php πρέπει να εκτελεστεί από τον χρήστη του συστήματος \"%s\".",
+ "Allow username autocompletion in share dialog" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη στο πλαίσιο διαλόγου κοινής χρήσης",
+ "Allow username autocompletion to users within the same groups" : "Να επιτρέπεται η αυτόματη συμπλήρωση ονόματος χρήστη σε χρήστες στις ίδιες ομάδες",
"Change privacy level of profile picture" : "Αλλαγή επιπέδου απορρήτου της εικόνας προφίλ",
"Upload new" : "Μεταφόρτωση νέας",
"Select from Files" : "Επιλογή από τα Αρχεία",
diff --git a/apps/settings/l10n/en_GB.js b/apps/settings/l10n/en_GB.js
index 948ef8b2409..974129a714b 100644
--- a/apps/settings/l10n/en_GB.js
+++ b/apps/settings/l10n/en_GB.js
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "Add additional email",
"Add" : "Add",
"You do not have permissions to see the details of this user" : "You do not have permissions to see the details of this user",
+ "Edit display name" : "Edit display name",
"Add new password" : "Add new password",
"Add new email address" : "Add new email address",
"Add user to group" : "Add user to group",
"Set user as admin for" : "Set user as admin for",
"Select user quota" : "Select user quota",
+ "Set the language" : "Set the language",
"Delete user" : "Delete user",
"Wipe all devices" : "Wipe all devices",
"Disable user" : "Disable user",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "Email",
"Default language" : "Default language",
"Add a new user" : "Add a new user",
+ "Avatar" : "Avatar",
"Group admin for" : "Group admin for",
"Quota" : "Quota",
"User backend" : "User backend",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
"Exclude groups from sharing" : "Exclude groups from sharing",
"These groups will still be able to receive shares, but not to initiate them." : "These groups will still be able to receive shares, but not to initiate them.",
- "Allow username autocompletion in share dialog" : "Allow username autocompletion in share dialogue",
- "Allow username autocompletion to users within the same groups" : "Allow username autocompletion to users within the same groups",
"Allow username autocompletion to users based on phone number integration" : "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." : "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)" : "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migration in progress. Please wait until the migration is finished",
"Migration started …" : "Migration started …",
"Address" : "Address",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "An error occured during the request. Unable to proceed.",
"Plain" : "Plain",
"NT LAN Manager" : "NT LAN Manager",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "Pick background job setting",
"Recommended" : "Recommended",
"The cron.php needs to be executed by the system user \"%s\"." : "The cron.php needs to be executed by the system user \"%s\".",
+ "Allow username autocompletion in share dialog" : "Allow username autocompletion in share dialogue",
+ "Allow username autocompletion to users within the same groups" : "Allow username autocompletion to users within the same groups",
"Change privacy level of profile picture" : "Change privacy level of profile picture",
"Upload new" : "Upload new",
"Select from Files" : "Select from Files",
diff --git a/apps/settings/l10n/en_GB.json b/apps/settings/l10n/en_GB.json
index 99a2f84c404..b045b48b77b 100644
--- a/apps/settings/l10n/en_GB.json
+++ b/apps/settings/l10n/en_GB.json
@@ -333,11 +333,13 @@
"Add additional email" : "Add additional email",
"Add" : "Add",
"You do not have permissions to see the details of this user" : "You do not have permissions to see the details of this user",
+ "Edit display name" : "Edit display name",
"Add new password" : "Add new password",
"Add new email address" : "Add new email address",
"Add user to group" : "Add user to group",
"Set user as admin for" : "Set user as admin for",
"Select user quota" : "Select user quota",
+ "Set the language" : "Set the language",
"Delete user" : "Delete user",
"Wipe all devices" : "Wipe all devices",
"Disable user" : "Disable user",
@@ -359,6 +361,7 @@
"Email" : "Email",
"Default language" : "Default language",
"Add a new user" : "Add a new user",
+ "Avatar" : "Avatar",
"Group admin for" : "Group admin for",
"Quota" : "Quota",
"User backend" : "User backend",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "Restrict users to only share with users in their groups",
"Exclude groups from sharing" : "Exclude groups from sharing",
"These groups will still be able to receive shares, but not to initiate them." : "These groups will still be able to receive shares, but not to initiate them.",
- "Allow username autocompletion in share dialog" : "Allow username autocompletion in share dialogue",
- "Allow username autocompletion to users within the same groups" : "Allow username autocompletion to users within the same groups",
"Allow username autocompletion to users based on phone number integration" : "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." : "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)" : "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migration in progress. Please wait until the migration is finished",
"Migration started …" : "Migration started …",
"Address" : "Address",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "An error occured during the request. Unable to proceed.",
"Plain" : "Plain",
"NT LAN Manager" : "NT LAN Manager",
@@ -544,6 +544,8 @@
"Pick background job setting" : "Pick background job setting",
"Recommended" : "Recommended",
"The cron.php needs to be executed by the system user \"%s\"." : "The cron.php needs to be executed by the system user \"%s\".",
+ "Allow username autocompletion in share dialog" : "Allow username autocompletion in share dialogue",
+ "Allow username autocompletion to users within the same groups" : "Allow username autocompletion to users within the same groups",
"Change privacy level of profile picture" : "Change privacy level of profile picture",
"Upload new" : "Upload new",
"Select from Files" : "Select from Files",
diff --git a/apps/settings/l10n/eo.js b/apps/settings/l10n/eo.js
index 9a7a1633857..f98e7e2d9ed 100644
--- a/apps/settings/l10n/eo.js
+++ b/apps/settings/l10n/eo.js
@@ -229,6 +229,7 @@ OC.L10N.register(
"Email" : "Retpoŝtadreso",
"Default language" : "Defaŭlta lingvo",
"Add a new user" : "Aldoni novan uzanton",
+ "Avatar" : "Avataro",
"Group admin for" : "Grupadministranto por",
"Quota" : "Kvoto",
"User backend" : "Uzanto-loko",
@@ -332,7 +333,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Transmeto faranta. Bv. atendi ĝis la fino de la transmeto.",
"Migration started …" : "Ektransmetado...",
"Address" : "Adreso",
- "Avatar" : "Avataro",
"An error occured during the request. Unable to proceed." : "Eraro okazis dum peto. Ne eblas plui.",
"Plain" : "Plena",
"NT LAN Manager" : "NT LAN Manager",
diff --git a/apps/settings/l10n/eo.json b/apps/settings/l10n/eo.json
index ad82089f8f5..c23e8c5c4f5 100644
--- a/apps/settings/l10n/eo.json
+++ b/apps/settings/l10n/eo.json
@@ -227,6 +227,7 @@
"Email" : "Retpoŝtadreso",
"Default language" : "Defaŭlta lingvo",
"Add a new user" : "Aldoni novan uzanton",
+ "Avatar" : "Avataro",
"Group admin for" : "Grupadministranto por",
"Quota" : "Kvoto",
"User backend" : "Uzanto-loko",
@@ -330,7 +331,6 @@
"Migration in progress. Please wait until the migration is finished" : "Transmeto faranta. Bv. atendi ĝis la fino de la transmeto.",
"Migration started …" : "Ektransmetado...",
"Address" : "Adreso",
- "Avatar" : "Avataro",
"An error occured during the request. Unable to proceed." : "Eraro okazis dum peto. Ne eblas plui.",
"Plain" : "Plena",
"NT LAN Manager" : "NT LAN Manager",
diff --git a/apps/settings/l10n/es.js b/apps/settings/l10n/es.js
index 349828b1a36..b86358d5b45 100644
--- a/apps/settings/l10n/es.js
+++ b/apps/settings/l10n/es.js
@@ -322,7 +322,7 @@ OC.L10N.register(
"Edit your Profile visibility" : "Editar la visibilidad de tu perfil",
"Enable Profile" : "Activar Perfil",
"Unable to update profile enabled state" : "No se pudo actualizar el estado habilitado del perfil",
- "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respetará en tu perfil el ajuste más restrictivo entre visibilidad y alcance. Por ejemplo, si la visibilida está configurada en \"Mostrar a todos\" y el alcance en \"Privado\", los ajustes de \"Privado\" se respetarán.",
+ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respetará en tu perfil el ajuste más restrictivo entre visibilidad y alcance. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance en \"Privado\", los ajustes de \"Privado\" se respetarán.",
"Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}",
"Your role" : "Tu rol",
"Your Twitter handle" : "Su usuario de Twitter",
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "Añadir un email adicional",
"Add" : "Añadir",
"You do not have permissions to see the details of this user" : "No tienes permisos para ver los detalles de este usuario",
+ "Edit display name" : "Editar nombre a mostrar",
"Add new password" : " Añadir nueva contraseña",
"Add new email address" : "Añadir nueva dirección de correo electrónico",
"Add user to group" : "Añadir usuario a grupo",
"Set user as admin for" : "Marcar usuario como administrador para",
"Select user quota" : "Seleccionar cuota de usuario",
+ "Set the language" : "Establecer el idioma",
"Delete user" : "Eliminar usuario",
"Wipe all devices" : "Borrar todos los dispositivos",
"Disable user" : "Inhabilitar usuario",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "Correo electrónico",
"Default language" : "Idioma predeterminado",
"Add a new user" : "Añadir nuevo usuario",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grupo para",
"Quota" : "Espacio asignado",
"User backend" : "Motor de usuario",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Limitar a los usuarios a compartir solo con los usuarios de sus grupos",
"Exclude groups from sharing" : "Excluye grupos de compartir",
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán iniciarlos.",
- "Allow username autocompletion in share dialog" : "Permitir autocompletar nombre de usuario en la casilla de compartir",
- "Allow username autocompletion to users within the same groups" : "Permitir autocompletar nombre de usuario a los usuarios del mismo grupo",
"Allow username autocompletion to users based on phone number integration" : "Permitir autocompletar nombre de usuario a usuarios basado en la integración del número de teléfono",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si el autocompletado \"en mismo grupo\" e \"integración del número de telefono\" están activados, una coincidencia en cualquiera de ellos es suficiente para mostrar un usuario.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permitir autocompletado del nombre de usuario cuando se introduzca el nombre completo o la dirección del email (ignorando la falta de coincidencia en la agenda de teléfonos y ser del mismo grupo)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor, espere hasta que la migración esté finalizada.",
"Migration started …" : "Migración iniciada...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ha ocurrido un error durante la petición. No se puede continuar.",
"Plain" : "Plano",
"NT LAN Manager" : "Gestor de NT LAN",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "Escoge la configuración de las tareas en segundo plano",
"Recommended" : "Recomendado",
"The cron.php needs to be executed by the system user \"%s\"." : "El archivo cron.php debe ser ejecutado por el usuario de sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Permitir autocompletar nombre de usuario en la casilla de compartir",
+ "Allow username autocompletion to users within the same groups" : "Permitir autocompletar nombre de usuario a los usuarios del mismo grupo",
"Change privacy level of profile picture" : "Cambiar nivel de privacidad de la imagen de perfil",
"Upload new" : "Subir nueva",
"Select from Files" : "Seleccionar desde Archivos",
diff --git a/apps/settings/l10n/es.json b/apps/settings/l10n/es.json
index 926d978cf9a..359bc7a9457 100644
--- a/apps/settings/l10n/es.json
+++ b/apps/settings/l10n/es.json
@@ -320,7 +320,7 @@
"Edit your Profile visibility" : "Editar la visibilidad de tu perfil",
"Enable Profile" : "Activar Perfil",
"Unable to update profile enabled state" : "No se pudo actualizar el estado habilitado del perfil",
- "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respetará en tu perfil el ajuste más restrictivo entre visibilidad y alcance. Por ejemplo, si la visibilida está configurada en \"Mostrar a todos\" y el alcance en \"Privado\", los ajustes de \"Privado\" se respetarán.",
+ "The more restrictive setting of either visibility or scope is respected on your Profile. For example, if visibility is set to \"Show to everyone\" and scope is set to \"Private\", \"Private\" is respected." : "Se respetará en tu perfil el ajuste más restrictivo entre visibilidad y alcance. Por ejemplo, si la visibilidad está configurada en \"Mostrar a todos\" y el alcance en \"Privado\", los ajustes de \"Privado\" se respetarán.",
"Unable to update visibility of {displayId}" : "No se pudo actualizar la visibilidad de {displayId}",
"Your role" : "Tu rol",
"Your Twitter handle" : "Su usuario de Twitter",
@@ -333,11 +333,13 @@
"Add additional email" : "Añadir un email adicional",
"Add" : "Añadir",
"You do not have permissions to see the details of this user" : "No tienes permisos para ver los detalles de este usuario",
+ "Edit display name" : "Editar nombre a mostrar",
"Add new password" : " Añadir nueva contraseña",
"Add new email address" : "Añadir nueva dirección de correo electrónico",
"Add user to group" : "Añadir usuario a grupo",
"Set user as admin for" : "Marcar usuario como administrador para",
"Select user quota" : "Seleccionar cuota de usuario",
+ "Set the language" : "Establecer el idioma",
"Delete user" : "Eliminar usuario",
"Wipe all devices" : "Borrar todos los dispositivos",
"Disable user" : "Inhabilitar usuario",
@@ -359,6 +361,7 @@
"Email" : "Correo electrónico",
"Default language" : "Idioma predeterminado",
"Add a new user" : "Añadir nuevo usuario",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grupo para",
"Quota" : "Espacio asignado",
"User backend" : "Motor de usuario",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "Limitar a los usuarios a compartir solo con los usuarios de sus grupos",
"Exclude groups from sharing" : "Excluye grupos de compartir",
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir contenidos compartidos, pero no podrán iniciarlos.",
- "Allow username autocompletion in share dialog" : "Permitir autocompletar nombre de usuario en la casilla de compartir",
- "Allow username autocompletion to users within the same groups" : "Permitir autocompletar nombre de usuario a los usuarios del mismo grupo",
"Allow username autocompletion to users based on phone number integration" : "Permitir autocompletar nombre de usuario a usuarios basado en la integración del número de teléfono",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si el autocompletado \"en mismo grupo\" e \"integración del número de telefono\" están activados, una coincidencia en cualquiera de ellos es suficiente para mostrar un usuario.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permitir autocompletado del nombre de usuario cuando se introduzca el nombre completo o la dirección del email (ignorando la falta de coincidencia en la agenda de teléfonos y ser del mismo grupo)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor, espere hasta que la migración esté finalizada.",
"Migration started …" : "Migración iniciada...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ha ocurrido un error durante la petición. No se puede continuar.",
"Plain" : "Plano",
"NT LAN Manager" : "Gestor de NT LAN",
@@ -544,6 +544,8 @@
"Pick background job setting" : "Escoge la configuración de las tareas en segundo plano",
"Recommended" : "Recomendado",
"The cron.php needs to be executed by the system user \"%s\"." : "El archivo cron.php debe ser ejecutado por el usuario de sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Permitir autocompletar nombre de usuario en la casilla de compartir",
+ "Allow username autocompletion to users within the same groups" : "Permitir autocompletar nombre de usuario a los usuarios del mismo grupo",
"Change privacy level of profile picture" : "Cambiar nivel de privacidad de la imagen de perfil",
"Upload new" : "Subir nueva",
"Select from Files" : "Seleccionar desde Archivos",
diff --git a/apps/settings/l10n/es_419.js b/apps/settings/l10n/es_419.js
index bbbf5771733..9ccbc0c1cd1 100644
--- a/apps/settings/l10n/es_419.js
+++ b/apps/settings/l10n/es_419.js
@@ -161,6 +161,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -240,7 +241,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_419.json b/apps/settings/l10n/es_419.json
index e091d991a11..59fa0dc6e6e 100644
--- a/apps/settings/l10n/es_419.json
+++ b/apps/settings/l10n/es_419.json
@@ -159,6 +159,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -238,7 +239,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_AR.js b/apps/settings/l10n/es_AR.js
index ce74f288e7a..f9174e6915a 100644
--- a/apps/settings/l10n/es_AR.js
+++ b/apps/settings/l10n/es_AR.js
@@ -152,6 +152,7 @@ OC.L10N.register(
"Add" : "Añadir",
"Display name" : "Nombre para mostrar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -228,7 +229,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Favor de aguardar hasta que termine",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_AR.json b/apps/settings/l10n/es_AR.json
index 47f8c413919..e9186e2f53f 100644
--- a/apps/settings/l10n/es_AR.json
+++ b/apps/settings/l10n/es_AR.json
@@ -150,6 +150,7 @@
"Add" : "Añadir",
"Display name" : "Nombre para mostrar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -226,7 +227,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Favor de aguardar hasta que termine",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_CL.js b/apps/settings/l10n/es_CL.js
index 0f508292217..86f9fbf4f8c 100644
--- a/apps/settings/l10n/es_CL.js
+++ b/apps/settings/l10n/es_CL.js
@@ -160,6 +160,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -237,7 +238,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_CL.json b/apps/settings/l10n/es_CL.json
index 9438ae2ba91..032126573ed 100644
--- a/apps/settings/l10n/es_CL.json
+++ b/apps/settings/l10n/es_CL.json
@@ -158,6 +158,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -235,7 +236,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_CO.js b/apps/settings/l10n/es_CO.js
index 0356183a5b7..807a253e274 100644
--- a/apps/settings/l10n/es_CO.js
+++ b/apps/settings/l10n/es_CO.js
@@ -160,6 +160,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -237,7 +238,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_CO.json b/apps/settings/l10n/es_CO.json
index 01c2f3ad0fd..d021adf7cbb 100644
--- a/apps/settings/l10n/es_CO.json
+++ b/apps/settings/l10n/es_CO.json
@@ -158,6 +158,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -235,7 +236,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_CR.js b/apps/settings/l10n/es_CR.js
index 0356183a5b7..807a253e274 100644
--- a/apps/settings/l10n/es_CR.js
+++ b/apps/settings/l10n/es_CR.js
@@ -160,6 +160,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -237,7 +238,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_CR.json b/apps/settings/l10n/es_CR.json
index 01c2f3ad0fd..d021adf7cbb 100644
--- a/apps/settings/l10n/es_CR.json
+++ b/apps/settings/l10n/es_CR.json
@@ -158,6 +158,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -235,7 +236,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_DO.js b/apps/settings/l10n/es_DO.js
index 0356183a5b7..807a253e274 100644
--- a/apps/settings/l10n/es_DO.js
+++ b/apps/settings/l10n/es_DO.js
@@ -160,6 +160,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -237,7 +238,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_DO.json b/apps/settings/l10n/es_DO.json
index 01c2f3ad0fd..d021adf7cbb 100644
--- a/apps/settings/l10n/es_DO.json
+++ b/apps/settings/l10n/es_DO.json
@@ -158,6 +158,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -235,7 +236,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_EC.js b/apps/settings/l10n/es_EC.js
index 0356183a5b7..807a253e274 100644
--- a/apps/settings/l10n/es_EC.js
+++ b/apps/settings/l10n/es_EC.js
@@ -160,6 +160,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -237,7 +238,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_EC.json b/apps/settings/l10n/es_EC.json
index 01c2f3ad0fd..d021adf7cbb 100644
--- a/apps/settings/l10n/es_EC.json
+++ b/apps/settings/l10n/es_EC.json
@@ -158,6 +158,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -235,7 +236,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_GT.js b/apps/settings/l10n/es_GT.js
index 0356183a5b7..807a253e274 100644
--- a/apps/settings/l10n/es_GT.js
+++ b/apps/settings/l10n/es_GT.js
@@ -160,6 +160,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -237,7 +238,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_GT.json b/apps/settings/l10n/es_GT.json
index 01c2f3ad0fd..d021adf7cbb 100644
--- a/apps/settings/l10n/es_GT.json
+++ b/apps/settings/l10n/es_GT.json
@@ -158,6 +158,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -235,7 +236,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_HN.js b/apps/settings/l10n/es_HN.js
index eaac93f45be..c7908c4eaa1 100644
--- a/apps/settings/l10n/es_HN.js
+++ b/apps/settings/l10n/es_HN.js
@@ -155,6 +155,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -231,7 +232,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_HN.json b/apps/settings/l10n/es_HN.json
index 74b8faeaf7c..080d98cd10f 100644
--- a/apps/settings/l10n/es_HN.json
+++ b/apps/settings/l10n/es_HN.json
@@ -153,6 +153,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -229,7 +230,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_MX.js b/apps/settings/l10n/es_MX.js
index 4747b488706..b41e53a4cce 100644
--- a/apps/settings/l10n/es_MX.js
+++ b/apps/settings/l10n/es_MX.js
@@ -180,6 +180,7 @@ OC.L10N.register(
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Default language" : "Idioma predeterminado",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -261,7 +262,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Se presentó un error durante la solicitud. No es posible proceder.",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
diff --git a/apps/settings/l10n/es_MX.json b/apps/settings/l10n/es_MX.json
index 20a86a47a15..f5bd525bce6 100644
--- a/apps/settings/l10n/es_MX.json
+++ b/apps/settings/l10n/es_MX.json
@@ -178,6 +178,7 @@
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
"Default language" : "Idioma predeterminado",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -259,7 +260,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Se presentó un error durante la solicitud. No es posible proceder.",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
diff --git a/apps/settings/l10n/es_NI.js b/apps/settings/l10n/es_NI.js
index eaac93f45be..c7908c4eaa1 100644
--- a/apps/settings/l10n/es_NI.js
+++ b/apps/settings/l10n/es_NI.js
@@ -155,6 +155,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -231,7 +232,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_NI.json b/apps/settings/l10n/es_NI.json
index 74b8faeaf7c..080d98cd10f 100644
--- a/apps/settings/l10n/es_NI.json
+++ b/apps/settings/l10n/es_NI.json
@@ -153,6 +153,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -229,7 +230,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PA.js b/apps/settings/l10n/es_PA.js
index eaac93f45be..c7908c4eaa1 100644
--- a/apps/settings/l10n/es_PA.js
+++ b/apps/settings/l10n/es_PA.js
@@ -155,6 +155,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -231,7 +232,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PA.json b/apps/settings/l10n/es_PA.json
index 74b8faeaf7c..080d98cd10f 100644
--- a/apps/settings/l10n/es_PA.json
+++ b/apps/settings/l10n/es_PA.json
@@ -153,6 +153,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -229,7 +230,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PE.js b/apps/settings/l10n/es_PE.js
index eaac93f45be..c7908c4eaa1 100644
--- a/apps/settings/l10n/es_PE.js
+++ b/apps/settings/l10n/es_PE.js
@@ -155,6 +155,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -231,7 +232,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PE.json b/apps/settings/l10n/es_PE.json
index 74b8faeaf7c..080d98cd10f 100644
--- a/apps/settings/l10n/es_PE.json
+++ b/apps/settings/l10n/es_PE.json
@@ -153,6 +153,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -229,7 +230,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PR.js b/apps/settings/l10n/es_PR.js
index eaac93f45be..c7908c4eaa1 100644
--- a/apps/settings/l10n/es_PR.js
+++ b/apps/settings/l10n/es_PR.js
@@ -155,6 +155,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -231,7 +232,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PR.json b/apps/settings/l10n/es_PR.json
index 74b8faeaf7c..080d98cd10f 100644
--- a/apps/settings/l10n/es_PR.json
+++ b/apps/settings/l10n/es_PR.json
@@ -153,6 +153,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -229,7 +230,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PY.js b/apps/settings/l10n/es_PY.js
index eaac93f45be..c7908c4eaa1 100644
--- a/apps/settings/l10n/es_PY.js
+++ b/apps/settings/l10n/es_PY.js
@@ -155,6 +155,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -231,7 +232,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_PY.json b/apps/settings/l10n/es_PY.json
index 74b8faeaf7c..080d98cd10f 100644
--- a/apps/settings/l10n/es_PY.json
+++ b/apps/settings/l10n/es_PY.json
@@ -153,6 +153,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -229,7 +230,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_SV.js b/apps/settings/l10n/es_SV.js
index 0356183a5b7..807a253e274 100644
--- a/apps/settings/l10n/es_SV.js
+++ b/apps/settings/l10n/es_SV.js
@@ -160,6 +160,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -237,7 +238,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_SV.json b/apps/settings/l10n/es_SV.json
index 01c2f3ad0fd..d021adf7cbb 100644
--- a/apps/settings/l10n/es_SV.json
+++ b/apps/settings/l10n/es_SV.json
@@ -158,6 +158,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -235,7 +236,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor aguarda hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_UY.js b/apps/settings/l10n/es_UY.js
index eaac93f45be..c7908c4eaa1 100644
--- a/apps/settings/l10n/es_UY.js
+++ b/apps/settings/l10n/es_UY.js
@@ -155,6 +155,7 @@ OC.L10N.register(
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -231,7 +232,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/es_UY.json b/apps/settings/l10n/es_UY.json
index 74b8faeaf7c..080d98cd10f 100644
--- a/apps/settings/l10n/es_UY.json
+++ b/apps/settings/l10n/es_UY.json
@@ -153,6 +153,7 @@
"{size} used" : "{size} usado",
"Display name" : "Nombre a desplegar",
"Email" : "Correo electrónico",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador del grupo para",
"Quota" : "Cuota",
"User backend" : "Backend del usuario",
@@ -229,7 +230,6 @@
"Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración",
"Migration started …" : "La migración ha comenzado ...",
"Address" : "Dirección",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Administrador de LAN NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/et_EE.js b/apps/settings/l10n/et_EE.js
index 42b8ce253d7..0971096f7a9 100644
--- a/apps/settings/l10n/et_EE.js
+++ b/apps/settings/l10n/et_EE.js
@@ -158,6 +158,7 @@ OC.L10N.register(
"Email" : "E-post",
"Default language" : "Vaikekeel",
"Add a new user" : "Lisa uus kasutaja",
+ "Avatar" : "Avatar",
"Group admin for" : "Grupi admin",
"Quota" : "Mahupiir",
"User backend" : "Kasutaja taustarakendus",
@@ -234,7 +235,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Kolimine on käimas. Palun oota, kuni see on lõpetatud",
"Migration started …" : "Kolimist on alustatud ...",
"Address" : "Aadress",
- "Avatar" : "Avatar",
"Plain" : "Tavatekst",
"NT LAN Manager" : "NT LAN Manager",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/et_EE.json b/apps/settings/l10n/et_EE.json
index 99e70484d66..db769036f97 100644
--- a/apps/settings/l10n/et_EE.json
+++ b/apps/settings/l10n/et_EE.json
@@ -156,6 +156,7 @@
"Email" : "E-post",
"Default language" : "Vaikekeel",
"Add a new user" : "Lisa uus kasutaja",
+ "Avatar" : "Avatar",
"Group admin for" : "Grupi admin",
"Quota" : "Mahupiir",
"User backend" : "Kasutaja taustarakendus",
@@ -232,7 +233,6 @@
"Migration in progress. Please wait until the migration is finished" : "Kolimine on käimas. Palun oota, kuni see on lõpetatud",
"Migration started …" : "Kolimist on alustatud ...",
"Address" : "Aadress",
- "Avatar" : "Avatar",
"Plain" : "Tavatekst",
"NT LAN Manager" : "NT LAN Manager",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/eu.js b/apps/settings/l10n/eu.js
index 8fbb15e4aba..5e9ae8c56d3 100644
--- a/apps/settings/l10n/eu.js
+++ b/apps/settings/l10n/eu.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-posta",
"Default language" : "Hizkuntza lehenetsia",
"Add a new user" : "Gehitu erabiltze berria",
+ "Avatar" : "Avatarra",
"Group admin for" : "Talde honen administratzailea",
"Quota" : "Kuota",
"User backend" : "Erabiltzaile jatorria",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
"Exclude groups from sharing" : "Baztertu taldeak partekatzean",
"These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
- "Allow username autocompletion in share dialog" : "Baimendu erabiltzaile-izenaren osatze automatikoa partekatze elkarrizketan",
- "Allow username autocompletion to users within the same groups" : "Baimendu erabiltzaile-izenen osatze automatikoa talde bereko erabiltzaileei",
"Allow username autocompletion to users based on phone number integration" : "Baimendu erabiltzaile-izenen osatze automatikoa telefono zenbakien integrazioan oinarritutako erabiltzaileei",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Osatze automatikoa \"talde bera\" eta \"telefono zenbakiaren integrazioa\" gaituta badaude, bat-etortzea nahikoa da erabiltzaileari erakusteko.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Baimendu automatikoki osatzea izen osoa edo helbide elektronikoa sartzerakoan (alde batera utziz falta den telefono-liburuarekin bat etortzea eta talde berean egotea)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migratzen ari da. Itxaron migrazioa osatu arte.",
"Migration started …" : "Migrazioa hasi da...",
"Address" : "Helbidea",
- "Avatar" : "Avatarra",
"An error occured during the request. Unable to proceed." : "Errorea gertatu da eskaera egitean. Ezin da jarraitu.",
"Plain" : "Arrunta",
"NT LAN Manager" : "NT LAN Manager",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Aukeratu atzeko planoko atazen ezarpena",
"Recommended" : "Aholkatuta",
"The cron.php needs to be executed by the system user \"%s\"." : "Sistemako \"%s\" erabiltzaileak, cron.php exekutatu behar du.",
+ "Allow username autocompletion in share dialog" : "Baimendu erabiltzaile-izenaren osatze automatikoa partekatze elkarrizketan",
+ "Allow username autocompletion to users within the same groups" : "Baimendu erabiltzaile-izenen osatze automatikoa talde bereko erabiltzaileei",
"Change privacy level of profile picture" : "Aldatu profileko irudiaren pribatutasun maila",
"Upload new" : "Kargatu berria",
"Select from Files" : "Aukeratu fitxategien artean",
diff --git a/apps/settings/l10n/eu.json b/apps/settings/l10n/eu.json
index fddd93fa8e2..97c2f6c877c 100644
--- a/apps/settings/l10n/eu.json
+++ b/apps/settings/l10n/eu.json
@@ -359,6 +359,7 @@
"Email" : "E-posta",
"Default language" : "Hizkuntza lehenetsia",
"Add a new user" : "Gehitu erabiltze berria",
+ "Avatar" : "Avatarra",
"Group admin for" : "Talde honen administratzailea",
"Quota" : "Kuota",
"User backend" : "Erabiltzaile jatorria",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
"Exclude groups from sharing" : "Baztertu taldeak partekatzean",
"These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
- "Allow username autocompletion in share dialog" : "Baimendu erabiltzaile-izenaren osatze automatikoa partekatze elkarrizketan",
- "Allow username autocompletion to users within the same groups" : "Baimendu erabiltzaile-izenen osatze automatikoa talde bereko erabiltzaileei",
"Allow username autocompletion to users based on phone number integration" : "Baimendu erabiltzaile-izenen osatze automatikoa telefono zenbakien integrazioan oinarritutako erabiltzaileei",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Osatze automatikoa \"talde bera\" eta \"telefono zenbakiaren integrazioa\" gaituta badaude, bat-etortzea nahikoa da erabiltzaileari erakusteko.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Baimendu automatikoki osatzea izen osoa edo helbide elektronikoa sartzerakoan (alde batera utziz falta den telefono-liburuarekin bat etortzea eta talde berean egotea)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migratzen ari da. Itxaron migrazioa osatu arte.",
"Migration started …" : "Migrazioa hasi da...",
"Address" : "Helbidea",
- "Avatar" : "Avatarra",
"An error occured during the request. Unable to proceed." : "Errorea gertatu da eskaera egitean. Ezin da jarraitu.",
"Plain" : "Arrunta",
"NT LAN Manager" : "NT LAN Manager",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Aukeratu atzeko planoko atazen ezarpena",
"Recommended" : "Aholkatuta",
"The cron.php needs to be executed by the system user \"%s\"." : "Sistemako \"%s\" erabiltzaileak, cron.php exekutatu behar du.",
+ "Allow username autocompletion in share dialog" : "Baimendu erabiltzaile-izenaren osatze automatikoa partekatze elkarrizketan",
+ "Allow username autocompletion to users within the same groups" : "Baimendu erabiltzaile-izenen osatze automatikoa talde bereko erabiltzaileei",
"Change privacy level of profile picture" : "Aldatu profileko irudiaren pribatutasun maila",
"Upload new" : "Kargatu berria",
"Select from Files" : "Aukeratu fitxategien artean",
diff --git a/apps/settings/l10n/fa.js b/apps/settings/l10n/fa.js
index 1da143b0a45..bdd940ea710 100644
--- a/apps/settings/l10n/fa.js
+++ b/apps/settings/l10n/fa.js
@@ -270,6 +270,7 @@ OC.L10N.register(
"Email" : "ایمیل",
"Default language" : "زبان پیش فرض",
"Add a new user" : "افزودن کاربر جدید",
+ "Avatar" : "آواتار",
"Group admin for" : "مدیر گروه برای",
"Quota" : "سهم",
"User backend" : "پشتیبان کاربر",
@@ -378,7 +379,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "مهاجرت در حال اجراست. لطفا تا اتمام مهاجرت صبر کنید",
"Migration started …" : "مهاجرت شروع شد...",
"Address" : "آدرس",
- "Avatar" : "آواتار",
"An error occured during the request. Unable to proceed." : "هنگام درخواست خطایی روی داد. امکان ادامه وجود ندارد",
"Plain" : "ساده",
"NT LAN Manager" : "مدیر NT LAN",
diff --git a/apps/settings/l10n/fa.json b/apps/settings/l10n/fa.json
index 1ea9e25f8c3..fa15dbf694e 100644
--- a/apps/settings/l10n/fa.json
+++ b/apps/settings/l10n/fa.json
@@ -268,6 +268,7 @@
"Email" : "ایمیل",
"Default language" : "زبان پیش فرض",
"Add a new user" : "افزودن کاربر جدید",
+ "Avatar" : "آواتار",
"Group admin for" : "مدیر گروه برای",
"Quota" : "سهم",
"User backend" : "پشتیبان کاربر",
@@ -376,7 +377,6 @@
"Migration in progress. Please wait until the migration is finished" : "مهاجرت در حال اجراست. لطفا تا اتمام مهاجرت صبر کنید",
"Migration started …" : "مهاجرت شروع شد...",
"Address" : "آدرس",
- "Avatar" : "آواتار",
"An error occured during the request. Unable to proceed." : "هنگام درخواست خطایی روی داد. امکان ادامه وجود ندارد",
"Plain" : "ساده",
"NT LAN Manager" : "مدیر NT LAN",
diff --git a/apps/settings/l10n/fi.js b/apps/settings/l10n/fi.js
index ec224881578..ab217283cc1 100644
--- a/apps/settings/l10n/fi.js
+++ b/apps/settings/l10n/fi.js
@@ -237,6 +237,7 @@ OC.L10N.register(
"Upload profile picture" : "Lähetä profiilikuva",
"Choose profile picture from Files" : "Valitse profiilikuva tiedostoista",
"Remove profile picture" : "Poista profiilikuva",
+ "The file must be a PNG or JPG" : "Tiedoston tulee olla PNG tai JPG",
"Picture provided by original account" : "Kuvan tarjoaa alkuperäinen tili",
"Cancel" : "Peru",
"Set as profile picture" : "Aseta profiilikuvaksi",
@@ -312,6 +313,7 @@ OC.L10N.register(
"Email" : "Sähköpostiosoite",
"Default language" : "Oletuskieli",
"Add a new user" : "Lisää uusi käyttäjä",
+ "Avatar" : "Profiilikuva",
"Group admin for" : "Ryhmäylläpitäjä ryhmille",
"Quota" : "Kiintiö",
"User backend" : "Käyttäjätaustaosa",
@@ -428,8 +430,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken",
"Exclude groups from sharing" : "Kiellä ryhmiä jakamasta",
"These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.",
- "Allow username autocompletion in share dialog" : "Ota käyttöön käyttäjänimen automaattitäyttö jakolomakkeessa",
- "Allow username autocompletion to users within the same groups" : "Ota käyttöön käyttäjänimen automaattitäyttö saman ryhmän käyttäjille",
"This text will be shown on the public link upload page when the file list is hidden." : "Tämä teksti näytetään julkisen linkin lähetyssivulla, kun tiedostolista on piilotettu.",
"Default share permissions" : "Oletusjako-oikeudet",
"Reasons to use Nextcloud in your organization" : "Nextcloudin käytön edut organisaatiossasi",
@@ -459,7 +459,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migraatio on kesken. Odota kunnes migraatio valmistuu",
"Migration started …" : "Migraatio käynnistyi…",
"Address" : "Osoite",
- "Avatar" : "Profiilikuva",
"An error occured during the request. Unable to proceed." : "Pyynnön aikana tapahtui virhe. Jatkaminen ei onnistu.",
"Plain" : "Plain",
"NT LAN Manager" : "NT LAN Manager",
@@ -477,6 +476,8 @@ OC.L10N.register(
"Pick background job setting" : "Valitse taustatyöasetus",
"Recommended" : "Suositeltu",
"The cron.php needs to be executed by the system user \"%s\"." : "Tiedosto cron.php tulee suorittaa järjestelmän käyttäjänä \"%s\".",
+ "Allow username autocompletion in share dialog" : "Ota käyttöön käyttäjänimen automaattitäyttö jakolomakkeessa",
+ "Allow username autocompletion to users within the same groups" : "Ota käyttöön käyttäjänimen automaattitäyttö saman ryhmän käyttäjille",
"Change privacy level of profile picture" : "Muuta profiilikuvan yksityisyystasoa",
"Upload new" : "Lähetä uusi",
"Select from Files" : "Valitse tiedostosovelluksesta",
diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json
index 3cbe0e7fd2f..398ca244ce8 100644
--- a/apps/settings/l10n/fi.json
+++ b/apps/settings/l10n/fi.json
@@ -235,6 +235,7 @@
"Upload profile picture" : "Lähetä profiilikuva",
"Choose profile picture from Files" : "Valitse profiilikuva tiedostoista",
"Remove profile picture" : "Poista profiilikuva",
+ "The file must be a PNG or JPG" : "Tiedoston tulee olla PNG tai JPG",
"Picture provided by original account" : "Kuvan tarjoaa alkuperäinen tili",
"Cancel" : "Peru",
"Set as profile picture" : "Aseta profiilikuvaksi",
@@ -310,6 +311,7 @@
"Email" : "Sähköpostiosoite",
"Default language" : "Oletuskieli",
"Add a new user" : "Lisää uusi käyttäjä",
+ "Avatar" : "Profiilikuva",
"Group admin for" : "Ryhmäylläpitäjä ryhmille",
"Quota" : "Kiintiö",
"User backend" : "Käyttäjätaustaosa",
@@ -426,8 +428,6 @@
"Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken",
"Exclude groups from sharing" : "Kiellä ryhmiä jakamasta",
"These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.",
- "Allow username autocompletion in share dialog" : "Ota käyttöön käyttäjänimen automaattitäyttö jakolomakkeessa",
- "Allow username autocompletion to users within the same groups" : "Ota käyttöön käyttäjänimen automaattitäyttö saman ryhmän käyttäjille",
"This text will be shown on the public link upload page when the file list is hidden." : "Tämä teksti näytetään julkisen linkin lähetyssivulla, kun tiedostolista on piilotettu.",
"Default share permissions" : "Oletusjako-oikeudet",
"Reasons to use Nextcloud in your organization" : "Nextcloudin käytön edut organisaatiossasi",
@@ -457,7 +457,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migraatio on kesken. Odota kunnes migraatio valmistuu",
"Migration started …" : "Migraatio käynnistyi…",
"Address" : "Osoite",
- "Avatar" : "Profiilikuva",
"An error occured during the request. Unable to proceed." : "Pyynnön aikana tapahtui virhe. Jatkaminen ei onnistu.",
"Plain" : "Plain",
"NT LAN Manager" : "NT LAN Manager",
@@ -475,6 +474,8 @@
"Pick background job setting" : "Valitse taustatyöasetus",
"Recommended" : "Suositeltu",
"The cron.php needs to be executed by the system user \"%s\"." : "Tiedosto cron.php tulee suorittaa järjestelmän käyttäjänä \"%s\".",
+ "Allow username autocompletion in share dialog" : "Ota käyttöön käyttäjänimen automaattitäyttö jakolomakkeessa",
+ "Allow username autocompletion to users within the same groups" : "Ota käyttöön käyttäjänimen automaattitäyttö saman ryhmän käyttäjille",
"Change privacy level of profile picture" : "Muuta profiilikuvan yksityisyystasoa",
"Upload new" : "Lähetä uusi",
"Select from Files" : "Valitse tiedostosovelluksesta",
diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js
index 9dbd28a8109..d3cea716c72 100644
--- a/apps/settings/l10n/fr.js
+++ b/apps/settings/l10n/fr.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Default language" : "Langue par défaut",
"Add a new user" : "Ajouter un nouvel utilisateur",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrateur de groupe pour",
"Quota" : "Quota",
"User backend" : "Origine du compte",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de mêmes groupes",
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
- "Allow username autocompletion in share dialog" : "Autoriser l'autocomplétion du nom d'utilisateur dans la boite de dialogue de partage",
- "Allow username autocompletion to users within the same groups" : "Autoriser l'autocomplétion du nom d'utilisateur pour les utilisateurs du même groupe",
"Allow username autocompletion to users based on phone number integration" : "Autoriser l'autocomplétion du nom d'utilisateur aux utilisateurs selon l'intégration du numéro de téléphone",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si les autocomplétions \"même groupe\" et \"intégration du numéro de téléphone\" sont activées, une correspondance avec l'une ou l'autre de ces conditions est suffisante pour afficher l'utilisateur.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Autoriser l'autocomplétion lorsque le nom d'utilisateur ou l'adresse e-mail est totalement saisi⋅e (en ignorant les correspondances manquantes dans le répertoire téléphonique et le fait d'appartenir au même groupe)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migration en cours. Veuillez attendre que celle-ci se termine",
"Migration started …" : "Migration démarrée...",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Une erreur est survenue durant la requête. Impossible de traiter la demande.",
"Plain" : "En clair",
"NT LAN Manager" : "Gestionnaire du réseau NT",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Définir les paramètres pour la tâche d'arrière-plan",
"Recommended" : "Recommandé",
"The cron.php needs to be executed by the system user \"%s\"." : "Le cron.php doit être exécuté par l'utilisateur système \"%s\".",
+ "Allow username autocompletion in share dialog" : "Autoriser l'autocomplétion du nom d'utilisateur dans la boite de dialogue de partage",
+ "Allow username autocompletion to users within the same groups" : "Autoriser l'autocomplétion du nom d'utilisateur pour les utilisateurs du même groupe",
"Change privacy level of profile picture" : "Changer le niveau de confidentialité de la photo de profil",
"Upload new" : "Téléverser une nouvelle image",
"Select from Files" : "Sélectionner depuis Fichiers",
diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json
index f762a760de0..792e54d162d 100644
--- a/apps/settings/l10n/fr.json
+++ b/apps/settings/l10n/fr.json
@@ -359,6 +359,7 @@
"Email" : "E-mail",
"Default language" : "Langue par défaut",
"Add a new user" : "Ajouter un nouvel utilisateur",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrateur de groupe pour",
"Quota" : "Quota",
"User backend" : "Origine du compte",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "N'autoriser les partages qu'entre membres de mêmes groupes",
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
- "Allow username autocompletion in share dialog" : "Autoriser l'autocomplétion du nom d'utilisateur dans la boite de dialogue de partage",
- "Allow username autocompletion to users within the same groups" : "Autoriser l'autocomplétion du nom d'utilisateur pour les utilisateurs du même groupe",
"Allow username autocompletion to users based on phone number integration" : "Autoriser l'autocomplétion du nom d'utilisateur aux utilisateurs selon l'intégration du numéro de téléphone",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si les autocomplétions \"même groupe\" et \"intégration du numéro de téléphone\" sont activées, une correspondance avec l'une ou l'autre de ces conditions est suffisante pour afficher l'utilisateur.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Autoriser l'autocomplétion lorsque le nom d'utilisateur ou l'adresse e-mail est totalement saisi⋅e (en ignorant les correspondances manquantes dans le répertoire téléphonique et le fait d'appartenir au même groupe)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migration en cours. Veuillez attendre que celle-ci se termine",
"Migration started …" : "Migration démarrée...",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Une erreur est survenue durant la requête. Impossible de traiter la demande.",
"Plain" : "En clair",
"NT LAN Manager" : "Gestionnaire du réseau NT",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Définir les paramètres pour la tâche d'arrière-plan",
"Recommended" : "Recommandé",
"The cron.php needs to be executed by the system user \"%s\"." : "Le cron.php doit être exécuté par l'utilisateur système \"%s\".",
+ "Allow username autocompletion in share dialog" : "Autoriser l'autocomplétion du nom d'utilisateur dans la boite de dialogue de partage",
+ "Allow username autocompletion to users within the same groups" : "Autoriser l'autocomplétion du nom d'utilisateur pour les utilisateurs du même groupe",
"Change privacy level of profile picture" : "Changer le niveau de confidentialité de la photo de profil",
"Upload new" : "Téléverser une nouvelle image",
"Select from Files" : "Sélectionner depuis Fichiers",
diff --git a/apps/settings/l10n/gl.js b/apps/settings/l10n/gl.js
index 8e7e707487f..67a193803e5 100644
--- a/apps/settings/l10n/gl.js
+++ b/apps/settings/l10n/gl.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "Correo",
"Default language" : "Idioma predeterminado",
"Add a new user" : "Engadir un novo usuario",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grupo para",
"Quota" : "Cota",
"User backend" : "Infraestrutura do usuario",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Restrinxir os usuarios a compartir só cos usuarios dos seus grupos",
"Exclude groups from sharing" : "Excluír grupos da compartición",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos poderán recibir comparticións, mais non inicialas.",
- "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuario no diálogo de compartir",
- "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuario aos usuarios dos mesmos grupos",
"Allow username autocompletion to users based on phone number integration" : "Permitir o autocompletado do nome de usuario aos usuarios en función da integración do número de teléfono",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Se está activado o autocompletado \"mesmo grupo\" e a \"integración do número de teléfono\", unha coincidencia en calquera é suficiente para mostrar ao usuario.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permitir o autocompletado ao introducir o nome completo ou o enderezo de correo electrónico (ignorando a coincidencia que falta na axenda telefónica e estar no mesmo grupo)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "A migración está en proceso. Agarde a que remate.",
"Migration started …" : "Iniciada a migración ...",
"Address" : "Enderezo",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Produciuse un erro durante a solicitude. Non é posíbel continuar.",
"Plain" : "Simple",
"NT LAN Manager" : "Xestor NT LAN",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Escolla os axustes do traballo en segundo plano",
"Recommended" : "Recomendado",
"The cron.php needs to be executed by the system user \"%s\"." : "O cron.php debe ser executado polo usuario do sistema «%s»",
+ "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuario no diálogo de compartir",
+ "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuario aos usuarios dos mesmos grupos",
"Change privacy level of profile picture" : "Cambia o nivel de privacidade da imaxe de perfil",
"Upload new" : "Novo envío",
"Select from Files" : "Seleccionar dende Ficheiros",
diff --git a/apps/settings/l10n/gl.json b/apps/settings/l10n/gl.json
index d052f3b9f4b..2c509282828 100644
--- a/apps/settings/l10n/gl.json
+++ b/apps/settings/l10n/gl.json
@@ -359,6 +359,7 @@
"Email" : "Correo",
"Default language" : "Idioma predeterminado",
"Add a new user" : "Engadir un novo usuario",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grupo para",
"Quota" : "Cota",
"User backend" : "Infraestrutura do usuario",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Restrinxir os usuarios a compartir só cos usuarios dos seus grupos",
"Exclude groups from sharing" : "Excluír grupos da compartición",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos poderán recibir comparticións, mais non inicialas.",
- "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuario no diálogo de compartir",
- "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuario aos usuarios dos mesmos grupos",
"Allow username autocompletion to users based on phone number integration" : "Permitir o autocompletado do nome de usuario aos usuarios en función da integración do número de teléfono",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Se está activado o autocompletado \"mesmo grupo\" e a \"integración do número de teléfono\", unha coincidencia en calquera é suficiente para mostrar ao usuario.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Permitir o autocompletado ao introducir o nome completo ou o enderezo de correo electrónico (ignorando a coincidencia que falta na axenda telefónica e estar no mesmo grupo)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "A migración está en proceso. Agarde a que remate.",
"Migration started …" : "Iniciada a migración ...",
"Address" : "Enderezo",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Produciuse un erro durante a solicitude. Non é posíbel continuar.",
"Plain" : "Simple",
"NT LAN Manager" : "Xestor NT LAN",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Escolla os axustes do traballo en segundo plano",
"Recommended" : "Recomendado",
"The cron.php needs to be executed by the system user \"%s\"." : "O cron.php debe ser executado polo usuario do sistema «%s»",
+ "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuario no diálogo de compartir",
+ "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuario aos usuarios dos mesmos grupos",
"Change privacy level of profile picture" : "Cambia o nivel de privacidade da imaxe de perfil",
"Upload new" : "Novo envío",
"Select from Files" : "Seleccionar dende Ficheiros",
diff --git a/apps/settings/l10n/he.js b/apps/settings/l10n/he.js
index cd18bf23647..73ea98781a9 100644
--- a/apps/settings/l10n/he.js
+++ b/apps/settings/l10n/he.js
@@ -248,6 +248,7 @@ OC.L10N.register(
"Email" : "דוא״ל",
"Default language" : "שפת בררת מחדל",
"Add a new user" : "הוספת משתמש חדש",
+ "Avatar" : "תמונה מייצגת",
"Group admin for" : "הנהלת הקבוצה",
"Quota" : "מכיסה",
"User backend" : "מנגנון משתמש",
@@ -349,8 +350,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "הגבלת משתמשים לשתף רק עם משתמשים בקבוצה שלהם",
"Exclude groups from sharing" : "מניעת קבוצות משיתוף",
"These groups will still be able to receive shares, but not to initiate them." : "קבוצות אלו עדיין יוכלו לקבל שיתופים, אך לא לשתף בעצמם.",
- "Allow username autocompletion in share dialog" : "לאפשר השלמה אוטומטית של שם משתמש בחלונית השיתוף",
- "Allow username autocompletion to users within the same groups" : "לאפשר השלמה אוטומטית של שם משתמש למשתמשים בתוך אותן הקבוצות",
"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" : "הרשאות שיתוף כבררת מחדל",
@@ -375,7 +374,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "המרה בביצוע. יש להמתין עד סיום ההמרה",
"Migration started …" : "המרה החלה...",
"Address" : "כתובת",
- "Avatar" : "תמונה מייצגת",
"An error occured during the request. Unable to proceed." : "אירעה שגיאה במהלך הבקשה. לא ניתן להמשיך.",
"Plain" : "רגיל",
"NT LAN Manager" : "מנהל רשת NT",
@@ -393,6 +391,8 @@ OC.L10N.register(
"Pick background job setting" : "בחירת הגדרות למשימת רקע",
"Recommended" : "מומלץ",
"The cron.php needs to be executed by the system user \"%s\"." : "יש להפעיל את cron.php בתור משתמש המערכת „%s”.",
+ "Allow username autocompletion in share dialog" : "לאפשר השלמה אוטומטית של שם משתמש בחלונית השיתוף",
+ "Allow username autocompletion to users within the same groups" : "לאפשר השלמה אוטומטית של שם משתמש למשתמשים בתוך אותן הקבוצות",
"Upload new" : "העלאת חדש",
"Select from Files" : "בחירה מתוך קבצים",
"Remove image" : "הסרת תמונה",
diff --git a/apps/settings/l10n/he.json b/apps/settings/l10n/he.json
index cb3a1b97fcf..0a4552f3f58 100644
--- a/apps/settings/l10n/he.json
+++ b/apps/settings/l10n/he.json
@@ -246,6 +246,7 @@
"Email" : "דוא״ל",
"Default language" : "שפת בררת מחדל",
"Add a new user" : "הוספת משתמש חדש",
+ "Avatar" : "תמונה מייצגת",
"Group admin for" : "הנהלת הקבוצה",
"Quota" : "מכיסה",
"User backend" : "מנגנון משתמש",
@@ -347,8 +348,6 @@
"Restrict users to only share with users in their groups" : "הגבלת משתמשים לשתף רק עם משתמשים בקבוצה שלהם",
"Exclude groups from sharing" : "מניעת קבוצות משיתוף",
"These groups will still be able to receive shares, but not to initiate them." : "קבוצות אלו עדיין יוכלו לקבל שיתופים, אך לא לשתף בעצמם.",
- "Allow username autocompletion in share dialog" : "לאפשר השלמה אוטומטית של שם משתמש בחלונית השיתוף",
- "Allow username autocompletion to users within the same groups" : "לאפשר השלמה אוטומטית של שם משתמש למשתמשים בתוך אותן הקבוצות",
"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" : "הרשאות שיתוף כבררת מחדל",
@@ -373,7 +372,6 @@
"Migration in progress. Please wait until the migration is finished" : "המרה בביצוע. יש להמתין עד סיום ההמרה",
"Migration started …" : "המרה החלה...",
"Address" : "כתובת",
- "Avatar" : "תמונה מייצגת",
"An error occured during the request. Unable to proceed." : "אירעה שגיאה במהלך הבקשה. לא ניתן להמשיך.",
"Plain" : "רגיל",
"NT LAN Manager" : "מנהל רשת NT",
@@ -391,6 +389,8 @@
"Pick background job setting" : "בחירת הגדרות למשימת רקע",
"Recommended" : "מומלץ",
"The cron.php needs to be executed by the system user \"%s\"." : "יש להפעיל את cron.php בתור משתמש המערכת „%s”.",
+ "Allow username autocompletion in share dialog" : "לאפשר השלמה אוטומטית של שם משתמש בחלונית השיתוף",
+ "Allow username autocompletion to users within the same groups" : "לאפשר השלמה אוטומטית של שם משתמש למשתמשים בתוך אותן הקבוצות",
"Upload new" : "העלאת חדש",
"Select from Files" : "בחירה מתוך קבצים",
"Remove image" : "הסרת תמונה",
diff --git a/apps/settings/l10n/hr.js b/apps/settings/l10n/hr.js
index f4c1983405a..ad7e90333c7 100644
--- a/apps/settings/l10n/hr.js
+++ b/apps/settings/l10n/hr.js
@@ -287,6 +287,7 @@ OC.L10N.register(
"Email" : "E-pošta",
"Default language" : "Zadani jezik",
"Add a new user" : "Dodaj novog korisnika",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrator grupe za",
"Quota" : "Kvota",
"User backend" : "Korisnički pozadinski sustav",
@@ -405,8 +406,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Ograniči korisnike na dijeljenje samo s korisnicima unutar svoje grupe",
"Exclude groups from sharing" : "Izuzmi grupe iz dijeljenja",
"These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe još uvijek moći primati dijeljene sadržaje, ali ih neće moći pokrenuti.",
- "Allow username autocompletion in share dialog" : "Dopusti automatsko dovršavanje korisničkog imena u dijaloškom okviru za dijeljenje",
- "Allow username autocompletion to users within the same groups" : "Dopusti automatsko dovršavanje korisničkog imena na korisnike iz istih grupa",
"Allow username autocompletion to users based on phone number integration" : "Omogući korisnicima automatsko dovršavanje korisničkog imena na temelju integracije telefonskog broja",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ako je omogućeno automatsko dovršavanje „ista grupa” i „integracija telefonskog broja”, bilo koje od tih podudaranja dovoljno je za prikaz korisnika.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Prikaži tekst izjave o odricanju od odgovornosti na stranici za otpremanje javnih poveznica (prikazuje se samo kad je popis datoteka skriven)",
@@ -444,7 +443,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migracije u tijeku. Pričekajte da migracija završi",
"Migration started …" : "Migracija je pokrenuta…",
"Address" : "Adresa",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Došlo je do pogreške tijekom rješavanja zahtjeva. Nije moguće nastaviti.",
"Plain" : "Čisti tekst",
"NT LAN Manager" : "NT LAN Manager",
@@ -462,6 +460,8 @@ OC.L10N.register(
"Pick background job setting" : "Odaberite postavku pozadinskog zadatka",
"Recommended" : "Preporuceno",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php treba izvršiti korisnik „%s”.",
+ "Allow username autocompletion in share dialog" : "Dopusti automatsko dovršavanje korisničkog imena u dijaloškom okviru za dijeljenje",
+ "Allow username autocompletion to users within the same groups" : "Dopusti automatsko dovršavanje korisničkog imena na korisnike iz istih grupa",
"Change privacy level of profile picture" : "Promijeni razinu privatnosti profilne slike",
"Upload new" : "Otpremi novu",
"Select from Files" : "Odaberi iz datoteka",
diff --git a/apps/settings/l10n/hr.json b/apps/settings/l10n/hr.json
index 44be1bd7d5d..304743d7fa1 100644
--- a/apps/settings/l10n/hr.json
+++ b/apps/settings/l10n/hr.json
@@ -285,6 +285,7 @@
"Email" : "E-pošta",
"Default language" : "Zadani jezik",
"Add a new user" : "Dodaj novog korisnika",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrator grupe za",
"Quota" : "Kvota",
"User backend" : "Korisnički pozadinski sustav",
@@ -403,8 +404,6 @@
"Restrict users to only share with users in their groups" : "Ograniči korisnike na dijeljenje samo s korisnicima unutar svoje grupe",
"Exclude groups from sharing" : "Izuzmi grupe iz dijeljenja",
"These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe još uvijek moći primati dijeljene sadržaje, ali ih neće moći pokrenuti.",
- "Allow username autocompletion in share dialog" : "Dopusti automatsko dovršavanje korisničkog imena u dijaloškom okviru za dijeljenje",
- "Allow username autocompletion to users within the same groups" : "Dopusti automatsko dovršavanje korisničkog imena na korisnike iz istih grupa",
"Allow username autocompletion to users based on phone number integration" : "Omogući korisnicima automatsko dovršavanje korisničkog imena na temelju integracije telefonskog broja",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ako je omogućeno automatsko dovršavanje „ista grupa” i „integracija telefonskog broja”, bilo koje od tih podudaranja dovoljno je za prikaz korisnika.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Prikaži tekst izjave o odricanju od odgovornosti na stranici za otpremanje javnih poveznica (prikazuje se samo kad je popis datoteka skriven)",
@@ -442,7 +441,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migracije u tijeku. Pričekajte da migracija završi",
"Migration started …" : "Migracija je pokrenuta…",
"Address" : "Adresa",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Došlo je do pogreške tijekom rješavanja zahtjeva. Nije moguće nastaviti.",
"Plain" : "Čisti tekst",
"NT LAN Manager" : "NT LAN Manager",
@@ -460,6 +458,8 @@
"Pick background job setting" : "Odaberite postavku pozadinskog zadatka",
"Recommended" : "Preporuceno",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php treba izvršiti korisnik „%s”.",
+ "Allow username autocompletion in share dialog" : "Dopusti automatsko dovršavanje korisničkog imena u dijaloškom okviru za dijeljenje",
+ "Allow username autocompletion to users within the same groups" : "Dopusti automatsko dovršavanje korisničkog imena na korisnike iz istih grupa",
"Change privacy level of profile picture" : "Promijeni razinu privatnosti profilne slike",
"Upload new" : "Otpremi novu",
"Select from Files" : "Odaberi iz datoteka",
diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js
index 0c2249a1ab3..8e15808744e 100644
--- a/apps/settings/l10n/hu.js
+++ b/apps/settings/l10n/hu.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Default language" : "Alapértelmezett nyelv",
"Add a new user" : "Új felhasználó felvétele",
+ "Avatar" : "Profilkép",
"Group admin for" : "Csoport rendszergazda itt:",
"Quota" : "Kvóta",
"User backend" : "Felhasználói háttérszolgáltatás",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "A felhasználók korlátozása, hogy csak a csoportjaikban lévő felhasználókkal oszthassanak meg dolgokat",
"Exclude groups from sharing" : "Csoportok megosztási jogának tiltása",
"These groups will still be able to receive shares, but not to initiate them." : "E csoportok tagjaival meg lehet osztani anyagokat, de ők nem hozhatnak létre megosztást.",
- "Allow username autocompletion in share dialog" : "A felhasználónév automatikus kiegészítésének engedélyezése a megosztás párbeszédpanelen ",
- "Allow username autocompletion to users within the same groups" : "A felhasználónév automatikus kiegészítésének engedélyezése az azonos csoportokba tartozó felhasználók számára ",
"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)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Áttelepítés folyamatban. Kis türelmet, míg az áttelepítés befejeződik.",
"Migration started …" : "Áttelepítés elindítva…",
"Address" : "Cím",
- "Avatar" : "Profilkép",
"An error occured during the request. Unable to proceed." : "Hiba lépett fel a kérés közben. Nem lehet végrehajtani.",
"Plain" : "Egyszerű",
"NT LAN Manager" : "NT LAN Manager",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Háttérfolyamat beállítás kiválasztása",
"Recommended" : "Ajánlott",
"The cron.php needs to be executed by the system user \"%s\"." : "A cron.php-t „%s” rendszerfelhasználónak kell végrehajtania.",
+ "Allow username autocompletion in share dialog" : "A felhasználónév automatikus kiegészítésének engedélyezése a megosztás párbeszédpanelen ",
+ "Allow username autocompletion to users within the same groups" : "A felhasználónév automatikus kiegészítésének engedélyezése az azonos csoportokba tartozó felhasználók számára ",
"Change privacy level of profile picture" : "A profilkép adatvédelmi szintjének módosítása",
"Upload new" : "Új feltöltése",
"Select from Files" : "Kiválasztás a Fájlokból",
diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json
index d47b6478521..25063673c90 100644
--- a/apps/settings/l10n/hu.json
+++ b/apps/settings/l10n/hu.json
@@ -359,6 +359,7 @@
"Email" : "E-mail",
"Default language" : "Alapértelmezett nyelv",
"Add a new user" : "Új felhasználó felvétele",
+ "Avatar" : "Profilkép",
"Group admin for" : "Csoport rendszergazda itt:",
"Quota" : "Kvóta",
"User backend" : "Felhasználói háttérszolgáltatás",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "A felhasználók korlátozása, hogy csak a csoportjaikban lévő felhasználókkal oszthassanak meg dolgokat",
"Exclude groups from sharing" : "Csoportok megosztási jogának tiltása",
"These groups will still be able to receive shares, but not to initiate them." : "E csoportok tagjaival meg lehet osztani anyagokat, de ők nem hozhatnak létre megosztást.",
- "Allow username autocompletion in share dialog" : "A felhasználónév automatikus kiegészítésének engedélyezése a megosztás párbeszédpanelen ",
- "Allow username autocompletion to users within the same groups" : "A felhasználónév automatikus kiegészítésének engedélyezése az azonos csoportokba tartozó felhasználók számára ",
"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)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Áttelepítés folyamatban. Kis türelmet, míg az áttelepítés befejeződik.",
"Migration started …" : "Áttelepítés elindítva…",
"Address" : "Cím",
- "Avatar" : "Profilkép",
"An error occured during the request. Unable to proceed." : "Hiba lépett fel a kérés közben. Nem lehet végrehajtani.",
"Plain" : "Egyszerű",
"NT LAN Manager" : "NT LAN Manager",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Háttérfolyamat beállítás kiválasztása",
"Recommended" : "Ajánlott",
"The cron.php needs to be executed by the system user \"%s\"." : "A cron.php-t „%s” rendszerfelhasználónak kell végrehajtania.",
+ "Allow username autocompletion in share dialog" : "A felhasználónév automatikus kiegészítésének engedélyezése a megosztás párbeszédpanelen ",
+ "Allow username autocompletion to users within the same groups" : "A felhasználónév automatikus kiegészítésének engedélyezése az azonos csoportokba tartozó felhasználók számára ",
"Change privacy level of profile picture" : "A profilkép adatvédelmi szintjének módosítása",
"Upload new" : "Új feltöltése",
"Select from Files" : "Kiválasztás a Fájlokból",
diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js
index f527b09b838..48f9f60de3f 100644
--- a/apps/settings/l10n/id.js
+++ b/apps/settings/l10n/id.js
@@ -254,6 +254,7 @@ OC.L10N.register(
"Email" : "Surel",
"Default language" : "Bahasa bawaan",
"Add a new user" : "Tambah pengguna baru",
+ "Avatar" : "Avatar",
"Group admin for" : "Grup admin untuk",
"Quota" : "Kuota",
"User backend" : "Backend pengguna",
@@ -363,7 +364,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai",
"Migration started …" : "Migrasi dimulai …",
"Address" : "Alamat",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Galat terjadi saat proses permintaan. Tidak dapat memproses.",
"Plain" : "Biasa",
"NT LAN Manager" : "Manajer NT LAN",
diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json
index 457e9a13ae8..7fb617c63de 100644
--- a/apps/settings/l10n/id.json
+++ b/apps/settings/l10n/id.json
@@ -252,6 +252,7 @@
"Email" : "Surel",
"Default language" : "Bahasa bawaan",
"Add a new user" : "Tambah pengguna baru",
+ "Avatar" : "Avatar",
"Group admin for" : "Grup admin untuk",
"Quota" : "Kuota",
"User backend" : "Backend pengguna",
@@ -361,7 +362,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai",
"Migration started …" : "Migrasi dimulai …",
"Address" : "Alamat",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Galat terjadi saat proses permintaan. Tidak dapat memproses.",
"Plain" : "Biasa",
"NT LAN Manager" : "Manajer NT LAN",
diff --git a/apps/settings/l10n/is.js b/apps/settings/l10n/is.js
index bef520cec97..7494ed82ed8 100644
--- a/apps/settings/l10n/is.js
+++ b/apps/settings/l10n/is.js
@@ -229,6 +229,7 @@ OC.L10N.register(
"Email" : "Netfang",
"Default language" : "Sjálfgefið tungumál",
"Add a new user" : "Bæta við nýjum notanda",
+ "Avatar" : "Auðkennismynd",
"Group admin for" : "Hópstjóri fyrir",
"Quota" : "Kvóti",
"User backend" : "Bakendi notanda",
@@ -346,7 +347,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Yfirfærsla er í gangi. Dokaðu við þar til henni er lokið",
"Migration started …" : "Yfirfærsla hafin...",
"Address" : "Heimilisfang",
- "Avatar" : "Auðkennismynd",
"An error occured during the request. Unable to proceed." : "Villa kom upp við beiðnina. Get ekki haldið áfram.",
"Plain" : "Einfalt",
"NT LAN Manager" : "NT LAN stjórnun",
diff --git a/apps/settings/l10n/is.json b/apps/settings/l10n/is.json
index 336b6761480..dad24186d40 100644
--- a/apps/settings/l10n/is.json
+++ b/apps/settings/l10n/is.json
@@ -227,6 +227,7 @@
"Email" : "Netfang",
"Default language" : "Sjálfgefið tungumál",
"Add a new user" : "Bæta við nýjum notanda",
+ "Avatar" : "Auðkennismynd",
"Group admin for" : "Hópstjóri fyrir",
"Quota" : "Kvóti",
"User backend" : "Bakendi notanda",
@@ -344,7 +345,6 @@
"Migration in progress. Please wait until the migration is finished" : "Yfirfærsla er í gangi. Dokaðu við þar til henni er lokið",
"Migration started …" : "Yfirfærsla hafin...",
"Address" : "Heimilisfang",
- "Avatar" : "Auðkennismynd",
"An error occured during the request. Unable to proceed." : "Villa kom upp við beiðnina. Get ekki haldið áfram.",
"Plain" : "Einfalt",
"NT LAN Manager" : "NT LAN stjórnun",
diff --git a/apps/settings/l10n/it.js b/apps/settings/l10n/it.js
index ea21ccf1c75..537966b5ff2 100644
--- a/apps/settings/l10n/it.js
+++ b/apps/settings/l10n/it.js
@@ -320,6 +320,7 @@ OC.L10N.register(
"Email" : "Posta elettronica",
"Default language" : "Lingua predefinita",
"Add a new user" : "Aggiungi un nuovo utente",
+ "Avatar" : "Avatar",
"Group admin for" : "Amministratore per il gruppo",
"Quota" : "Quote",
"User backend" : "Motore utente",
@@ -440,10 +441,9 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Limita gli utenti a condividere solo con gli utenti nei loro gruppi",
"Exclude groups from sharing" : "Escludi gruppi dalla condivisione",
"These groups will still be able to receive shares, but not to initiate them." : "Questi gruppi saranno in grado di ricevere condivisioni, ma non iniziarle.",
- "Allow username autocompletion in share dialog" : "Consenti il completamento del nome utente nella finestra di condivisione",
- "Allow username autocompletion to users within the same groups" : "Consenti il completamento del nome utente agli utenti degli stessi gruppi",
"Allow username autocompletion to users based on phone number integration" : "Consenti il completamento del nome utente agli utenti basati sull'integrazione del numero di telefono",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Se completamento di \"stesso gruppo\" e \"integrazione numero di telefono\" sono attivi, una corrispondenza in uno dei due è sufficiente per mostrare l'utente.",
+ "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Consenti il completamento automatico quando inserisci il nome completo o l'indirizzo e-mail (ignorando la corrispondenza della rubrica mancante e l'appartenenza allo stesso gruppo)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Mostra il testo della liberatoria sulla pagina di caricamento del collegamento pubblico (visualizzato solo quando l'elenco dei file è nascosto)",
"This text will be shown on the public link upload page when the file list is hidden." : "Questo testo sarà mostrato sulla pagina di caricamento del collegamento pubblico quando l'elenco dei file è nascosto.",
"Default share permissions" : "Permessi predefiniti di condivisione",
@@ -480,7 +480,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migrazione in corso. Attendi fino al completamento della migrazione",
"Migration started …" : "Migrazione avviata...",
"Address" : "Indirizzo",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Si è verificato un errore durante la richiesta. Impossibile continuare..",
"Plain" : "Semplice",
"NT LAN Manager" : "Gestore NT LAN",
@@ -498,6 +497,8 @@ OC.L10N.register(
"Pick background job setting" : "Scegli le impostazioni delle operazioni in background",
"Recommended" : "Consigliata",
"The cron.php needs to be executed by the system user \"%s\"." : "Il cron.php deve essere eseguito dall'utente di sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Consenti il completamento del nome utente nella finestra di condivisione",
+ "Allow username autocompletion to users within the same groups" : "Consenti il completamento del nome utente agli utenti degli stessi gruppi",
"Change privacy level of profile picture" : "Cambia livello di privacy dell'immagine del profilo",
"Upload new" : "Carica nuova",
"Select from Files" : "Seleziona da file",
diff --git a/apps/settings/l10n/it.json b/apps/settings/l10n/it.json
index 045e5f53c18..e1653f34cdb 100644
--- a/apps/settings/l10n/it.json
+++ b/apps/settings/l10n/it.json
@@ -318,6 +318,7 @@
"Email" : "Posta elettronica",
"Default language" : "Lingua predefinita",
"Add a new user" : "Aggiungi un nuovo utente",
+ "Avatar" : "Avatar",
"Group admin for" : "Amministratore per il gruppo",
"Quota" : "Quote",
"User backend" : "Motore utente",
@@ -438,10 +439,9 @@
"Restrict users to only share with users in their groups" : "Limita gli utenti a condividere solo con gli utenti nei loro gruppi",
"Exclude groups from sharing" : "Escludi gruppi dalla condivisione",
"These groups will still be able to receive shares, but not to initiate them." : "Questi gruppi saranno in grado di ricevere condivisioni, ma non iniziarle.",
- "Allow username autocompletion in share dialog" : "Consenti il completamento del nome utente nella finestra di condivisione",
- "Allow username autocompletion to users within the same groups" : "Consenti il completamento del nome utente agli utenti degli stessi gruppi",
"Allow username autocompletion to users based on phone number integration" : "Consenti il completamento del nome utente agli utenti basati sull'integrazione del numero di telefono",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Se completamento di \"stesso gruppo\" e \"integrazione numero di telefono\" sono attivi, una corrispondenza in uno dei due è sufficiente per mostrare l'utente.",
+ "Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Consenti il completamento automatico quando inserisci il nome completo o l'indirizzo e-mail (ignorando la corrispondenza della rubrica mancante e l'appartenenza allo stesso gruppo)",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Mostra il testo della liberatoria sulla pagina di caricamento del collegamento pubblico (visualizzato solo quando l'elenco dei file è nascosto)",
"This text will be shown on the public link upload page when the file list is hidden." : "Questo testo sarà mostrato sulla pagina di caricamento del collegamento pubblico quando l'elenco dei file è nascosto.",
"Default share permissions" : "Permessi predefiniti di condivisione",
@@ -478,7 +478,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migrazione in corso. Attendi fino al completamento della migrazione",
"Migration started …" : "Migrazione avviata...",
"Address" : "Indirizzo",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Si è verificato un errore durante la richiesta. Impossibile continuare..",
"Plain" : "Semplice",
"NT LAN Manager" : "Gestore NT LAN",
@@ -496,6 +495,8 @@
"Pick background job setting" : "Scegli le impostazioni delle operazioni in background",
"Recommended" : "Consigliata",
"The cron.php needs to be executed by the system user \"%s\"." : "Il cron.php deve essere eseguito dall'utente di sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Consenti il completamento del nome utente nella finestra di condivisione",
+ "Allow username autocompletion to users within the same groups" : "Consenti il completamento del nome utente agli utenti degli stessi gruppi",
"Change privacy level of profile picture" : "Cambia livello di privacy dell'immagine del profilo",
"Upload new" : "Carica nuova",
"Select from Files" : "Seleziona da file",
diff --git a/apps/settings/l10n/ja.js b/apps/settings/l10n/ja.js
index d5a941b7684..7a7fd69d1de 100644
--- a/apps/settings/l10n/ja.js
+++ b/apps/settings/l10n/ja.js
@@ -354,6 +354,7 @@ OC.L10N.register(
"Email" : "メール",
"Default language" : "デフォルトの言語",
"Add a new user" : "新しいユーザーを追加",
+ "Avatar" : "アバター",
"Group admin for" : "グループの管理者",
"Quota" : "クオータ",
"User backend" : "ユーザーバックエンド",
@@ -477,8 +478,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する",
"Exclude groups from sharing" : "共有可能なグループから除外する",
"These groups will still be able to receive shares, but not to initiate them." : "このグループでは、フォルダー共有を開始することはできませんが、共有されたフォルダーを参照することはできます。",
- "Allow username autocompletion in share dialog" : "共有ダイアログでユーザー名を自動補完する",
- "Allow username autocompletion to users within the same groups" : "同じグループ内のユーザーのみユーザー名を自動補完する",
"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)" : "氏名または電子メールアドレスを入力するときにユーザー名を自動補完する(連絡先での不一致、同じグループへの所属かどうかを無視)",
@@ -519,7 +518,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "移行の処理中です。移行が完了するまでお待ちください。",
"Migration started …" : "移行を開始しました…",
"Address" : "住所",
- "Avatar" : "アバター",
"An error occured during the request. Unable to proceed." : "要求中にエラーが発生しました。 続行できません。",
"Plain" : "平文",
"NT LAN Manager" : "NT LAN マネージャー",
@@ -538,6 +536,8 @@ OC.L10N.register(
"Pick background job setting" : "バックグラウンドジョブ設定を選択",
"Recommended" : "おすすめ",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php はシステムユーザー \"%s\" で実行する必要があります。",
+ "Allow username autocompletion in share dialog" : "共有ダイアログでユーザー名を自動補完する",
+ "Allow username autocompletion to users within the same groups" : "同じグループ内のユーザーのみユーザー名を自動補完する",
"Change privacy level of profile picture" : "プロフィール写真のプライバシーレベルを変更",
"Upload new" : "新たにアップロード",
"Select from Files" : "ファイルから選択",
diff --git a/apps/settings/l10n/ja.json b/apps/settings/l10n/ja.json
index 221ef55ee45..671095c406c 100644
--- a/apps/settings/l10n/ja.json
+++ b/apps/settings/l10n/ja.json
@@ -352,6 +352,7 @@
"Email" : "メール",
"Default language" : "デフォルトの言語",
"Add a new user" : "新しいユーザーを追加",
+ "Avatar" : "アバター",
"Group admin for" : "グループの管理者",
"Quota" : "クオータ",
"User backend" : "ユーザーバックエンド",
@@ -475,8 +476,6 @@
"Restrict users to only share with users in their groups" : "グループ内のユーザーでのみ共有するように制限する",
"Exclude groups from sharing" : "共有可能なグループから除外する",
"These groups will still be able to receive shares, but not to initiate them." : "このグループでは、フォルダー共有を開始することはできませんが、共有されたフォルダーを参照することはできます。",
- "Allow username autocompletion in share dialog" : "共有ダイアログでユーザー名を自動補完する",
- "Allow username autocompletion to users within the same groups" : "同じグループ内のユーザーのみユーザー名を自動補完する",
"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)" : "氏名または電子メールアドレスを入力するときにユーザー名を自動補完する(連絡先での不一致、同じグループへの所属かどうかを無視)",
@@ -517,7 +516,6 @@
"Migration in progress. Please wait until the migration is finished" : "移行の処理中です。移行が完了するまでお待ちください。",
"Migration started …" : "移行を開始しました…",
"Address" : "住所",
- "Avatar" : "アバター",
"An error occured during the request. Unable to proceed." : "要求中にエラーが発生しました。 続行できません。",
"Plain" : "平文",
"NT LAN Manager" : "NT LAN マネージャー",
@@ -536,6 +534,8 @@
"Pick background job setting" : "バックグラウンドジョブ設定を選択",
"Recommended" : "おすすめ",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php はシステムユーザー \"%s\" で実行する必要があります。",
+ "Allow username autocompletion in share dialog" : "共有ダイアログでユーザー名を自動補完する",
+ "Allow username autocompletion to users within the same groups" : "同じグループ内のユーザーのみユーザー名を自動補完する",
"Change privacy level of profile picture" : "プロフィール写真のプライバシーレベルを変更",
"Upload new" : "新たにアップロード",
"Select from Files" : "ファイルから選択",
diff --git a/apps/settings/l10n/ka_GE.js b/apps/settings/l10n/ka_GE.js
index 91f0b62eb68..e60646a6a8d 100644
--- a/apps/settings/l10n/ka_GE.js
+++ b/apps/settings/l10n/ka_GE.js
@@ -159,6 +159,7 @@ OC.L10N.register(
"{size} used" : "მოხმარებულია {size}",
"Display name" : "დისპლეი სახელი",
"Email" : "ელ-ფოსტა",
+ "Avatar" : "ავატარი",
"Group admin for" : "ადმინისტრატორის შეჯგუფება",
"Quota" : "ქვოტა",
"User backend" : "მომხმარებელის ბექენდი",
@@ -236,7 +237,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "მიმდინარეობს მიგრაცია. გთხოვთ დაელოდოთ მიგრაციის დასრულებას",
"Migration started …" : "მიგრაცია დაიწყო …",
"Address" : "მისამართი",
- "Avatar" : "ავატარი",
"Plain" : "ჩვეულებრივი",
"NT LAN Manager" : "NT LAN მენეჯერი",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/ka_GE.json b/apps/settings/l10n/ka_GE.json
index 5ad107bb4f3..f93105d6d44 100644
--- a/apps/settings/l10n/ka_GE.json
+++ b/apps/settings/l10n/ka_GE.json
@@ -157,6 +157,7 @@
"{size} used" : "მოხმარებულია {size}",
"Display name" : "დისპლეი სახელი",
"Email" : "ელ-ფოსტა",
+ "Avatar" : "ავატარი",
"Group admin for" : "ადმინისტრატორის შეჯგუფება",
"Quota" : "ქვოტა",
"User backend" : "მომხმარებელის ბექენდი",
@@ -234,7 +235,6 @@
"Migration in progress. Please wait until the migration is finished" : "მიმდინარეობს მიგრაცია. გთხოვთ დაელოდოთ მიგრაციის დასრულებას",
"Migration started …" : "მიგრაცია დაიწყო …",
"Address" : "მისამართი",
- "Avatar" : "ავატარი",
"Plain" : "ჩვეულებრივი",
"NT LAN Manager" : "NT LAN მენეჯერი",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/ko.js b/apps/settings/l10n/ko.js
index b5bb43a1972..1d060a40d7e 100644
--- a/apps/settings/l10n/ko.js
+++ b/apps/settings/l10n/ko.js
@@ -321,6 +321,7 @@ OC.L10N.register(
"Email" : "이메일",
"Default language" : "기본 언어",
"Add a new user" : "새 사용자 추가",
+ "Avatar" : "아바타",
"Group admin for" : "다음 그룹의 관리자:",
"Quota" : "할당량",
"User backend" : "사용자 백엔드",
@@ -469,7 +470,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오",
"Migration started …" : "이전 시작됨...",
"Address" : "주소",
- "Avatar" : "아바타",
"An error occured during the request. Unable to proceed." : "요청을 보내는 도중 에러가 발생하였습니다. 더 이상 진행할 수 없습니다.",
"Plain" : "일반",
"NT LAN Manager" : "NT LAN 관리자",
diff --git a/apps/settings/l10n/ko.json b/apps/settings/l10n/ko.json
index bf99efe6365..00b9bc53361 100644
--- a/apps/settings/l10n/ko.json
+++ b/apps/settings/l10n/ko.json
@@ -319,6 +319,7 @@
"Email" : "이메일",
"Default language" : "기본 언어",
"Add a new user" : "새 사용자 추가",
+ "Avatar" : "아바타",
"Group admin for" : "다음 그룹의 관리자:",
"Quota" : "할당량",
"User backend" : "사용자 백엔드",
@@ -467,7 +468,6 @@
"Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오",
"Migration started …" : "이전 시작됨...",
"Address" : "주소",
- "Avatar" : "아바타",
"An error occured during the request. Unable to proceed." : "요청을 보내는 도중 에러가 발생하였습니다. 더 이상 진행할 수 없습니다.",
"Plain" : "일반",
"NT LAN Manager" : "NT LAN 관리자",
diff --git a/apps/settings/l10n/lt_LT.js b/apps/settings/l10n/lt_LT.js
index 5b5d99af552..4ebccb3982c 100644
--- a/apps/settings/l10n/lt_LT.js
+++ b/apps/settings/l10n/lt_LT.js
@@ -318,6 +318,7 @@ OC.L10N.register(
"Email" : "El. paštas",
"Default language" : "Numatytoji kalba",
"Add a new user" : "Pridėti naują naudotoją",
+ "Avatar" : "Avataras",
"Group admin for" : "Grupės administratorius",
"Quota" : "Limitas",
"User backend" : "Naudotojo vidinė pusė",
@@ -459,7 +460,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Vyksta perkėlimas. Palaukite, kol perkėlimas bus užbaigtas",
"Migration started …" : "Perkėlimas pradėtas …",
"Address" : "Adresas",
- "Avatar" : "Avataras",
"An error occured during the request. Unable to proceed." : "Užklausos metu, įvyko klaida. Nepavyksta tęsti.",
"Plain" : "Paprastas",
"NT LAN Manager" : "NT LAN tvarkytuvė",
diff --git a/apps/settings/l10n/lt_LT.json b/apps/settings/l10n/lt_LT.json
index 6315827c13d..612877da52e 100644
--- a/apps/settings/l10n/lt_LT.json
+++ b/apps/settings/l10n/lt_LT.json
@@ -316,6 +316,7 @@
"Email" : "El. paštas",
"Default language" : "Numatytoji kalba",
"Add a new user" : "Pridėti naują naudotoją",
+ "Avatar" : "Avataras",
"Group admin for" : "Grupės administratorius",
"Quota" : "Limitas",
"User backend" : "Naudotojo vidinė pusė",
@@ -457,7 +458,6 @@
"Migration in progress. Please wait until the migration is finished" : "Vyksta perkėlimas. Palaukite, kol perkėlimas bus užbaigtas",
"Migration started …" : "Perkėlimas pradėtas …",
"Address" : "Adresas",
- "Avatar" : "Avataras",
"An error occured during the request. Unable to proceed." : "Užklausos metu, įvyko klaida. Nepavyksta tęsti.",
"Plain" : "Paprastas",
"NT LAN Manager" : "NT LAN tvarkytuvė",
diff --git a/apps/settings/l10n/lv.js b/apps/settings/l10n/lv.js
index f03925fd801..66abc324450 100644
--- a/apps/settings/l10n/lv.js
+++ b/apps/settings/l10n/lv.js
@@ -109,6 +109,7 @@ OC.L10N.register(
"Add" : "Pievienot",
"Display name" : "Ekrāna vārds",
"Email" : "E-pasts",
+ "Avatar" : "Profila attēls",
"Group admin for" : "Admin grupa",
"Quota" : "Apjoms",
"Storage location" : "Krātuves atrašanās vieta",
@@ -168,7 +169,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Notiek migrācija. Lūdzu, pagaidiet, līdz migrēšana ir pabeigta",
"Migration started …" : "Uzsākta migrācija...",
"Address" : "Adrese",
- "Avatar" : "Profila attēls",
"Plain" : "vienkāršs teksts",
"NT LAN Manager" : "NT LAN Pārvaldnieks",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/lv.json b/apps/settings/l10n/lv.json
index d5d7b56e1e9..303e8c74660 100644
--- a/apps/settings/l10n/lv.json
+++ b/apps/settings/l10n/lv.json
@@ -107,6 +107,7 @@
"Add" : "Pievienot",
"Display name" : "Ekrāna vārds",
"Email" : "E-pasts",
+ "Avatar" : "Profila attēls",
"Group admin for" : "Admin grupa",
"Quota" : "Apjoms",
"Storage location" : "Krātuves atrašanās vieta",
@@ -166,7 +167,6 @@
"Migration in progress. Please wait until the migration is finished" : "Notiek migrācija. Lūdzu, pagaidiet, līdz migrēšana ir pabeigta",
"Migration started …" : "Uzsākta migrācija...",
"Address" : "Adrese",
- "Avatar" : "Profila attēls",
"Plain" : "vienkāršs teksts",
"NT LAN Manager" : "NT LAN Pārvaldnieks",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/mk.js b/apps/settings/l10n/mk.js
index cb8ef036520..3c2d4c8398e 100644
--- a/apps/settings/l10n/mk.js
+++ b/apps/settings/l10n/mk.js
@@ -342,6 +342,7 @@ OC.L10N.register(
"Email" : "Е-пошта",
"Default language" : "Стајдарден јазик",
"Add a new user" : "Додади нов корисник",
+ "Avatar" : "Аватар",
"Group admin for" : "Администратор на група",
"Quota" : "Квота",
"User backend" : "Задна страна на корисник",
@@ -463,8 +464,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Ограничи корисниците да споделуваат со корисници во своите групи",
"Exclude groups from sharing" : "Исклучи групи од споделување",
"These groups will still be able to receive shares, but not to initiate them." : "Овие групи сеуште ќе можат да добиваат споделувања, но не и да ги иницираат.",
- "Allow username autocompletion in share dialog" : "Дозволи автоматско комплетирање на корисници за споделување",
- "Allow username autocompletion to users within the same groups" : "Овозможи автоматско комплетирање за корисници од исти групи ",
"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)" : "озволете автоматско пополнување кога го внесувате целосното име или адресата на е-пошта (игнорирање што недостасува совпаѓање со именикот и сте во иста група)",
@@ -500,7 +499,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Миграцијата е во тек. Ве молиме почекајте додека миграцијата заврши",
"Migration started …" : "Миграцијата е започнаа ...",
"Address" : "Адреса",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Настана грешка во процесот. Не може да продолжи.",
"Plain" : "Чиста",
"NT LAN Manager" : "NT LAN Менаџер",
@@ -519,6 +517,8 @@ OC.L10N.register(
"Pick background job setting" : "Избери го начинот на извршување на задачите во позадина",
"Recommended" : "Препорачано",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php е потребно да биде извршен од системски корисник\" %s\".",
+ "Allow username autocompletion in share dialog" : "Дозволи автоматско комплетирање на корисници за споделување",
+ "Allow username autocompletion to users within the same groups" : "Овозможи автоматско комплетирање за корисници од исти групи ",
"Change privacy level of profile picture" : "Променете го нивото на приватност за сликата на профилот",
"Upload new" : "Прикачи нова",
"Select from Files" : "Избри од датотеките",
diff --git a/apps/settings/l10n/mk.json b/apps/settings/l10n/mk.json
index 639f9db5c1e..c91f25ecc35 100644
--- a/apps/settings/l10n/mk.json
+++ b/apps/settings/l10n/mk.json
@@ -340,6 +340,7 @@
"Email" : "Е-пошта",
"Default language" : "Стајдарден јазик",
"Add a new user" : "Додади нов корисник",
+ "Avatar" : "Аватар",
"Group admin for" : "Администратор на група",
"Quota" : "Квота",
"User backend" : "Задна страна на корисник",
@@ -461,8 +462,6 @@
"Restrict users to only share with users in their groups" : "Ограничи корисниците да споделуваат со корисници во своите групи",
"Exclude groups from sharing" : "Исклучи групи од споделување",
"These groups will still be able to receive shares, but not to initiate them." : "Овие групи сеуште ќе можат да добиваат споделувања, но не и да ги иницираат.",
- "Allow username autocompletion in share dialog" : "Дозволи автоматско комплетирање на корисници за споделување",
- "Allow username autocompletion to users within the same groups" : "Овозможи автоматско комплетирање за корисници од исти групи ",
"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)" : "озволете автоматско пополнување кога го внесувате целосното име или адресата на е-пошта (игнорирање што недостасува совпаѓање со именикот и сте во иста група)",
@@ -498,7 +497,6 @@
"Migration in progress. Please wait until the migration is finished" : "Миграцијата е во тек. Ве молиме почекајте додека миграцијата заврши",
"Migration started …" : "Миграцијата е започнаа ...",
"Address" : "Адреса",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Настана грешка во процесот. Не може да продолжи.",
"Plain" : "Чиста",
"NT LAN Manager" : "NT LAN Менаџер",
@@ -517,6 +515,8 @@
"Pick background job setting" : "Избери го начинот на извршување на задачите во позадина",
"Recommended" : "Препорачано",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php е потребно да биде извршен од системски корисник\" %s\".",
+ "Allow username autocompletion in share dialog" : "Дозволи автоматско комплетирање на корисници за споделување",
+ "Allow username autocompletion to users within the same groups" : "Овозможи автоматско комплетирање за корисници од исти групи ",
"Change privacy level of profile picture" : "Променете го нивото на приватност за сликата на профилот",
"Upload new" : "Прикачи нова",
"Select from Files" : "Избри од датотеките",
diff --git a/apps/settings/l10n/nb.js b/apps/settings/l10n/nb.js
index 1fb9f3fd118..edf36a820fa 100644
--- a/apps/settings/l10n/nb.js
+++ b/apps/settings/l10n/nb.js
@@ -324,6 +324,7 @@ OC.L10N.register(
"Email" : "E-post",
"Default language" : "Standard språk",
"Add a new user" : "Legg til en ny bruker",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppeadministrator for",
"Quota" : "Kvote",
"User backend" : "Bruker-server",
@@ -460,7 +461,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migrering utføres. Vent til den er ferdig.",
"Migration started …" : "Migrering startet…",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "En feil oppsto under forespørselen. Kan ikke fortsette.",
"Plain" : "Enkel",
"NT LAN Manager" : "NT LAN-behandler",
diff --git a/apps/settings/l10n/nb.json b/apps/settings/l10n/nb.json
index 45eddd03750..7637a7f9dc9 100644
--- a/apps/settings/l10n/nb.json
+++ b/apps/settings/l10n/nb.json
@@ -322,6 +322,7 @@
"Email" : "E-post",
"Default language" : "Standard språk",
"Add a new user" : "Legg til en ny bruker",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppeadministrator for",
"Quota" : "Kvote",
"User backend" : "Bruker-server",
@@ -458,7 +459,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migrering utføres. Vent til den er ferdig.",
"Migration started …" : "Migrering startet…",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "En feil oppsto under forespørselen. Kan ikke fortsette.",
"Plain" : "Enkel",
"NT LAN Manager" : "NT LAN-behandler",
diff --git a/apps/settings/l10n/nl.js b/apps/settings/l10n/nl.js
index a2967a16f87..f3ca048d090 100644
--- a/apps/settings/l10n/nl.js
+++ b/apps/settings/l10n/nl.js
@@ -312,6 +312,7 @@ OC.L10N.register(
"Email" : "E-mailadres",
"Default language" : "Standaardtaal",
"Add a new user" : "Nieuwe gebruiker toevoegen",
+ "Avatar" : "Avatar",
"Group admin for" : "Groepsbeheerder voor",
"Quota" : "Limieten",
"User backend" : "Backend gebruiker",
@@ -432,8 +433,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
"Exclude groups from sharing" : "Sta bepaalde groepen niet toe om te delen",
"These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen en bestanden ontvangen, maar kunnen zelf niks delen.",
- "Allow username autocompletion in share dialog" : "Automatisch aanvullen gebruikersnamen binnen deeldialoog toegestaan",
- "Allow username autocompletion to users within the same groups" : "Automatisch aanvullen van gebruikersnamen voor de gebruikers binnen dezelfde groepen toegestaan",
"Allow username autocompletion to users based on phone number integration" : "Toestaan automatisch aanvullen van gebruikersnamen gebaseerd op telefoonnummer integratie",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Als automatisch aanvullen \"dezelfde groep\" en \"telefoonnummer integratie\" zijn ingeschakeld, is een overeenkomst in een van beide voldoende om de gebruiker te tonen.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Automatisch aanvullen toestaan bij het invoeren van de volledige naam of het e-mailadres (ontbrekende overeenkomst in het telefoonboek negeren en deel uitmaken van dezelfde groep)",
@@ -473,7 +472,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migratie bezig. Wacht tot het proces klaar is.",
"Migration started …" : "Migratie gestart...",
"Address" : "Adres",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Er trad een fout op bij de aanvraag. Kan niet doorgaan.",
"Plain" : "Gewoon",
"NT LAN Manager" : "NT LAN Manager",
@@ -491,6 +489,8 @@ OC.L10N.register(
"Pick background job setting" : "Kies de achtergrondtaak instelling",
"Recommended" : "Aanbevolen",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php moet worden uitgevoerd door systeemgebruiker \"%s\".",
+ "Allow username autocompletion in share dialog" : "Automatisch aanvullen gebruikersnamen binnen deeldialoog toegestaan",
+ "Allow username autocompletion to users within the same groups" : "Automatisch aanvullen van gebruikersnamen voor de gebruikers binnen dezelfde groepen toegestaan",
"Change privacy level of profile picture" : "Wijzigen privacyniveau van profielafbeelding",
"Upload new" : "Upload een nieuwe",
"Select from Files" : "Kies uit bestanden",
diff --git a/apps/settings/l10n/nl.json b/apps/settings/l10n/nl.json
index e19b07162aa..7aac00c4d5d 100644
--- a/apps/settings/l10n/nl.json
+++ b/apps/settings/l10n/nl.json
@@ -310,6 +310,7 @@
"Email" : "E-mailadres",
"Default language" : "Standaardtaal",
"Add a new user" : "Nieuwe gebruiker toevoegen",
+ "Avatar" : "Avatar",
"Group admin for" : "Groepsbeheerder voor",
"Quota" : "Limieten",
"User backend" : "Backend gebruiker",
@@ -430,8 +431,6 @@
"Restrict users to only share with users in their groups" : "Laat gebruikers alleen delen met andere gebruikers in hun groepen",
"Exclude groups from sharing" : "Sta bepaalde groepen niet toe om te delen",
"These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen en bestanden ontvangen, maar kunnen zelf niks delen.",
- "Allow username autocompletion in share dialog" : "Automatisch aanvullen gebruikersnamen binnen deeldialoog toegestaan",
- "Allow username autocompletion to users within the same groups" : "Automatisch aanvullen van gebruikersnamen voor de gebruikers binnen dezelfde groepen toegestaan",
"Allow username autocompletion to users based on phone number integration" : "Toestaan automatisch aanvullen van gebruikersnamen gebaseerd op telefoonnummer integratie",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Als automatisch aanvullen \"dezelfde groep\" en \"telefoonnummer integratie\" zijn ingeschakeld, is een overeenkomst in een van beide voldoende om de gebruiker te tonen.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Automatisch aanvullen toestaan bij het invoeren van de volledige naam of het e-mailadres (ontbrekende overeenkomst in het telefoonboek negeren en deel uitmaken van dezelfde groep)",
@@ -471,7 +470,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migratie bezig. Wacht tot het proces klaar is.",
"Migration started …" : "Migratie gestart...",
"Address" : "Adres",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Er trad een fout op bij de aanvraag. Kan niet doorgaan.",
"Plain" : "Gewoon",
"NT LAN Manager" : "NT LAN Manager",
@@ -489,6 +487,8 @@
"Pick background job setting" : "Kies de achtergrondtaak instelling",
"Recommended" : "Aanbevolen",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php moet worden uitgevoerd door systeemgebruiker \"%s\".",
+ "Allow username autocompletion in share dialog" : "Automatisch aanvullen gebruikersnamen binnen deeldialoog toegestaan",
+ "Allow username autocompletion to users within the same groups" : "Automatisch aanvullen van gebruikersnamen voor de gebruikers binnen dezelfde groepen toegestaan",
"Change privacy level of profile picture" : "Wijzigen privacyniveau van profielafbeelding",
"Upload new" : "Upload een nieuwe",
"Select from Files" : "Kies uit bestanden",
diff --git a/apps/settings/l10n/nn_NO.js b/apps/settings/l10n/nn_NO.js
index 19c83032323..cbac9f99b77 100644
--- a/apps/settings/l10n/nn_NO.js
+++ b/apps/settings/l10n/nn_NO.js
@@ -80,6 +80,7 @@ OC.L10N.register(
"Help translate" : "Hjelp oss å omsetja",
"Add" : "Legg til",
"Email" : "E-post",
+ "Avatar" : "Avatar",
"Quota" : "Kvote",
"Last login" : "Siste innlogging",
"Add group" : "Legg til gruppe",
@@ -117,7 +118,6 @@ OC.L10N.register(
"Couldn't update app." : "Klarte ikkje oppdatera programmet.",
"Migration started …" : "Overføring har starta…",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"Enable encryption" : "Aktiver kryptering",
"Start migration" : "Start migrasjon",
"Upload new" : "Last opp ny",
diff --git a/apps/settings/l10n/nn_NO.json b/apps/settings/l10n/nn_NO.json
index b605488e346..f68edadb040 100644
--- a/apps/settings/l10n/nn_NO.json
+++ b/apps/settings/l10n/nn_NO.json
@@ -78,6 +78,7 @@
"Help translate" : "Hjelp oss å omsetja",
"Add" : "Legg til",
"Email" : "E-post",
+ "Avatar" : "Avatar",
"Quota" : "Kvote",
"Last login" : "Siste innlogging",
"Add group" : "Legg til gruppe",
@@ -115,7 +116,6 @@
"Couldn't update app." : "Klarte ikkje oppdatera programmet.",
"Migration started …" : "Overføring har starta…",
"Address" : "Adresse",
- "Avatar" : "Avatar",
"Enable encryption" : "Aktiver kryptering",
"Start migration" : "Start migrasjon",
"Upload new" : "Last opp ny",
diff --git a/apps/settings/l10n/oc.js b/apps/settings/l10n/oc.js
index bd70d1660e1..c3fa6e5bb26 100644
--- a/apps/settings/l10n/oc.js
+++ b/apps/settings/l10n/oc.js
@@ -172,6 +172,7 @@ OC.L10N.register(
"Email" : "Adreça corrièl",
"Default language" : "Lenga per defaut",
"Add a new user" : "Apondre un utilizaire novè",
+ "Avatar" : "Avatar",
"Quota" : "Quota",
"Last login" : "Darrièra connexion",
"No users in here" : "Cap d’utilizaire aquí",
@@ -253,7 +254,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migracion en cors. Mercés d’esperar fins que la migracion aja acabat",
"Migration started …" : "Migracion començada…",
"Address" : "Adreça",
- "Avatar" : "Avatar",
"STARTTLS" : "STARTTLS",
"Enable encryption" : "Activar lo chiframent",
"Start migration" : "Començar la migracion",
diff --git a/apps/settings/l10n/oc.json b/apps/settings/l10n/oc.json
index 9230831f4eb..23709bf2957 100644
--- a/apps/settings/l10n/oc.json
+++ b/apps/settings/l10n/oc.json
@@ -170,6 +170,7 @@
"Email" : "Adreça corrièl",
"Default language" : "Lenga per defaut",
"Add a new user" : "Apondre un utilizaire novè",
+ "Avatar" : "Avatar",
"Quota" : "Quota",
"Last login" : "Darrièra connexion",
"No users in here" : "Cap d’utilizaire aquí",
@@ -251,7 +252,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migracion en cors. Mercés d’esperar fins que la migracion aja acabat",
"Migration started …" : "Migracion començada…",
"Address" : "Adreça",
- "Avatar" : "Avatar",
"STARTTLS" : "STARTTLS",
"Enable encryption" : "Activar lo chiframent",
"Start migration" : "Començar la migracion",
diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js
index 9c3df5b5331..87639013523 100644
--- a/apps/settings/l10n/pl.js
+++ b/apps/settings/l10n/pl.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Default language" : "Domyślny język",
"Add a new user" : "Dodaj użytkownika",
+ "Avatar" : "Awatar",
"Group admin for" : "Administrator grupy",
"Quota" : "Limit",
"User backend" : "Moduł użytkownika",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Ogranicz użytkownikom możliwość udostępniania, pozwól tylko w swoich grupach",
"Exclude groups from sharing" : "Wyklucz grupy z udostępniania",
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogły otrzymywać udostępnienia, ale nie będą mogły ich tworzyć.",
- "Allow username autocompletion in share dialog" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika w oknie udostępnienia",
- "Allow username autocompletion to users within the same groups" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika dla użytkowników w tych samych grupach",
"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)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migracja w toku. Poczekaj na zakończenie migracji.",
"Migration started …" : "Migracja rozpoczęta…",
"Address" : "Adres",
- "Avatar" : "Awatar",
"An error occured during the request. Unable to proceed." : "Wystąpił błąd zapytania. Nie można kontynuować.",
"Plain" : "Czysty tekst",
"NT LAN Manager" : "NT LAN Manager",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Wybierz ustawienie zadania w tle",
"Recommended" : "Zalecane",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php musi zostać wykonywany przez użytkownika systemu \"%s\".",
+ "Allow username autocompletion in share dialog" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika w oknie udostępnienia",
+ "Allow username autocompletion to users within the same groups" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika dla użytkowników w tych samych grupach",
"Change privacy level of profile picture" : "Zmień poziom prywatności zdjęcia profilowego",
"Upload new" : "Wczytaj nowe",
"Select from Files" : "Wybierz z Plików",
diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json
index 905cb37e23d..6fb51fa4949 100644
--- a/apps/settings/l10n/pl.json
+++ b/apps/settings/l10n/pl.json
@@ -359,6 +359,7 @@
"Email" : "E-mail",
"Default language" : "Domyślny język",
"Add a new user" : "Dodaj użytkownika",
+ "Avatar" : "Awatar",
"Group admin for" : "Administrator grupy",
"Quota" : "Limit",
"User backend" : "Moduł użytkownika",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Ogranicz użytkownikom możliwość udostępniania, pozwól tylko w swoich grupach",
"Exclude groups from sharing" : "Wyklucz grupy z udostępniania",
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogły otrzymywać udostępnienia, ale nie będą mogły ich tworzyć.",
- "Allow username autocompletion in share dialog" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika w oknie udostępnienia",
- "Allow username autocompletion to users within the same groups" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika dla użytkowników w tych samych grupach",
"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)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migracja w toku. Poczekaj na zakończenie migracji.",
"Migration started …" : "Migracja rozpoczęta…",
"Address" : "Adres",
- "Avatar" : "Awatar",
"An error occured during the request. Unable to proceed." : "Wystąpił błąd zapytania. Nie można kontynuować.",
"Plain" : "Czysty tekst",
"NT LAN Manager" : "NT LAN Manager",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Wybierz ustawienie zadania w tle",
"Recommended" : "Zalecane",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php musi zostać wykonywany przez użytkownika systemu \"%s\".",
+ "Allow username autocompletion in share dialog" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika w oknie udostępnienia",
+ "Allow username autocompletion to users within the same groups" : "Zezwalaj na automatyczne uzupełnianie nazwy użytkownika dla użytkowników w tych samych grupach",
"Change privacy level of profile picture" : "Zmień poziom prywatności zdjęcia profilowego",
"Upload new" : "Wczytaj nowe",
"Select from Files" : "Wybierz z Plików",
diff --git a/apps/settings/l10n/pt_BR.js b/apps/settings/l10n/pt_BR.js
index de47a77c807..cd9304c9420 100644
--- a/apps/settings/l10n/pt_BR.js
+++ b/apps/settings/l10n/pt_BR.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Default language" : "Idioma padrão",
"Add a new user" : "Adicione um novo usuário",
+ "Avatar" : "Avatar",
"Group admin for" : "Admin. de grupo",
"Quota" : "Cota",
"User backend" : "Plataforma de serviço de usuário",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Restringir os usuários para compartilhar apenas com usuários em seus grupos",
"Exclude groups from sharing" : "Impedir que alguns grupos compartilhem",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos ainda serão capazes de receber compartilhamentos, mas não iniciá-los.",
- "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuário na caixa de compartilhamento",
- "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuário para usuários dentro dos mesmos grupos",
"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)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que esteja finalizada",
"Migration started …" : "Migração iniciada...",
"Address" : "Endereço",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ocorreu um erro durante a requisição. Impossível continuar.",
"Plain" : "Plano",
"NT LAN Manager" : "Gerenciador NT LAN",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Configuração de trabalhos em segundo plano",
"Recommended" : "Recomendado",
"The cron.php needs to be executed by the system user \"%s\"." : "O cron.php precisa ser executado pelo usuário de sistema \"%s\"",
+ "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuário na caixa de compartilhamento",
+ "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuário para usuários dentro dos mesmos grupos",
"Change privacy level of profile picture" : "Alterar o nível de privacidade da foto do perfil ",
"Upload new" : "Enviar novo",
"Select from Files" : "Selecionar de Arquivos",
diff --git a/apps/settings/l10n/pt_BR.json b/apps/settings/l10n/pt_BR.json
index de8b1623427..f650c3112b5 100644
--- a/apps/settings/l10n/pt_BR.json
+++ b/apps/settings/l10n/pt_BR.json
@@ -359,6 +359,7 @@
"Email" : "E-mail",
"Default language" : "Idioma padrão",
"Add a new user" : "Adicione um novo usuário",
+ "Avatar" : "Avatar",
"Group admin for" : "Admin. de grupo",
"Quota" : "Cota",
"User backend" : "Plataforma de serviço de usuário",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Restringir os usuários para compartilhar apenas com usuários em seus grupos",
"Exclude groups from sharing" : "Impedir que alguns grupos compartilhem",
"These groups will still be able to receive shares, but not to initiate them." : "Estes grupos ainda serão capazes de receber compartilhamentos, mas não iniciá-los.",
- "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuário na caixa de compartilhamento",
- "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuário para usuários dentro dos mesmos grupos",
"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)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que esteja finalizada",
"Migration started …" : "Migração iniciada...",
"Address" : "Endereço",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ocorreu um erro durante a requisição. Impossível continuar.",
"Plain" : "Plano",
"NT LAN Manager" : "Gerenciador NT LAN",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Configuração de trabalhos em segundo plano",
"Recommended" : "Recomendado",
"The cron.php needs to be executed by the system user \"%s\"." : "O cron.php precisa ser executado pelo usuário de sistema \"%s\"",
+ "Allow username autocompletion in share dialog" : "Permitir autocompletar o nome de usuário na caixa de compartilhamento",
+ "Allow username autocompletion to users within the same groups" : "Permitir autocompletar o nome de usuário para usuários dentro dos mesmos grupos",
"Change privacy level of profile picture" : "Alterar o nível de privacidade da foto do perfil ",
"Upload new" : "Enviar novo",
"Select from Files" : "Selecionar de Arquivos",
diff --git a/apps/settings/l10n/pt_PT.js b/apps/settings/l10n/pt_PT.js
index 378923fc540..954f7b5ebe5 100644
--- a/apps/settings/l10n/pt_PT.js
+++ b/apps/settings/l10n/pt_PT.js
@@ -206,6 +206,7 @@ OC.L10N.register(
"{size} used" : "{size} utilizado",
"Display name" : "Nome de apresentação",
"Email" : "Email",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grupo para",
"Quota" : "Quota",
"User backend" : "Backend do utilizador",
@@ -289,7 +290,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que a mesma esteja concluída..",
"Migration started …" : "Migração iniciada...",
"Address" : "Morada",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Gestor de REDE NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/pt_PT.json b/apps/settings/l10n/pt_PT.json
index 49817f5fd6b..8ac73024311 100644
--- a/apps/settings/l10n/pt_PT.json
+++ b/apps/settings/l10n/pt_PT.json
@@ -204,6 +204,7 @@
"{size} used" : "{size} utilizado",
"Display name" : "Nome de apresentação",
"Email" : "Email",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrador de grupo para",
"Quota" : "Quota",
"User backend" : "Backend do utilizador",
@@ -287,7 +288,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que a mesma esteja concluída..",
"Migration started …" : "Migração iniciada...",
"Address" : "Morada",
- "Avatar" : "Avatar",
"Plain" : "Plano",
"NT LAN Manager" : "Gestor de REDE NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/ro.js b/apps/settings/l10n/ro.js
index 346603a96e4..d49150fb7e5 100644
--- a/apps/settings/l10n/ro.js
+++ b/apps/settings/l10n/ro.js
@@ -165,8 +165,8 @@ OC.L10N.register(
"Web, desktop and mobile clients currently logged in to your account." : "Clienții web, desktop și mobil conectați în prezent la contul dvs.",
"Do you really want to wipe your data from this device?" : "Chiar doriți să vă ștergeți datele de pe acest dispozitiv?",
"Confirm wipe" : "Confirmați ștergerea",
- "Error while creating device token" : "Eroare la crearea jetonului de dispozitiv",
- "Error while updating device token scope" : "Eroare la actualizarea domeniului de aplicare a jetonului de dispozitiv",
+ "Error while creating device token" : "Eroare la crearea token-ului de dispozitiv",
+ "Error while updating device token scope" : "Eroare la actualizarea domeniului de aplicare a token-ului de dispozitiv",
"Error while updating device token name" : "Eroare la actualizarea numelui token-ului dispozitivului",
"Error while deleting the token" : "Eroare de ștergere token",
"Error while wiping the device with the token" : "Eroare la ștergerea dispozitivului cu token-ul",
@@ -201,6 +201,7 @@ OC.L10N.register(
"Display name" : "Nume afișat",
"Email" : "Email",
"Default language" : "Limba implicită",
+ "Avatar" : "Avatar",
"Quota" : "Cotă",
"Add WebAuthn device" : "Adăugați dispozitivul WebAuthn",
"Name your device" : "Numiți dispozitivul dvs.",
@@ -271,7 +272,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migrare în progres. Așteaptă până când migrarea este finalizată",
"Migration started …" : "Migrarea a început...",
"Address" : "Adresă",
- "Avatar" : "Avatar",
"Plain" : "Plain",
"NT LAN Manager" : "NT LAN Manager",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/ro.json b/apps/settings/l10n/ro.json
index d51c0f037f3..c9e59310a84 100644
--- a/apps/settings/l10n/ro.json
+++ b/apps/settings/l10n/ro.json
@@ -163,8 +163,8 @@
"Web, desktop and mobile clients currently logged in to your account." : "Clienții web, desktop și mobil conectați în prezent la contul dvs.",
"Do you really want to wipe your data from this device?" : "Chiar doriți să vă ștergeți datele de pe acest dispozitiv?",
"Confirm wipe" : "Confirmați ștergerea",
- "Error while creating device token" : "Eroare la crearea jetonului de dispozitiv",
- "Error while updating device token scope" : "Eroare la actualizarea domeniului de aplicare a jetonului de dispozitiv",
+ "Error while creating device token" : "Eroare la crearea token-ului de dispozitiv",
+ "Error while updating device token scope" : "Eroare la actualizarea domeniului de aplicare a token-ului de dispozitiv",
"Error while updating device token name" : "Eroare la actualizarea numelui token-ului dispozitivului",
"Error while deleting the token" : "Eroare de ștergere token",
"Error while wiping the device with the token" : "Eroare la ștergerea dispozitivului cu token-ul",
@@ -199,6 +199,7 @@
"Display name" : "Nume afișat",
"Email" : "Email",
"Default language" : "Limba implicită",
+ "Avatar" : "Avatar",
"Quota" : "Cotă",
"Add WebAuthn device" : "Adăugați dispozitivul WebAuthn",
"Name your device" : "Numiți dispozitivul dvs.",
@@ -269,7 +270,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migrare în progres. Așteaptă până când migrarea este finalizată",
"Migration started …" : "Migrarea a început...",
"Address" : "Adresă",
- "Avatar" : "Avatar",
"Plain" : "Plain",
"NT LAN Manager" : "NT LAN Manager",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/ru.js b/apps/settings/l10n/ru.js
index 90cd711f410..5c2e57e6022 100644
--- a/apps/settings/l10n/ru.js
+++ b/apps/settings/l10n/ru.js
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "Добавить дополнительную электронную почту",
"Add" : "Добавить",
"You do not have permissions to see the details of this user" : "У вас нет прав на просмотр данных об этом пользователе",
+ "Edit display name" : "Редактировать отображаемое имя",
"Add new password" : "Добавить пароль",
"Add new email address" : "Добавить адрес электронной почты",
"Add user to group" : "Добавить пользователя в группу",
"Set user as admin for" : "Назначить администратором",
"Select user quota" : "Квота пользователя",
+ "Set the language" : "Выбрать язык",
"Delete user" : "Удалить пользователя",
"Wipe all devices" : "Удалить данные со всех устройств",
"Disable user" : "Отключить пользователя",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "Адрес эл. почты",
"Default language" : "Язык по умолчанию",
"Add a new user" : "Создать пользователя",
+ "Avatar" : "Аватар",
"Group admin for" : "Администратор групп",
"Quota" : "Квота",
"User backend" : "Механизм учёта",
@@ -425,7 +428,7 @@ OC.L10N.register(
"App bundles" : "Пакеты приложений",
"Featured apps" : "Рекомендуемые приложения",
"Show to everyone" : "Видим для всех",
- "Show to logged in users only" : "Видим только для пользователей, вошедших в систему",
+ "Show to logged in users only" : "Видим только для вошедших в систему",
"Hide" : "Скрыт",
"Download and enable" : "Скачать и включить",
"Enable untested app" : "Включить непроверенное приложение",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Запретить делиться с пользователями из других групп",
"Exclude groups from sharing" : "Запретить публикацию указанным группам:",
"These groups will still be able to receive shares, but not to initiate them." : "Эти группы смогут получать общие ресурсы, но не смогут их создавать.",
- "Allow username autocompletion in share dialog" : "Разрешить автозаполнение имени пользователя в диалоговом окне общего доступа",
- "Allow username autocompletion to users within the same groups" : "Разрешить автозаполнение имени пользователя для пользователей в тех же группах",
"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)" : "Разрешить автозаполнение при вводе полного имени или адреса электронной почты (игнорируя отсутствие совпадений в телефонной книге и нахождение в одной группе)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Перенос выполняется, дождитесь завершения",
"Migration started …" : "Перенос начат…",
"Address" : "Адрес",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Во время запроса произошла ошибка. Продолжение невозможно",
"Plain" : "Простой",
"NT LAN Manager" : "Менеджер NT LAN",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "Выбрать параметр выполнения фоновых задач",
"Recommended" : "Рекомендовано",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php должен исполняться из под пользователя \"%s\".",
+ "Allow username autocompletion in share dialog" : "Разрешить автозаполнение имени пользователя в диалоговом окне общего доступа",
+ "Allow username autocompletion to users within the same groups" : "Разрешить автозаполнение имени пользователя для пользователей в тех же группах",
"Change privacy level of profile picture" : "Изменить уровень конфиденциальности изображения профиля",
"Upload new" : "Загрузить",
"Select from Files" : "Выбрать в приложении Файлы",
diff --git a/apps/settings/l10n/ru.json b/apps/settings/l10n/ru.json
index 4575793ac0f..727823d799f 100644
--- a/apps/settings/l10n/ru.json
+++ b/apps/settings/l10n/ru.json
@@ -333,11 +333,13 @@
"Add additional email" : "Добавить дополнительную электронную почту",
"Add" : "Добавить",
"You do not have permissions to see the details of this user" : "У вас нет прав на просмотр данных об этом пользователе",
+ "Edit display name" : "Редактировать отображаемое имя",
"Add new password" : "Добавить пароль",
"Add new email address" : "Добавить адрес электронной почты",
"Add user to group" : "Добавить пользователя в группу",
"Set user as admin for" : "Назначить администратором",
"Select user quota" : "Квота пользователя",
+ "Set the language" : "Выбрать язык",
"Delete user" : "Удалить пользователя",
"Wipe all devices" : "Удалить данные со всех устройств",
"Disable user" : "Отключить пользователя",
@@ -359,6 +361,7 @@
"Email" : "Адрес эл. почты",
"Default language" : "Язык по умолчанию",
"Add a new user" : "Создать пользователя",
+ "Avatar" : "Аватар",
"Group admin for" : "Администратор групп",
"Quota" : "Квота",
"User backend" : "Механизм учёта",
@@ -423,7 +426,7 @@
"App bundles" : "Пакеты приложений",
"Featured apps" : "Рекомендуемые приложения",
"Show to everyone" : "Видим для всех",
- "Show to logged in users only" : "Видим только для пользователей, вошедших в систему",
+ "Show to logged in users only" : "Видим только для вошедших в систему",
"Hide" : "Скрыт",
"Download and enable" : "Скачать и включить",
"Enable untested app" : "Включить непроверенное приложение",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "Запретить делиться с пользователями из других групп",
"Exclude groups from sharing" : "Запретить публикацию указанным группам:",
"These groups will still be able to receive shares, but not to initiate them." : "Эти группы смогут получать общие ресурсы, но не смогут их создавать.",
- "Allow username autocompletion in share dialog" : "Разрешить автозаполнение имени пользователя в диалоговом окне общего доступа",
- "Allow username autocompletion to users within the same groups" : "Разрешить автозаполнение имени пользователя для пользователей в тех же группах",
"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)" : "Разрешить автозаполнение при вводе полного имени или адреса электронной почты (игнорируя отсутствие совпадений в телефонной книге и нахождение в одной группе)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "Перенос выполняется, дождитесь завершения",
"Migration started …" : "Перенос начат…",
"Address" : "Адрес",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Во время запроса произошла ошибка. Продолжение невозможно",
"Plain" : "Простой",
"NT LAN Manager" : "Менеджер NT LAN",
@@ -544,6 +544,8 @@
"Pick background job setting" : "Выбрать параметр выполнения фоновых задач",
"Recommended" : "Рекомендовано",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php должен исполняться из под пользователя \"%s\".",
+ "Allow username autocompletion in share dialog" : "Разрешить автозаполнение имени пользователя в диалоговом окне общего доступа",
+ "Allow username autocompletion to users within the same groups" : "Разрешить автозаполнение имени пользователя для пользователей в тех же группах",
"Change privacy level of profile picture" : "Изменить уровень конфиденциальности изображения профиля",
"Upload new" : "Загрузить",
"Select from Files" : "Выбрать в приложении Файлы",
diff --git a/apps/settings/l10n/sc.js b/apps/settings/l10n/sc.js
index 059a50cc526..3f8bd5948b7 100644
--- a/apps/settings/l10n/sc.js
+++ b/apps/settings/l10n/sc.js
@@ -263,6 +263,7 @@ OC.L10N.register(
"Email" : "Posta eletrònica",
"Default language" : "Limba predefinida",
"Add a new user" : "Agiunghe un'utèntzia noa",
+ "Avatar" : "Avatar",
"Group admin for" : "In amministratzione pro su grupu",
"Quota" : "Cuota",
"User backend" : "Motore utente",
@@ -372,8 +373,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Lìmita is utentes a sa cumpartzidura isceti cun utentes in is grupos issoro",
"Exclude groups from sharing" : "Esclude grupos dae sa cumpartzidura",
"These groups will still be able to receive shares, but not to initiate them." : "Custos grupos ant a pòdere retzire cumpartziduras, ma no ddas ant a pòdere cumintzare.",
- "Allow username autocompletion in share dialog" : "Permite sa cumponidura automàtica de su nùmene de utente in sa ventana de cumpartzidura",
- "Allow username autocompletion to users within the same groups" : "Permite sa cumponidura automàtica de su nùmene de utente a is utentes de su matessi grupu",
"Allow username autocompletion to users based on phone number integration" : "Permite sa cumponidura automàtica de su nùmene de utente a is utentes segundu s'integratzione de su nùmeru de telèfonu",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si sa cumponidura automàtica \"matessi grupu\" e \"integratzione de nùmeru de telèfonu\" sunt ativadas, una currispondèntzia in unu de is duas bastat a mustrare s'utente.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Mustra sa liberatòria in sa pàgina de carrigamentu de su ligòngiu pùblicu (mustradu isceti cando s'archìviu de sa lista est cuadu)",
@@ -400,7 +399,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Tràmuda in cursu. Abeta finas a cando at a acabbare",
"Migration started …" : "Tràmuda aviada …",
"Address" : "Indiritzu",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ddoe at àpidu un'errore in sa dimanda. Impossìbile a sighire.",
"Plain" : "Simpre",
"NT LAN Manager" : "NT LAN Manager",
@@ -417,6 +415,8 @@ OC.L10N.register(
"Background job didn’t run yet!" : "S'atividade in segundu pianu no est ancora istada esecutada!",
"Pick background job setting" : "Sèbera s'impostatzione de s'atividade in segundu pianu",
"The cron.php needs to be executed by the system user \"%s\"." : "Su cron.php depet èssere esecutadu dae s'utente de sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Permite sa cumponidura automàtica de su nùmene de utente in sa ventana de cumpartzidura",
+ "Allow username autocompletion to users within the same groups" : "Permite sa cumponidura automàtica de su nùmene de utente a is utentes de su matessi grupu",
"Change privacy level of profile picture" : "Càmbia su livellu de riservadesa de s'imàgine de profilu",
"Upload new" : "Càrriga noa",
"Select from Files" : "Seletziona dae Archìvios",
diff --git a/apps/settings/l10n/sc.json b/apps/settings/l10n/sc.json
index 10f6395df4f..e87fb83be9f 100644
--- a/apps/settings/l10n/sc.json
+++ b/apps/settings/l10n/sc.json
@@ -261,6 +261,7 @@
"Email" : "Posta eletrònica",
"Default language" : "Limba predefinida",
"Add a new user" : "Agiunghe un'utèntzia noa",
+ "Avatar" : "Avatar",
"Group admin for" : "In amministratzione pro su grupu",
"Quota" : "Cuota",
"User backend" : "Motore utente",
@@ -370,8 +371,6 @@
"Restrict users to only share with users in their groups" : "Lìmita is utentes a sa cumpartzidura isceti cun utentes in is grupos issoro",
"Exclude groups from sharing" : "Esclude grupos dae sa cumpartzidura",
"These groups will still be able to receive shares, but not to initiate them." : "Custos grupos ant a pòdere retzire cumpartziduras, ma no ddas ant a pòdere cumintzare.",
- "Allow username autocompletion in share dialog" : "Permite sa cumponidura automàtica de su nùmene de utente in sa ventana de cumpartzidura",
- "Allow username autocompletion to users within the same groups" : "Permite sa cumponidura automàtica de su nùmene de utente a is utentes de su matessi grupu",
"Allow username autocompletion to users based on phone number integration" : "Permite sa cumponidura automàtica de su nùmene de utente a is utentes segundu s'integratzione de su nùmeru de telèfonu",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Si sa cumponidura automàtica \"matessi grupu\" e \"integratzione de nùmeru de telèfonu\" sunt ativadas, una currispondèntzia in unu de is duas bastat a mustrare s'utente.",
"Show disclaimer text on the public link upload page (only shown when the file list is hidden)" : "Mustra sa liberatòria in sa pàgina de carrigamentu de su ligòngiu pùblicu (mustradu isceti cando s'archìviu de sa lista est cuadu)",
@@ -398,7 +397,6 @@
"Migration in progress. Please wait until the migration is finished" : "Tràmuda in cursu. Abeta finas a cando at a acabbare",
"Migration started …" : "Tràmuda aviada …",
"Address" : "Indiritzu",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ddoe at àpidu un'errore in sa dimanda. Impossìbile a sighire.",
"Plain" : "Simpre",
"NT LAN Manager" : "NT LAN Manager",
@@ -415,6 +413,8 @@
"Background job didn’t run yet!" : "S'atividade in segundu pianu no est ancora istada esecutada!",
"Pick background job setting" : "Sèbera s'impostatzione de s'atividade in segundu pianu",
"The cron.php needs to be executed by the system user \"%s\"." : "Su cron.php depet èssere esecutadu dae s'utente de sistema \"%s\".",
+ "Allow username autocompletion in share dialog" : "Permite sa cumponidura automàtica de su nùmene de utente in sa ventana de cumpartzidura",
+ "Allow username autocompletion to users within the same groups" : "Permite sa cumponidura automàtica de su nùmene de utente a is utentes de su matessi grupu",
"Change privacy level of profile picture" : "Càmbia su livellu de riservadesa de s'imàgine de profilu",
"Upload new" : "Càrriga noa",
"Select from Files" : "Seletziona dae Archìvios",
diff --git a/apps/settings/l10n/sk.js b/apps/settings/l10n/sk.js
index 0caaf112916..f11de53a6a5 100644
--- a/apps/settings/l10n/sk.js
+++ b/apps/settings/l10n/sk.js
@@ -354,6 +354,7 @@ OC.L10N.register(
"Email" : "Email",
"Default language" : "Predvolený jazyk",
"Add a new user" : "Pridať nového používateľa",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrátor skupiny pre",
"Quota" : "Kvóta",
"User backend" : "Backend používateľa",
@@ -476,8 +477,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Povoliť používateľom sprístupňovanie obsahu len v rámci ich skupiny",
"Exclude groups from sharing" : "Nesprístupniť obsah skupinám",
"These groups will still be able to receive shares, but not to initiate them." : "Tieto skupiny nebudú mocť sprístupňovať obsah, môžu však stále čítať sprístupnené súbory.",
- "Allow username autocompletion in share dialog" : "Povoliť automatické dopĺňanie používateľského mena v dialógovom okne zdieľania",
- "Allow username autocompletion to users within the same groups" : "Povoliť automatické dopĺňanie mien užívateľom v rovnakých skupinách",
"Allow username autocompletion to users based on phone number integration" : "Povoliť automatické dopĺňanie mien užívateľom založené na integrácii s telefónnym číslom",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ak je povolené automatické dopĺňanie „pre rovnakú skupinu“ a „integrácia telefónneho čísla“, na zobrazenie používateľa stačí zhoda v ktorejkoľvek z nich.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Pri zadávaní celého mena alebo e-mailovej adresy povoliť automatické dopĺňanie (ignoruje sa chýbajúca zhoda v telefónnom zozname a príslušnosť k rovnakej skupine)",
@@ -518,7 +517,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Prebieha migrácia. Počkajte prosím, kým sa skončí",
"Migration started …" : "Migrácia spustená ...",
"Address" : "Adresa",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Počas vykonania požiadavky nastala chyba. Nie je možné pokračovať.",
"Plain" : "Neformátovaný",
"NT LAN Manager" : "NT LAN Manager",
@@ -537,6 +535,8 @@ OC.L10N.register(
"Pick background job setting" : "Vybrať nastavenie úlohy na pozadí",
"Recommended" : "Odporúčané",
"The cron.php needs to be executed by the system user \"%s\"." : "Je potrebné, aby cron.php bol spustený systémovým používateľom \"%s\".",
+ "Allow username autocompletion in share dialog" : "Povoliť automatické dopĺňanie používateľského mena v dialógovom okne zdieľania",
+ "Allow username autocompletion to users within the same groups" : "Povoliť automatické dopĺňanie mien užívateľom v rovnakých skupinách",
"Change privacy level of profile picture" : "Zmeniť úroveň súkromia pre profilový obrázok",
"Upload new" : "Nahrať nový",
"Select from Files" : "Vybrať zo súborov",
diff --git a/apps/settings/l10n/sk.json b/apps/settings/l10n/sk.json
index 8a8c812370a..5772c5a8f4d 100644
--- a/apps/settings/l10n/sk.json
+++ b/apps/settings/l10n/sk.json
@@ -352,6 +352,7 @@
"Email" : "Email",
"Default language" : "Predvolený jazyk",
"Add a new user" : "Pridať nového používateľa",
+ "Avatar" : "Avatar",
"Group admin for" : "Administrátor skupiny pre",
"Quota" : "Kvóta",
"User backend" : "Backend používateľa",
@@ -474,8 +475,6 @@
"Restrict users to only share with users in their groups" : "Povoliť používateľom sprístupňovanie obsahu len v rámci ich skupiny",
"Exclude groups from sharing" : "Nesprístupniť obsah skupinám",
"These groups will still be able to receive shares, but not to initiate them." : "Tieto skupiny nebudú mocť sprístupňovať obsah, môžu však stále čítať sprístupnené súbory.",
- "Allow username autocompletion in share dialog" : "Povoliť automatické dopĺňanie používateľského mena v dialógovom okne zdieľania",
- "Allow username autocompletion to users within the same groups" : "Povoliť automatické dopĺňanie mien užívateľom v rovnakých skupinách",
"Allow username autocompletion to users based on phone number integration" : "Povoliť automatické dopĺňanie mien užívateľom založené na integrácii s telefónnym číslom",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Ak je povolené automatické dopĺňanie „pre rovnakú skupinu“ a „integrácia telefónneho čísla“, na zobrazenie používateľa stačí zhoda v ktorejkoľvek z nich.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Pri zadávaní celého mena alebo e-mailovej adresy povoliť automatické dopĺňanie (ignoruje sa chýbajúca zhoda v telefónnom zozname a príslušnosť k rovnakej skupine)",
@@ -516,7 +515,6 @@
"Migration in progress. Please wait until the migration is finished" : "Prebieha migrácia. Počkajte prosím, kým sa skončí",
"Migration started …" : "Migrácia spustená ...",
"Address" : "Adresa",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Počas vykonania požiadavky nastala chyba. Nie je možné pokračovať.",
"Plain" : "Neformátovaný",
"NT LAN Manager" : "NT LAN Manager",
@@ -535,6 +533,8 @@
"Pick background job setting" : "Vybrať nastavenie úlohy na pozadí",
"Recommended" : "Odporúčané",
"The cron.php needs to be executed by the system user \"%s\"." : "Je potrebné, aby cron.php bol spustený systémovým používateľom \"%s\".",
+ "Allow username autocompletion in share dialog" : "Povoliť automatické dopĺňanie používateľského mena v dialógovom okne zdieľania",
+ "Allow username autocompletion to users within the same groups" : "Povoliť automatické dopĺňanie mien užívateľom v rovnakých skupinách",
"Change privacy level of profile picture" : "Zmeniť úroveň súkromia pre profilový obrázok",
"Upload new" : "Nahrať nový",
"Select from Files" : "Vybrať zo súborov",
diff --git a/apps/settings/l10n/sl.js b/apps/settings/l10n/sl.js
index 4e9b2cafb8e..25e04076312 100644
--- a/apps/settings/l10n/sl.js
+++ b/apps/settings/l10n/sl.js
@@ -328,6 +328,7 @@ OC.L10N.register(
"Email" : "Elektronski naslov",
"Default language" : "Privzeti jezik",
"Add a new user" : "Dodaj uporabnika",
+ "Avatar" : "Podoba",
"Group admin for" : "Skrbnik skupine za",
"Quota" : "Količinska omejitev",
"User backend" : "Uporabniški ozadnji program",
@@ -440,8 +441,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Uporabnikom dovoli omogočanje souporabe le znotraj njihove skupine",
"Exclude groups from sharing" : "Izbranim skupinam onemogoči omogočanje souporabe",
"These groups will still be able to receive shares, but not to initiate them." : "Te skupine lahko sprejemajo mape v souporabo, nimajo pa dovoljenja za omogočanje souporabe.",
- "Allow username autocompletion in share dialog" : "Dovoli samodejno dopolnjevanje uporabniških imen v oknu omogočanja souporabe",
- "Allow username autocompletion to users within the same groups" : "Dovoli samodejno dopolnjevanje uporabniških imen znotraj iste skupine",
"Allow username autocompletion to users based on phone number integration" : "Dovoli samodejno dopolnjevanje uporabniških imen po telefonskih številkah",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Če je omogočeno samodejno dopolnjevanje »v isti skupini«, ali pa »po telefonskem imeniku«, se zadetek pokaže, če je uporabnik v katerikoli od teh zbirk.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Dovoli samodejno dokončanje uporabniškega imena pri vpisu polnega imena ali elektronskega naslova (prezrta je zahteva telefonskega imenika in iste skupine).",
@@ -477,7 +476,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "V teku je preselitev. Počakajte, da se zaključi.",
"Migration started …" : "Preselitev je začeta ...",
"Address" : "Naslov",
- "Avatar" : "Podoba",
"An error occured during the request. Unable to proceed." : "Med izvajanjem zahteve je prišlo do napake, zato ni mogoče nadaljevati.",
"Plain" : "Besedilno",
"NT LAN Manager" : "Upravljalnik NT LAN",
@@ -495,6 +493,8 @@ OC.L10N.register(
"Pick background job setting" : "Izbor nastavitve ozadnjih opravil",
"Recommended" : "Priporočeno",
"The cron.php needs to be executed by the system user \"%s\"." : "Datoteka cron.php mora biti izvedena za uporabnika »%s«.",
+ "Allow username autocompletion in share dialog" : "Dovoli samodejno dopolnjevanje uporabniških imen v oknu omogočanja souporabe",
+ "Allow username autocompletion to users within the same groups" : "Dovoli samodejno dopolnjevanje uporabniških imen znotraj iste skupine",
"Change privacy level of profile picture" : "Spremeni pravila zasebnosti profilne slike",
"Upload new" : "Pošlji novo",
"Select from Files" : "Izbor iz datotek",
diff --git a/apps/settings/l10n/sl.json b/apps/settings/l10n/sl.json
index 710d29cdf6c..6cad0dea2f2 100644
--- a/apps/settings/l10n/sl.json
+++ b/apps/settings/l10n/sl.json
@@ -326,6 +326,7 @@
"Email" : "Elektronski naslov",
"Default language" : "Privzeti jezik",
"Add a new user" : "Dodaj uporabnika",
+ "Avatar" : "Podoba",
"Group admin for" : "Skrbnik skupine za",
"Quota" : "Količinska omejitev",
"User backend" : "Uporabniški ozadnji program",
@@ -438,8 +439,6 @@
"Restrict users to only share with users in their groups" : "Uporabnikom dovoli omogočanje souporabe le znotraj njihove skupine",
"Exclude groups from sharing" : "Izbranim skupinam onemogoči omogočanje souporabe",
"These groups will still be able to receive shares, but not to initiate them." : "Te skupine lahko sprejemajo mape v souporabo, nimajo pa dovoljenja za omogočanje souporabe.",
- "Allow username autocompletion in share dialog" : "Dovoli samodejno dopolnjevanje uporabniških imen v oknu omogočanja souporabe",
- "Allow username autocompletion to users within the same groups" : "Dovoli samodejno dopolnjevanje uporabniških imen znotraj iste skupine",
"Allow username autocompletion to users based on phone number integration" : "Dovoli samodejno dopolnjevanje uporabniških imen po telefonskih številkah",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Če je omogočeno samodejno dopolnjevanje »v isti skupini«, ali pa »po telefonskem imeniku«, se zadetek pokaže, če je uporabnik v katerikoli od teh zbirk.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Dovoli samodejno dokončanje uporabniškega imena pri vpisu polnega imena ali elektronskega naslova (prezrta je zahteva telefonskega imenika in iste skupine).",
@@ -475,7 +474,6 @@
"Migration in progress. Please wait until the migration is finished" : "V teku je preselitev. Počakajte, da se zaključi.",
"Migration started …" : "Preselitev je začeta ...",
"Address" : "Naslov",
- "Avatar" : "Podoba",
"An error occured during the request. Unable to proceed." : "Med izvajanjem zahteve je prišlo do napake, zato ni mogoče nadaljevati.",
"Plain" : "Besedilno",
"NT LAN Manager" : "Upravljalnik NT LAN",
@@ -493,6 +491,8 @@
"Pick background job setting" : "Izbor nastavitve ozadnjih opravil",
"Recommended" : "Priporočeno",
"The cron.php needs to be executed by the system user \"%s\"." : "Datoteka cron.php mora biti izvedena za uporabnika »%s«.",
+ "Allow username autocompletion in share dialog" : "Dovoli samodejno dopolnjevanje uporabniških imen v oknu omogočanja souporabe",
+ "Allow username autocompletion to users within the same groups" : "Dovoli samodejno dopolnjevanje uporabniških imen znotraj iste skupine",
"Change privacy level of profile picture" : "Spremeni pravila zasebnosti profilne slike",
"Upload new" : "Pošlji novo",
"Select from Files" : "Izbor iz datotek",
diff --git a/apps/settings/l10n/sq.js b/apps/settings/l10n/sq.js
index 4cac0b98056..f7eb69633df 100644
--- a/apps/settings/l10n/sq.js
+++ b/apps/settings/l10n/sq.js
@@ -156,6 +156,7 @@ OC.L10N.register(
"New user" : "Përdorues i ri",
"Display name" : "Shfaq emrin",
"Email" : "Email",
+ "Avatar" : "Avatari",
"Group admin for" : "Administratori i grupit për",
"Quota" : "Kuota",
"User backend" : "Program klient i përdoruesit",
@@ -236,7 +237,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migrimi në rrugë e sipër. Ju lutemi, pritni, teksa migrimi përfundon",
"Migration started …" : "Migrimi filloi …",
"Address" : "Adresa",
- "Avatar" : "Avatari",
"Plain" : "E thjeshtë",
"NT LAN Manager" : "Përgjegjës Rrjeti NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/sq.json b/apps/settings/l10n/sq.json
index 58246ec093a..03806933e2f 100644
--- a/apps/settings/l10n/sq.json
+++ b/apps/settings/l10n/sq.json
@@ -154,6 +154,7 @@
"New user" : "Përdorues i ri",
"Display name" : "Shfaq emrin",
"Email" : "Email",
+ "Avatar" : "Avatari",
"Group admin for" : "Administratori i grupit për",
"Quota" : "Kuota",
"User backend" : "Program klient i përdoruesit",
@@ -234,7 +235,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migrimi në rrugë e sipër. Ju lutemi, pritni, teksa migrimi përfundon",
"Migration started …" : "Migrimi filloi …",
"Address" : "Adresa",
- "Avatar" : "Avatari",
"Plain" : "E thjeshtë",
"NT LAN Manager" : "Përgjegjës Rrjeti NT",
"STARTTLS" : "STARTTLS",
diff --git a/apps/settings/l10n/sr.js b/apps/settings/l10n/sr.js
index 893626fe6aa..7d568c280f4 100644
--- a/apps/settings/l10n/sr.js
+++ b/apps/settings/l10n/sr.js
@@ -231,12 +231,12 @@ OC.L10N.register(
"Copied!" : "Копирано!",
"Copy" : "Копирај",
"Could not copy app password. Please copy it manually." : "Не могу да копирам апликативну лозинку. Копирајте је ручно.",
- "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." : "Да би сервер исправно радио, важно је да се правилно подесе позадински послови. Cron је препоручено подешавање. За још информација, молимо вас да погледате документацију .",
+ "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." : "Да би сервер исправно радио, важно је да се правилно подесе позадински послови. Cron је препоручено подешавање. За још информација, молимо вас да погледате документацију.",
"Last job execution ran {time}. Something seems wrong." : "Последњи посао се извршавао {time}. Изгледа да нешто није у реду.",
- "Last job ran {relativeTime}." : "Последњи посао се изврашавао {relativeTime}.",
+ "Last job ran {relativeTime}." : "Последњи посао се извршавао {relativeTime}.",
"Background job did not run yet!" : "Позадински посао се још увек није покренуо!",
"AJAX" : "AJAX",
- "Execute one task with each page loaded. Use case: Single user instance." : "Извршава један задатак за сваку учитану страницу. Случај употребе: инстанца са једним корисником",
+ "Execute one task with each page loaded. Use case: Single user instance." : "Извршава један задатак за сваку учитану страницу. Случај употребе: инстанца са једним корисником.",
"Webcron" : "Webcron",
"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 се регуструје у webcron сервису тако да се cron.php позива преко HTTP сваких 5 минута. Случај употребе: врло мала инстанца (1–5 корисника, у зависности од употребе).",
"Cron (Recommended)" : "Cron (Препоручено)",
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "Додај додатни и-мејл",
"Add" : "Додај",
"You do not have permissions to see the details of this user" : "Немате дозволе да видите детаље о овом кориснику",
+ "Edit display name" : "Уреди име за приказ",
"Add new password" : "Додај нову лозинку",
"Add new email address" : "Додај нову адресу е-поште",
"Add user to group" : "Додај корисника у групу",
"Set user as admin for" : "Додај корисника као администратора за",
"Select user quota" : "Одаберите корисничку квоту",
+ "Set the language" : "Постави језик",
"Delete user" : "Обриши корисника",
"Wipe all devices" : "Обриши све уређаје",
"Disable user" : "Искључи корисника",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "Е-пошта",
"Default language" : "Подразумевани језик",
"Add a new user" : "Додај новог корисника",
+ "Avatar" : "Аватар",
"Group admin for" : "Администратор групе за",
"Quota" : "Квота",
"User backend" : "Позадина за кориснике",
@@ -441,7 +444,7 @@ OC.L10N.register(
"Login" : "Пријава",
"SSL/TLS" : "SSL/TLS",
"Open documentation" : "Отвори документацију",
- "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно је да подесите сервер да може да шаље е-пошту, када нпр. треба послати ресетовање лозинке или нека обавештења.",
+ "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно је да подесите сервер тако да може да шаље е-пошту када нпр. треба послати ресетовање лозинке или нека обавештења.",
"Send mode" : "Режим слања",
"Encryption" : "Шифровање",
"Sendmail mode" : "Sendmail режим",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Ограничи кориснике да могу да деле само унутар групе",
"Exclude groups from sharing" : "Изузми групе из дељења",
"These groups will still be able to receive shares, but not to initiate them." : "Ове групе ће моћи да примају дељења, али не и да их праве.",
- "Allow username autocompletion in share dialog" : "Дозволи аутоматско довршавање корисничког имена у дијалогу за дељење",
- "Allow username autocompletion to users within the same groups" : "Дозволи аутоматско довршавање корисничког корисницима из исте групе",
"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)" : "Дозволи аутоматско довршавање када се уноси пуно име или и-мејл адреса (уз игнорисање подударања у телефонском именику и припадања истој групи)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Пресељење је у току. Сачекајте док се не заврши",
"Migration started …" : "Пресељење покренуто...",
"Address" : "Адреса",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Догодила се грешка за време захтева. Не може се наставити.",
"Plain" : "Обичан",
"NT LAN Manager" : "НТ ЛАН менаџер",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "Одаберите поставке позадинског посла",
"Recommended" : "Препоручено",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php треба да се извршава као системски корисник „%s“.",
+ "Allow username autocompletion in share dialog" : "Дозволи аутоматско довршавање корисничког имена у дијалогу за дељење",
+ "Allow username autocompletion to users within the same groups" : "Дозволи аутоматско довршавање корисничког корисницима из исте групе",
"Change privacy level of profile picture" : "Измени ниво приватности слике профила",
"Upload new" : "Отпреми нову",
"Select from Files" : "Изабери из фајлова",
diff --git a/apps/settings/l10n/sr.json b/apps/settings/l10n/sr.json
index ddc8fa1d262..e14695dc6da 100644
--- a/apps/settings/l10n/sr.json
+++ b/apps/settings/l10n/sr.json
@@ -229,12 +229,12 @@
"Copied!" : "Копирано!",
"Copy" : "Копирај",
"Could not copy app password. Please copy it manually." : "Не могу да копирам апликативну лозинку. Копирајте је ручно.",
- "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." : "Да би сервер исправно радио, важно је да се правилно подесе позадински послови. Cron је препоручено подешавање. За још информација, молимо вас да погледате документацију .",
+ "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." : "Да би сервер исправно радио, важно је да се правилно подесе позадински послови. Cron је препоручено подешавање. За још информација, молимо вас да погледате документацију.",
"Last job execution ran {time}. Something seems wrong." : "Последњи посао се извршавао {time}. Изгледа да нешто није у реду.",
- "Last job ran {relativeTime}." : "Последњи посао се изврашавао {relativeTime}.",
+ "Last job ran {relativeTime}." : "Последњи посао се извршавао {relativeTime}.",
"Background job did not run yet!" : "Позадински посао се још увек није покренуо!",
"AJAX" : "AJAX",
- "Execute one task with each page loaded. Use case: Single user instance." : "Извршава један задатак за сваку учитану страницу. Случај употребе: инстанца са једним корисником",
+ "Execute one task with each page loaded. Use case: Single user instance." : "Извршава један задатак за сваку учитану страницу. Случај употребе: инстанца са једним корисником.",
"Webcron" : "Webcron",
"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 се регуструје у webcron сервису тако да се cron.php позива преко HTTP сваких 5 минута. Случај употребе: врло мала инстанца (1–5 корисника, у зависности од употребе).",
"Cron (Recommended)" : "Cron (Препоручено)",
@@ -333,11 +333,13 @@
"Add additional email" : "Додај додатни и-мејл",
"Add" : "Додај",
"You do not have permissions to see the details of this user" : "Немате дозволе да видите детаље о овом кориснику",
+ "Edit display name" : "Уреди име за приказ",
"Add new password" : "Додај нову лозинку",
"Add new email address" : "Додај нову адресу е-поште",
"Add user to group" : "Додај корисника у групу",
"Set user as admin for" : "Додај корисника као администратора за",
"Select user quota" : "Одаберите корисничку квоту",
+ "Set the language" : "Постави језик",
"Delete user" : "Обриши корисника",
"Wipe all devices" : "Обриши све уређаје",
"Disable user" : "Искључи корисника",
@@ -359,6 +361,7 @@
"Email" : "Е-пошта",
"Default language" : "Подразумевани језик",
"Add a new user" : "Додај новог корисника",
+ "Avatar" : "Аватар",
"Group admin for" : "Администратор групе за",
"Quota" : "Квота",
"User backend" : "Позадина за кориснике",
@@ -439,7 +442,7 @@
"Login" : "Пријава",
"SSL/TLS" : "SSL/TLS",
"Open documentation" : "Отвори документацију",
- "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно је да подесите сервер да може да шаље е-пошту, када нпр. треба послати ресетовање лозинке или нека обавештења.",
+ "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно је да подесите сервер тако да може да шаље е-пошту када нпр. треба послати ресетовање лозинке или нека обавештења.",
"Send mode" : "Режим слања",
"Encryption" : "Шифровање",
"Sendmail mode" : "Sendmail режим",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "Ограничи кориснике да могу да деле само унутар групе",
"Exclude groups from sharing" : "Изузми групе из дељења",
"These groups will still be able to receive shares, but not to initiate them." : "Ове групе ће моћи да примају дељења, али не и да их праве.",
- "Allow username autocompletion in share dialog" : "Дозволи аутоматско довршавање корисничког имена у дијалогу за дељење",
- "Allow username autocompletion to users within the same groups" : "Дозволи аутоматско довршавање корисничког корисницима из исте групе",
"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)" : "Дозволи аутоматско довршавање када се уноси пуно име или и-мејл адреса (уз игнорисање подударања у телефонском именику и припадања истој групи)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "Пресељење је у току. Сачекајте док се не заврши",
"Migration started …" : "Пресељење покренуто...",
"Address" : "Адреса",
- "Avatar" : "Аватар",
"An error occured during the request. Unable to proceed." : "Догодила се грешка за време захтева. Не може се наставити.",
"Plain" : "Обичан",
"NT LAN Manager" : "НТ ЛАН менаџер",
@@ -544,6 +544,8 @@
"Pick background job setting" : "Одаберите поставке позадинског посла",
"Recommended" : "Препоручено",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php треба да се извршава као системски корисник „%s“.",
+ "Allow username autocompletion in share dialog" : "Дозволи аутоматско довршавање корисничког имена у дијалогу за дељење",
+ "Allow username autocompletion to users within the same groups" : "Дозволи аутоматско довршавање корисничког корисницима из исте групе",
"Change privacy level of profile picture" : "Измени ниво приватности слике профила",
"Upload new" : "Отпреми нову",
"Select from Files" : "Изабери из фајлова",
diff --git a/apps/settings/l10n/sv.js b/apps/settings/l10n/sv.js
index d6ae97f2d9e..c2236592032 100644
--- a/apps/settings/l10n/sv.js
+++ b/apps/settings/l10n/sv.js
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "Lägg till ytterligare e-post",
"Add" : "Lägg till",
"You do not have permissions to see the details of this user" : "Du har inte behörighet att se detaljerna för den här användaren",
+ "Edit display name" : "Ändra visningsnamn",
"Add new password" : "Lägg till nytt lösenord",
"Add new email address" : "Lägg till ny e-postadress",
"Add user to group" : "Lägg till användare i grupp",
"Set user as admin for" : "Gör användare till admin för",
"Select user quota" : "Välj användarens quota",
+ "Set the language" : "Ställ in språk",
"Delete user" : "Ta bort användare",
"Wipe all devices" : "Rensa alla enheter",
"Disable user" : "Stäng av användare",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "E-post",
"Default language" : "Standardspråk",
"Add a new user" : "Lägg till ny användare",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppadministratör för",
"Quota" : "Lagringsutrymme",
"User backend" : "Användarbackend",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Begränsa användare till att enbart kunna dela med användare i deras grupper",
"Exclude groups from sharing" : "Exkludera grupp från att dela",
"These groups will still be able to receive shares, but not to initiate them." : "Dessa grupper kommer fortfarande kunna ta emot delningar, men inte skapa delningar.",
- "Allow username autocompletion in share dialog" : "Tillåt autokomplettering av användarnamn i delningsdialogen",
- "Allow username autocompletion to users within the same groups" : "Tillåt autokomplettering av användarnamn till användare inom samma grupper",
"Allow username autocompletion to users based on phone number integration" : "Tillåt autokomplettering av användarnamn till användare baserad på telefonnummerintegration",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Om komplettering för \"samma grupp\" och \"telefonnummerintegration\" är aktiverade räcker det med en matchning i en av dem för att visa användaren.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Tillåt autokomplettering när du anger hela namnet eller e-postadressen (ignorera saknad telefonboksmatchning och att vara i samma grupp)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänta tills migrationen är klar",
"Migration started …" : "Migrering påbörjad ...",
"Address" : "Ort/Stad",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ett fel uppstod under förfrågan. Kan inte fortsätta.",
"Plain" : "Enkel",
"NT LAN Manager" : "NT LAN Manager",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "Välj inställning för bakgrundsjobb",
"Recommended" : "Rekomenderad",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php behöver exekveras av systemanvändaren \"%s\".",
+ "Allow username autocompletion in share dialog" : "Tillåt autokomplettering av användarnamn i delningsdialogen",
+ "Allow username autocompletion to users within the same groups" : "Tillåt autokomplettering av användarnamn till användare inom samma grupper",
"Change privacy level of profile picture" : "Ändra hemlighetsnivå för profilbild",
"Upload new" : "Ladda upp ny",
"Select from Files" : "Välj från Filer",
diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json
index b6b1719dacc..61a0478a1ae 100644
--- a/apps/settings/l10n/sv.json
+++ b/apps/settings/l10n/sv.json
@@ -333,11 +333,13 @@
"Add additional email" : "Lägg till ytterligare e-post",
"Add" : "Lägg till",
"You do not have permissions to see the details of this user" : "Du har inte behörighet att se detaljerna för den här användaren",
+ "Edit display name" : "Ändra visningsnamn",
"Add new password" : "Lägg till nytt lösenord",
"Add new email address" : "Lägg till ny e-postadress",
"Add user to group" : "Lägg till användare i grupp",
"Set user as admin for" : "Gör användare till admin för",
"Select user quota" : "Välj användarens quota",
+ "Set the language" : "Ställ in språk",
"Delete user" : "Ta bort användare",
"Wipe all devices" : "Rensa alla enheter",
"Disable user" : "Stäng av användare",
@@ -359,6 +361,7 @@
"Email" : "E-post",
"Default language" : "Standardspråk",
"Add a new user" : "Lägg till ny användare",
+ "Avatar" : "Avatar",
"Group admin for" : "Gruppadministratör för",
"Quota" : "Lagringsutrymme",
"User backend" : "Användarbackend",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "Begränsa användare till att enbart kunna dela med användare i deras grupper",
"Exclude groups from sharing" : "Exkludera grupp från att dela",
"These groups will still be able to receive shares, but not to initiate them." : "Dessa grupper kommer fortfarande kunna ta emot delningar, men inte skapa delningar.",
- "Allow username autocompletion in share dialog" : "Tillåt autokomplettering av användarnamn i delningsdialogen",
- "Allow username autocompletion to users within the same groups" : "Tillåt autokomplettering av användarnamn till användare inom samma grupper",
"Allow username autocompletion to users based on phone number integration" : "Tillåt autokomplettering av användarnamn till användare baserad på telefonnummerintegration",
"If autocompletion \"same group\" and \"phone number integration\" are enabled a match in either is enough to show the user." : "Om komplettering för \"samma grupp\" och \"telefonnummerintegration\" är aktiverade räcker det med en matchning i en av dem för att visa användaren.",
"Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)" : "Tillåt autokomplettering när du anger hela namnet eller e-postadressen (ignorera saknad telefonboksmatchning och att vara i samma grupp)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänta tills migrationen är klar",
"Migration started …" : "Migrering påbörjad ...",
"Address" : "Ort/Stad",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "Ett fel uppstod under förfrågan. Kan inte fortsätta.",
"Plain" : "Enkel",
"NT LAN Manager" : "NT LAN Manager",
@@ -544,6 +544,8 @@
"Pick background job setting" : "Välj inställning för bakgrundsjobb",
"Recommended" : "Rekomenderad",
"The cron.php needs to be executed by the system user \"%s\"." : "Cron.php behöver exekveras av systemanvändaren \"%s\".",
+ "Allow username autocompletion in share dialog" : "Tillåt autokomplettering av användarnamn i delningsdialogen",
+ "Allow username autocompletion to users within the same groups" : "Tillåt autokomplettering av användarnamn till användare inom samma grupper",
"Change privacy level of profile picture" : "Ändra hemlighetsnivå för profilbild",
"Upload new" : "Ladda upp ny",
"Select from Files" : "Välj från Filer",
diff --git a/apps/settings/l10n/th.js b/apps/settings/l10n/th.js
index 6c087df5e21..41b54f9ada9 100644
--- a/apps/settings/l10n/th.js
+++ b/apps/settings/l10n/th.js
@@ -204,6 +204,7 @@ OC.L10N.register(
"Email" : "อีเมล",
"Default language" : "ภาษาค่าเริ่มต้น",
"Add a new user" : "เพิ่มผู้ใช้ใหม่",
+ "Avatar" : "ภาพแทนตัว",
"Group admin for" : "ผู้ดูแลกลุ่มสำหรับ",
"Quota" : "โควต้า",
"User backend" : "แบ็กเอนด์ของผู้ใช้",
@@ -322,7 +323,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "การโยกย้ายกำลังทำงาน กรุณารอสักครู่จนกว่าการโยกย้ายจะเสร็จสิ้น",
"Migration started …" : "เริ่มต้นการโยกย้าย …",
"Address" : "ที่อยู่",
- "Avatar" : "ภาพแทนตัว",
"An error occured during the request. Unable to proceed." : "เกิดข้อผิดพลาดขณะส่งคำขอ ไม่สามารถดำเนินการต่อ",
"Plain" : "ธรรมดา",
"NT LAN Manager" : "ตัวจัดการ NT LAN",
diff --git a/apps/settings/l10n/th.json b/apps/settings/l10n/th.json
index a077e7be840..b6c22e712b8 100644
--- a/apps/settings/l10n/th.json
+++ b/apps/settings/l10n/th.json
@@ -202,6 +202,7 @@
"Email" : "อีเมล",
"Default language" : "ภาษาค่าเริ่มต้น",
"Add a new user" : "เพิ่มผู้ใช้ใหม่",
+ "Avatar" : "ภาพแทนตัว",
"Group admin for" : "ผู้ดูแลกลุ่มสำหรับ",
"Quota" : "โควต้า",
"User backend" : "แบ็กเอนด์ของผู้ใช้",
@@ -320,7 +321,6 @@
"Migration in progress. Please wait until the migration is finished" : "การโยกย้ายกำลังทำงาน กรุณารอสักครู่จนกว่าการโยกย้ายจะเสร็จสิ้น",
"Migration started …" : "เริ่มต้นการโยกย้าย …",
"Address" : "ที่อยู่",
- "Avatar" : "ภาพแทนตัว",
"An error occured during the request. Unable to proceed." : "เกิดข้อผิดพลาดขณะส่งคำขอ ไม่สามารถดำเนินการต่อ",
"Plain" : "ธรรมดา",
"NT LAN Manager" : "ตัวจัดการ NT LAN",
diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js
index c24921b9865..d0eff75ec18 100644
--- a/apps/settings/l10n/tr.js
+++ b/apps/settings/l10n/tr.js
@@ -361,6 +361,7 @@ OC.L10N.register(
"Email" : "E-posta",
"Default language" : "Varsayılan dil",
"Add a new user" : "Kullanıcı ekle",
+ "Avatar" : "Avatar",
"Group admin for" : "Şunun grup yöneticisi",
"Quota" : "Kota",
"User backend" : "Kullanıcı arka ucu",
@@ -485,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Kullanıcılar, yalnızca kendi gruplarındaki kullanıcılarla paylaşabilsin",
"Exclude groups from sharing" : "Gruplar paylaşıma katılmasın",
"These groups will still be able to receive shares, but not to initiate them." : "Bu gruplar paylaşımları alabilir ancak başlatamaz.",
- "Allow username autocompletion in share dialog" : "Paylaşım penceresinde kullanıcı adı otomatik olarak tamamlanabilsin",
- "Allow username autocompletion to users within the same groups" : "Aynı gruplardaki kullanıcıların kullanıcı adları otomatik olarak tamamlanabilsin",
"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)",
@@ -527,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Aktarılıyor. Lütfen işlem tamamlanana kadar bekleyin",
"Migration started …" : "Aktarım başladı …",
"Address" : "Adres",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "İstek sırasında bir sorun çıktı. İşlem sürdürülemiyor.",
"Plain" : "Düz",
"NT LAN Manager" : "NT ağ yöneticisi",
@@ -546,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Arka plan görevi ayarlarını seçin",
"Recommended" : "Önerilen",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php dosyası \"%s\" sistem kullanıcısı tarafından yürütülmelidir.",
+ "Allow username autocompletion in share dialog" : "Paylaşım penceresinde kullanıcı adı otomatik olarak tamamlanabilsin",
+ "Allow username autocompletion to users within the same groups" : "Aynı gruplardaki kullanıcıların kullanıcı adları otomatik olarak tamamlanabilsin",
"Change privacy level of profile picture" : "Profil görselinin gizlilik düzeyini değiştir",
"Upload new" : "Yeni yükle",
"Select from Files" : "Dosyalardan seç",
diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json
index 909f9e22576..610183c5b16 100644
--- a/apps/settings/l10n/tr.json
+++ b/apps/settings/l10n/tr.json
@@ -359,6 +359,7 @@
"Email" : "E-posta",
"Default language" : "Varsayılan dil",
"Add a new user" : "Kullanıcı ekle",
+ "Avatar" : "Avatar",
"Group admin for" : "Şunun grup yöneticisi",
"Quota" : "Kota",
"User backend" : "Kullanıcı arka ucu",
@@ -483,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Kullanıcılar, yalnızca kendi gruplarındaki kullanıcılarla paylaşabilsin",
"Exclude groups from sharing" : "Gruplar paylaşıma katılmasın",
"These groups will still be able to receive shares, but not to initiate them." : "Bu gruplar paylaşımları alabilir ancak başlatamaz.",
- "Allow username autocompletion in share dialog" : "Paylaşım penceresinde kullanıcı adı otomatik olarak tamamlanabilsin",
- "Allow username autocompletion to users within the same groups" : "Aynı gruplardaki kullanıcıların kullanıcı adları otomatik olarak tamamlanabilsin",
"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)",
@@ -525,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Aktarılıyor. Lütfen işlem tamamlanana kadar bekleyin",
"Migration started …" : "Aktarım başladı …",
"Address" : "Adres",
- "Avatar" : "Avatar",
"An error occured during the request. Unable to proceed." : "İstek sırasında bir sorun çıktı. İşlem sürdürülemiyor.",
"Plain" : "Düz",
"NT LAN Manager" : "NT ağ yöneticisi",
@@ -544,6 +542,8 @@
"Pick background job setting" : "Arka plan görevi ayarlarını seçin",
"Recommended" : "Önerilen",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php dosyası \"%s\" sistem kullanıcısı tarafından yürütülmelidir.",
+ "Allow username autocompletion in share dialog" : "Paylaşım penceresinde kullanıcı adı otomatik olarak tamamlanabilsin",
+ "Allow username autocompletion to users within the same groups" : "Aynı gruplardaki kullanıcıların kullanıcı adları otomatik olarak tamamlanabilsin",
"Change privacy level of profile picture" : "Profil görselinin gizlilik düzeyini değiştir",
"Upload new" : "Yeni yükle",
"Select from Files" : "Dosyalardan seç",
diff --git a/apps/settings/l10n/uk.js b/apps/settings/l10n/uk.js
index 73c091cb1d5..2419da2f43f 100644
--- a/apps/settings/l10n/uk.js
+++ b/apps/settings/l10n/uk.js
@@ -273,6 +273,7 @@ OC.L10N.register(
"Upload profile picture" : "Завантажте зображення профілю",
"Choose profile picture from Files" : "Виберіть зображення профілю з Файлів",
"Remove profile picture" : "Вилучити зображення профілю",
+ "The file must be a PNG or JPG" : "Файл повинен бути у форматі PNG або JPG",
"Picture provided by original account" : "Картинка надана оригінальним обліковим записом",
"Cancel" : "Скасувати",
"Set as profile picture" : "Установити як зображення профілю",
@@ -360,6 +361,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Default language" : "Мова за замовчуванням",
"Add a new user" : "Додати нового користувача",
+ "Avatar" : "Світлина",
"Group admin for" : "Адміністратор групи",
"Quota" : "Квота",
"User backend" : "Сервер користувача",
@@ -484,8 +486,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "Дозволити користувачам відкривати спільний доступ лише для користувачів з їхньої групи",
"Exclude groups from sharing" : "Виключити групи зі спільного доступу",
"These groups will still be able to receive shares, but not to initiate them." : "Ці групи зможуть отримувати спільні файли, але не зможуть відправляти їх.",
- "Allow username autocompletion in share dialog" : "Дозволити автозаповнення імені користувача в діалоговому вікні спільного доступу",
- "Allow username autocompletion to users within the same groups" : "Дозволити автозавершення імен користувачів для користувачів у тих самих групах",
"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)" : "Дозволити автозавершення під час введення повного імені або адреси електронної пошти (ігнорування відсутніх збігів телефонної книги та перебування в одній групі)",
@@ -526,7 +526,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Міграція триває. Будь ласка, зачекайте доки процес міграції завершиться",
"Migration started …" : "Міграцію розпочато ...",
"Address" : "Адреса",
- "Avatar" : "Світлина",
"An error occured during the request. Unable to proceed." : "Під час запиту сталася помилка. Не вдається продовжити.",
"Plain" : "Звичайний",
"NT LAN Manager" : "Менеджер NT LAN",
@@ -545,6 +544,8 @@ OC.L10N.register(
"Pick background job setting" : "Виберіть налаштування фонової роботи",
"Recommended" : "Рекомендуємо",
"The cron.php needs to be executed by the system user \"%s\"." : "Файл cron.php має бути запущений системним користувачем \"%s\".",
+ "Allow username autocompletion in share dialog" : "Дозволити автозаповнення імені користувача в діалоговому вікні спільного доступу",
+ "Allow username autocompletion to users within the same groups" : "Дозволити автозавершення імен користувачів для користувачів у тих самих групах",
"Change privacy level of profile picture" : "Змінити рівень конфіденційності зображення профілю",
"Upload new" : "Завантажити нове",
"Select from Files" : "Вибрати з файлів",
diff --git a/apps/settings/l10n/uk.json b/apps/settings/l10n/uk.json
index da78b17a0fc..5164d6f3fc8 100644
--- a/apps/settings/l10n/uk.json
+++ b/apps/settings/l10n/uk.json
@@ -271,6 +271,7 @@
"Upload profile picture" : "Завантажте зображення профілю",
"Choose profile picture from Files" : "Виберіть зображення профілю з Файлів",
"Remove profile picture" : "Вилучити зображення профілю",
+ "The file must be a PNG or JPG" : "Файл повинен бути у форматі PNG або JPG",
"Picture provided by original account" : "Картинка надана оригінальним обліковим записом",
"Cancel" : "Скасувати",
"Set as profile picture" : "Установити як зображення профілю",
@@ -358,6 +359,7 @@
"Email" : "E-mail",
"Default language" : "Мова за замовчуванням",
"Add a new user" : "Додати нового користувача",
+ "Avatar" : "Світлина",
"Group admin for" : "Адміністратор групи",
"Quota" : "Квота",
"User backend" : "Сервер користувача",
@@ -482,8 +484,6 @@
"Restrict users to only share with users in their groups" : "Дозволити користувачам відкривати спільний доступ лише для користувачів з їхньої групи",
"Exclude groups from sharing" : "Виключити групи зі спільного доступу",
"These groups will still be able to receive shares, but not to initiate them." : "Ці групи зможуть отримувати спільні файли, але не зможуть відправляти їх.",
- "Allow username autocompletion in share dialog" : "Дозволити автозаповнення імені користувача в діалоговому вікні спільного доступу",
- "Allow username autocompletion to users within the same groups" : "Дозволити автозавершення імен користувачів для користувачів у тих самих групах",
"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)" : "Дозволити автозавершення під час введення повного імені або адреси електронної пошти (ігнорування відсутніх збігів телефонної книги та перебування в одній групі)",
@@ -524,7 +524,6 @@
"Migration in progress. Please wait until the migration is finished" : "Міграція триває. Будь ласка, зачекайте доки процес міграції завершиться",
"Migration started …" : "Міграцію розпочато ...",
"Address" : "Адреса",
- "Avatar" : "Світлина",
"An error occured during the request. Unable to proceed." : "Під час запиту сталася помилка. Не вдається продовжити.",
"Plain" : "Звичайний",
"NT LAN Manager" : "Менеджер NT LAN",
@@ -543,6 +542,8 @@
"Pick background job setting" : "Виберіть налаштування фонової роботи",
"Recommended" : "Рекомендуємо",
"The cron.php needs to be executed by the system user \"%s\"." : "Файл cron.php має бути запущений системним користувачем \"%s\".",
+ "Allow username autocompletion in share dialog" : "Дозволити автозаповнення імені користувача в діалоговому вікні спільного доступу",
+ "Allow username autocompletion to users within the same groups" : "Дозволити автозавершення імен користувачів для користувачів у тих самих групах",
"Change privacy level of profile picture" : "Змінити рівень конфіденційності зображення профілю",
"Upload new" : "Завантажити нове",
"Select from Files" : "Вибрати з файлів",
diff --git a/apps/settings/l10n/vi.js b/apps/settings/l10n/vi.js
index fe63acbff84..ae537d2bde0 100644
--- a/apps/settings/l10n/vi.js
+++ b/apps/settings/l10n/vi.js
@@ -200,6 +200,7 @@ OC.L10N.register(
"Email" : "Email",
"Default language" : "Ngôn ngữ mặc định",
"Add a new user" : "Thêm người dùng mới",
+ "Avatar" : "Hình đại diện",
"Group admin for" : "Quản trị viên nhóm",
"Quota" : "Hạn ngạch",
"User backend" : "Trang cài đặt người dùng",
@@ -273,7 +274,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Chuyển đổi dữ liệu đang tiến hành. Vui lòng đợi cho đến khi quá trình di chuyển kết thúc",
"Migration started …" : "Chuyển đổi dữ liệu đã bắt đầu ...",
"Address" : "Địa chỉ",
- "Avatar" : "Hình đại diện",
"An error occured during the request. Unable to proceed." : "Đã xảy ra lỗi trong khi yêu cầu. Không thể tiến hành.",
"Enable encryption" : "Bật mã hóa",
"Upload new" : "Tải lên",
diff --git a/apps/settings/l10n/vi.json b/apps/settings/l10n/vi.json
index b5ae49222bf..838bbb99dec 100644
--- a/apps/settings/l10n/vi.json
+++ b/apps/settings/l10n/vi.json
@@ -198,6 +198,7 @@
"Email" : "Email",
"Default language" : "Ngôn ngữ mặc định",
"Add a new user" : "Thêm người dùng mới",
+ "Avatar" : "Hình đại diện",
"Group admin for" : "Quản trị viên nhóm",
"Quota" : "Hạn ngạch",
"User backend" : "Trang cài đặt người dùng",
@@ -271,7 +272,6 @@
"Migration in progress. Please wait until the migration is finished" : "Chuyển đổi dữ liệu đang tiến hành. Vui lòng đợi cho đến khi quá trình di chuyển kết thúc",
"Migration started …" : "Chuyển đổi dữ liệu đã bắt đầu ...",
"Address" : "Địa chỉ",
- "Avatar" : "Hình đại diện",
"An error occured during the request. Unable to proceed." : "Đã xảy ra lỗi trong khi yêu cầu. Không thể tiến hành.",
"Enable encryption" : "Bật mã hóa",
"Upload new" : "Tải lên",
diff --git a/apps/settings/l10n/zh_CN.js b/apps/settings/l10n/zh_CN.js
index 353a063dd59..27f3318378e 100644
--- a/apps/settings/l10n/zh_CN.js
+++ b/apps/settings/l10n/zh_CN.js
@@ -2,7 +2,7 @@ OC.L10N.register(
"settings",
{
"Private" : "私有",
- "Only visible to people matched via phone number integration through Talk on mobile" : "只对通过手机上 Talk 应用的电话号码整合功能匹配的人可见",
+ "Only visible to people matched via phone number integration through Talk on mobile" : "只对通过手机上Talk应用的电话号码整合功能匹配的人可见",
"Local" : "本地",
"Only visible to people on this instance and guests" : "仅对该实例上的人及来宾可见",
"Federated" : "联合云",
@@ -202,8 +202,8 @@ OC.L10N.register(
"iPad" : "iPad",
"{productName} iOS app" : "{productName} iOS 应用",
"{productName} Android app" : "{productName} 安卓应用",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android ",
+ "{productName} Talk for iOS" : "{productName}iOS版通话应用",
+ "{productName} Talk for Android" : "{productName}Android版通话应用",
"Sync client - {os}" : "同步客户端 - {os}",
"This session" : "当前会话",
"Device" : "设备",
@@ -354,6 +354,7 @@ OC.L10N.register(
"Email" : "电子邮件",
"Default language" : "默认语言",
"Add a new user" : "添加新用户",
+ "Avatar" : "头像",
"Group admin for" : "分组管理员",
"Quota" : "配额",
"User backend" : "用户来源",
@@ -476,8 +477,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "限制用户只与他们组中的用户共享",
"Exclude groups from sharing" : "在共享中排除组",
"These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取共享,但无法向他人共享。",
- "Allow username autocompletion in share dialog" : "在分享对话框中允许用户名自动完成",
- "Allow username autocompletion to users within the same groups" : "允许自动完成同一组内的用户的用户名",
"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)" : "输入全名或电子邮箱地址时,允许自动完成(忽略缺少的通讯录匹配及同组要求)",
@@ -518,7 +517,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "正在进行迁移。请稍等,直到迁移完成",
"Migration started …" : "迁移开始...",
"Address" : "地址",
- "Avatar" : "头像",
"An error occured during the request. Unable to proceed." : "请求期间发生错误。 无法继续。",
"Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理器",
@@ -537,6 +535,8 @@ OC.L10N.register(
"Pick background job setting" : "选择后台任务设置",
"Recommended" : "推荐",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php 需要被系统用户 \"%s\" 执行。",
+ "Allow username autocompletion in share dialog" : "在分享对话框中允许用户名自动完成",
+ "Allow username autocompletion to users within the same groups" : "允许自动完成同一组内的用户的用户名",
"Change privacy level of profile picture" : "更改个人头像的隐私级别",
"Upload new" : "上传",
"Select from Files" : "选择文件",
diff --git a/apps/settings/l10n/zh_CN.json b/apps/settings/l10n/zh_CN.json
index 9a8f8b5b66c..5f4fb7b2eb9 100644
--- a/apps/settings/l10n/zh_CN.json
+++ b/apps/settings/l10n/zh_CN.json
@@ -1,6 +1,6 @@
{ "translations": {
"Private" : "私有",
- "Only visible to people matched via phone number integration through Talk on mobile" : "只对通过手机上 Talk 应用的电话号码整合功能匹配的人可见",
+ "Only visible to people matched via phone number integration through Talk on mobile" : "只对通过手机上Talk应用的电话号码整合功能匹配的人可见",
"Local" : "本地",
"Only visible to people on this instance and guests" : "仅对该实例上的人及来宾可见",
"Federated" : "联合云",
@@ -200,8 +200,8 @@
"iPad" : "iPad",
"{productName} iOS app" : "{productName} iOS 应用",
"{productName} Android app" : "{productName} 安卓应用",
- "{productName} Talk for iOS" : "{productName} Talk for iOS",
- "{productName} Talk for Android" : "{productName} Talk for Android ",
+ "{productName} Talk for iOS" : "{productName}iOS版通话应用",
+ "{productName} Talk for Android" : "{productName}Android版通话应用",
"Sync client - {os}" : "同步客户端 - {os}",
"This session" : "当前会话",
"Device" : "设备",
@@ -352,6 +352,7 @@
"Email" : "电子邮件",
"Default language" : "默认语言",
"Add a new user" : "添加新用户",
+ "Avatar" : "头像",
"Group admin for" : "分组管理员",
"Quota" : "配额",
"User backend" : "用户来源",
@@ -474,8 +475,6 @@
"Restrict users to only share with users in their groups" : "限制用户只与他们组中的用户共享",
"Exclude groups from sharing" : "在共享中排除组",
"These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取共享,但无法向他人共享。",
- "Allow username autocompletion in share dialog" : "在分享对话框中允许用户名自动完成",
- "Allow username autocompletion to users within the same groups" : "允许自动完成同一组内的用户的用户名",
"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)" : "输入全名或电子邮箱地址时,允许自动完成(忽略缺少的通讯录匹配及同组要求)",
@@ -516,7 +515,6 @@
"Migration in progress. Please wait until the migration is finished" : "正在进行迁移。请稍等,直到迁移完成",
"Migration started …" : "迁移开始...",
"Address" : "地址",
- "Avatar" : "头像",
"An error occured during the request. Unable to proceed." : "请求期间发生错误。 无法继续。",
"Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理器",
@@ -535,6 +533,8 @@
"Pick background job setting" : "选择后台任务设置",
"Recommended" : "推荐",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php 需要被系统用户 \"%s\" 执行。",
+ "Allow username autocompletion in share dialog" : "在分享对话框中允许用户名自动完成",
+ "Allow username autocompletion to users within the same groups" : "允许自动完成同一组内的用户的用户名",
"Change privacy level of profile picture" : "更改个人头像的隐私级别",
"Upload new" : "上传",
"Select from Files" : "选择文件",
diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js
index 3745effbefe..0e0e010e4df 100644
--- a/apps/settings/l10n/zh_HK.js
+++ b/apps/settings/l10n/zh_HK.js
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "添加額外電郵地址",
"Add" : "新增",
"You do not have permissions to see the details of this user" : "您沒有檢視此用戶詳細資料的權限",
+ "Edit display name" : "編輯顯示名稱",
"Add new password" : "新增密碼",
"Add new email address" : "新增電郵地址",
"Add user to group" : "在群組中新增用戶",
"Set user as admin for" : "將用戶設定為管理員",
"Select user quota" : "選擇用戶配額",
+ "Set the language" : "設置語言",
"Delete user" : "刪除用戶",
"Wipe all devices" : "抹除所有裝置",
"Disable user" : "停用用戶",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "電郵地址",
"Default language" : "預設語言",
"Add a new user" : "新增用戶",
+ "Avatar" : "虛擬化身大頭照",
"Group admin for" : "群組管理員",
"Quota" : "容量限制",
"User backend" : "用戶後端系統",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "限制用戶僅能與他們群組中的其他用戶分享",
"Exclude groups from sharing" : "禁止特定群組分享檔案",
"These groups will still be able to receive shares, but not to initiate them." : "這些群組仍然能接受其他人的分享,但是沒有辦法發起分享。",
- "Allow username autocompletion in share dialog" : "在共享對話框中允許用戶名自動完成",
- "Allow username autocompletion to users within the same groups" : "允許對同一群組中的用戶自動完成用戶名",
"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)" : "輸入全名或電郵地址時,允許自動完成(忽略缺少的電話簿匹配項,並且位於同一群組中)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "正在進行遷移。請等候遷移結束",
"Migration started …" : "開始遷移……",
"Address" : "地址",
- "Avatar" : "虛擬化身大頭照",
"An error occured during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理程式",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "挑選後台作業設定",
"Recommended" : "建議",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php 必須由系統用戶「%s」執行。",
+ "Allow username autocompletion in share dialog" : "在共享對話框中允許用戶名自動完成",
+ "Allow username autocompletion to users within the same groups" : "允許對同一群組中的用戶自動完成用戶名",
"Change privacy level of profile picture" : "更改個人資料圖片的私隱級別",
"Upload new" : "上傳新的",
"Select from Files" : "從雲端檔案選擇",
diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json
index dc0f80bb47f..8e957f209a1 100644
--- a/apps/settings/l10n/zh_HK.json
+++ b/apps/settings/l10n/zh_HK.json
@@ -333,11 +333,13 @@
"Add additional email" : "添加額外電郵地址",
"Add" : "新增",
"You do not have permissions to see the details of this user" : "您沒有檢視此用戶詳細資料的權限",
+ "Edit display name" : "編輯顯示名稱",
"Add new password" : "新增密碼",
"Add new email address" : "新增電郵地址",
"Add user to group" : "在群組中新增用戶",
"Set user as admin for" : "將用戶設定為管理員",
"Select user quota" : "選擇用戶配額",
+ "Set the language" : "設置語言",
"Delete user" : "刪除用戶",
"Wipe all devices" : "抹除所有裝置",
"Disable user" : "停用用戶",
@@ -359,6 +361,7 @@
"Email" : "電郵地址",
"Default language" : "預設語言",
"Add a new user" : "新增用戶",
+ "Avatar" : "虛擬化身大頭照",
"Group admin for" : "群組管理員",
"Quota" : "容量限制",
"User backend" : "用戶後端系統",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "限制用戶僅能與他們群組中的其他用戶分享",
"Exclude groups from sharing" : "禁止特定群組分享檔案",
"These groups will still be able to receive shares, but not to initiate them." : "這些群組仍然能接受其他人的分享,但是沒有辦法發起分享。",
- "Allow username autocompletion in share dialog" : "在共享對話框中允許用戶名自動完成",
- "Allow username autocompletion to users within the same groups" : "允許對同一群組中的用戶自動完成用戶名",
"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)" : "輸入全名或電郵地址時,允許自動完成(忽略缺少的電話簿匹配項,並且位於同一群組中)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "正在進行遷移。請等候遷移結束",
"Migration started …" : "開始遷移……",
"Address" : "地址",
- "Avatar" : "虛擬化身大頭照",
"An error occured during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理程式",
@@ -544,6 +544,8 @@
"Pick background job setting" : "挑選後台作業設定",
"Recommended" : "建議",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php 必須由系統用戶「%s」執行。",
+ "Allow username autocompletion in share dialog" : "在共享對話框中允許用戶名自動完成",
+ "Allow username autocompletion to users within the same groups" : "允許對同一群組中的用戶自動完成用戶名",
"Change privacy level of profile picture" : "更改個人資料圖片的私隱級別",
"Upload new" : "上傳新的",
"Select from Files" : "從雲端檔案選擇",
diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js
index 2e791f3a279..45c78d64594 100644
--- a/apps/settings/l10n/zh_TW.js
+++ b/apps/settings/l10n/zh_TW.js
@@ -335,11 +335,13 @@ OC.L10N.register(
"Add additional email" : "新增額外電子郵件",
"Add" : "新增",
"You do not have permissions to see the details of this user" : "您沒有檢視此使用者詳細資料的權限",
+ "Edit display name" : "編輯顯示名稱",
"Add new password" : "新增密碼",
"Add new email address" : "新增電子郵件",
"Add user to group" : "新增使用者到群組",
"Set user as admin for" : "將使用者設定為管理員",
"Select user quota" : "選取使用者配額",
+ "Set the language" : "設定語言",
"Delete user" : "刪除使用者",
"Wipe all devices" : "抹除所有裝置",
"Disable user" : "停用使用者",
@@ -361,6 +363,7 @@ OC.L10N.register(
"Email" : "信箱",
"Default language" : "預設語言",
"Add a new user" : "新增使用者",
+ "Avatar" : "大頭照",
"Group admin for" : "群組管理員",
"Quota" : "容量限制",
"User backend" : "使用者資料後端",
@@ -485,8 +488,6 @@ OC.L10N.register(
"Restrict users to only share with users in their groups" : "限制使用者僅能與他們群組中的其他使用者分享",
"Exclude groups from sharing" : "禁止特定群組分享檔案",
"These groups will still be able to receive shares, but not to initiate them." : "這些群組仍然能接受其他人的分享,但是沒有辦法發起分享。",
- "Allow username autocompletion in share dialog" : "在分享對話框中允許使用者名稱自動完成",
- "Allow username autocompletion to users within the same groups" : "允許使用者自動完成在同一個群組中的使用者",
"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)" : "輸入全名或電子郵件地址時,允許自動完成(忽略缺少的通訊錄相符,以及在同一個群組中的)",
@@ -527,7 +528,6 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "正在進行遷移。請等候遷移結束",
"Migration started …" : "開始遷移……",
"Address" : "地址",
- "Avatar" : "大頭照",
"An error occured during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理程式",
@@ -546,6 +546,8 @@ OC.L10N.register(
"Pick background job setting" : "挑選背景工作設定",
"Recommended" : "建議",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php 必須由系統使用者「%s」執行。",
+ "Allow username autocompletion in share dialog" : "在分享對話框中允許使用者名稱自動完成",
+ "Allow username autocompletion to users within the same groups" : "允許使用者自動完成在同一個群組中的使用者",
"Change privacy level of profile picture" : "變更個人資料照片的隱私等級",
"Upload new" : "上傳新的",
"Select from Files" : "從雲端檔案選擇",
diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json
index 67ebffedaa5..ac268ca1ed8 100644
--- a/apps/settings/l10n/zh_TW.json
+++ b/apps/settings/l10n/zh_TW.json
@@ -333,11 +333,13 @@
"Add additional email" : "新增額外電子郵件",
"Add" : "新增",
"You do not have permissions to see the details of this user" : "您沒有檢視此使用者詳細資料的權限",
+ "Edit display name" : "編輯顯示名稱",
"Add new password" : "新增密碼",
"Add new email address" : "新增電子郵件",
"Add user to group" : "新增使用者到群組",
"Set user as admin for" : "將使用者設定為管理員",
"Select user quota" : "選取使用者配額",
+ "Set the language" : "設定語言",
"Delete user" : "刪除使用者",
"Wipe all devices" : "抹除所有裝置",
"Disable user" : "停用使用者",
@@ -359,6 +361,7 @@
"Email" : "信箱",
"Default language" : "預設語言",
"Add a new user" : "新增使用者",
+ "Avatar" : "大頭照",
"Group admin for" : "群組管理員",
"Quota" : "容量限制",
"User backend" : "使用者資料後端",
@@ -483,8 +486,6 @@
"Restrict users to only share with users in their groups" : "限制使用者僅能與他們群組中的其他使用者分享",
"Exclude groups from sharing" : "禁止特定群組分享檔案",
"These groups will still be able to receive shares, but not to initiate them." : "這些群組仍然能接受其他人的分享,但是沒有辦法發起分享。",
- "Allow username autocompletion in share dialog" : "在分享對話框中允許使用者名稱自動完成",
- "Allow username autocompletion to users within the same groups" : "允許使用者自動完成在同一個群組中的使用者",
"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)" : "輸入全名或電子郵件地址時,允許自動完成(忽略缺少的通訊錄相符,以及在同一個群組中的)",
@@ -525,7 +526,6 @@
"Migration in progress. Please wait until the migration is finished" : "正在進行遷移。請等候遷移結束",
"Migration started …" : "開始遷移……",
"Address" : "地址",
- "Avatar" : "大頭照",
"An error occured during the request. Unable to proceed." : "請求時發生錯誤。無法繼續。",
"Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理程式",
@@ -544,6 +544,8 @@
"Pick background job setting" : "挑選背景工作設定",
"Recommended" : "建議",
"The cron.php needs to be executed by the system user \"%s\"." : "cron.php 必須由系統使用者「%s」執行。",
+ "Allow username autocompletion in share dialog" : "在分享對話框中允許使用者名稱自動完成",
+ "Allow username autocompletion to users within the same groups" : "允許使用者自動完成在同一個群組中的使用者",
"Change privacy level of profile picture" : "變更個人資料照片的隱私等級",
"Upload new" : "上傳新的",
"Select from Files" : "從雲端檔案選擇",
diff --git a/apps/settings/lib/UserMigration/AccountMigrator.php b/apps/settings/lib/UserMigration/AccountMigrator.php
index e8c70624224..a779ad76c8d 100644
--- a/apps/settings/lib/UserMigration/AccountMigrator.php
+++ b/apps/settings/lib/UserMigration/AccountMigrator.php
@@ -84,7 +84,7 @@ class AccountMigrator implements IMigrator, ISizeEstimationMigrator {
/**
* {@inheritDoc}
*/
- public function getEstimatedExportSize(IUser $user): int {
+ public function getEstimatedExportSize(IUser $user): int|float {
$size = 100; // 100KiB for account JSON
try {
@@ -97,7 +97,7 @@ class AccountMigrator implements IMigrator, ISizeEstimationMigrator {
// Skip avatar in size estimate on failure
}
- return (int)ceil($size);
+ return ceil($size);
}
/**
diff --git a/apps/settings/src/admin.js b/apps/settings/src/admin.js
index e7220df3c91..8bdfa1d0770 100644
--- a/apps/settings/src/admin.js
+++ b/apps/settings/src/admin.js
@@ -286,4 +286,6 @@ window.addEventListener('DOMContentLoaded', () => {
if (document.getElementById('security-warning') !== null) {
setupChecks()
}
+
+ $('#shareAPI').removeClass('loading')
})
diff --git a/apps/settings/src/components/BasicSettings/BackgroundJob.vue b/apps/settings/src/components/BasicSettings/BackgroundJob.vue
index 17e77aff6c7..2befc5cce79 100644
--- a/apps/settings/src/components/BasicSettings/BackgroundJob.vue
+++ b/apps/settings/src/components/BasicSettings/BackgroundJob.vue
@@ -196,7 +196,7 @@ export default {
margin-top: 8px;
padding: 5px;
border-radius: var(--border-radius);
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
background-color: var(--color-error);
width: initial;
}
@@ -204,7 +204,7 @@ export default {
margin-top: 8px;
padding: 5px;
border-radius: var(--border-radius);
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
background-color: var(--color-warning);
width: initial;
}
diff --git a/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue b/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue
index c5517140cd2..b88f52e0df4 100644
--- a/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue
+++ b/apps/settings/src/components/PersonalInfo/DisplayNameSection.vue
@@ -23,6 +23,7 @@
<template>
<AccountPropertySection v-bind.sync="displayName"
:placeholder="t('settings', 'Your full name')"
+ autocomplete="username"
:is-editable="displayNameChangeSupported"
:on-validate="onValidate"
:on-save="onSave" />
diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
index 5fb59d3d797..43e7d3d63ee 100644
--- a/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
+++ b/apps/settings/src/components/PersonalInfo/EmailSection/Email.vue
@@ -26,11 +26,11 @@
<input :id="inputId"
ref="email"
type="email"
+ autocomplete="email"
:placeholder="inputPlaceholder"
:value="email"
:aria-describedby="helperText ? `${inputId}-helper-text` : ''"
autocapitalize="none"
- autocomplete="on"
autocorrect="off"
@input="onEmailChange">
diff --git a/apps/settings/src/components/PersonalInfo/LocationSection.vue b/apps/settings/src/components/PersonalInfo/LocationSection.vue
index e75075b6d1e..ceef7c432cd 100644
--- a/apps/settings/src/components/PersonalInfo/LocationSection.vue
+++ b/apps/settings/src/components/PersonalInfo/LocationSection.vue
@@ -22,6 +22,7 @@
<template>
<AccountPropertySection v-bind.sync="location"
+ autocomplete="address-level1"
:placeholder="t('settings', 'Your location')" />
</template>
diff --git a/apps/settings/src/components/PersonalInfo/OrganisationSection.vue b/apps/settings/src/components/PersonalInfo/OrganisationSection.vue
index 7a85d2fd647..b8ae3d846e5 100644
--- a/apps/settings/src/components/PersonalInfo/OrganisationSection.vue
+++ b/apps/settings/src/components/PersonalInfo/OrganisationSection.vue
@@ -22,6 +22,7 @@
<template>
<AccountPropertySection v-bind.sync="organisation"
+ autocomplete="organization"
:placeholder="t('settings', 'Your organisation')" />
</template>
diff --git a/apps/settings/src/components/PersonalInfo/PhoneSection.vue b/apps/settings/src/components/PersonalInfo/PhoneSection.vue
index ddb5cf33cff..3a156bd9403 100644
--- a/apps/settings/src/components/PersonalInfo/PhoneSection.vue
+++ b/apps/settings/src/components/PersonalInfo/PhoneSection.vue
@@ -23,6 +23,7 @@
<template>
<AccountPropertySection v-bind.sync="phone"
:placeholder="t('settings', 'Your phone number')"
+ autocomplete="tel"
type="tel"
:on-validate="onValidate" />
</template>
diff --git a/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue b/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue
index 0732486ea44..be11f75b702 100644
--- a/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue
+++ b/apps/settings/src/components/PersonalInfo/ProfileSection/EditProfileAnchorLink.vue
@@ -74,7 +74,7 @@ a {
padding: 0 16px;
margin: 14px auto;
border-radius: var(--border-radius-pill);
- opacity: 0.4;
+ color: var(--color-text-maxcontrast);
background-color: transparent;
.anchor-icon {
@@ -87,8 +87,8 @@ a {
&:hover,
&:focus,
&:active {
- opacity: 0.8;
- background-color: rgba(127, 127, 127, .25);
+ color: var(--color-main-text);
+ background-color: var(--color-background-dark);
}
&.disabled {
diff --git a/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue b/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue
index 8016fe9e459..960053aafe0 100644
--- a/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue
+++ b/apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue
@@ -161,12 +161,12 @@ export default {
&__header {
height: 70px;
border-radius: var(--border-radius-large) var(--border-radius-large) 0 0;
- background-color: var(--color-primary);
+ background-color: var(--color-primary-element);
background-image: var(--gradient-primary-background);
span {
bottom: 0;
- color: var(--color-primary-text);
+ color: var(--color-primary-element-text);
font-size: 18px;
font-weight: bold;
margin: 0 4px 8px 0;
diff --git a/apps/settings/src/components/PersonalInfo/RoleSection.vue b/apps/settings/src/components/PersonalInfo/RoleSection.vue
index ab9b9c910fe..82cb034600d 100644
--- a/apps/settings/src/components/PersonalInfo/RoleSection.vue
+++ b/apps/settings/src/components/PersonalInfo/RoleSection.vue
@@ -22,6 +22,7 @@
<template>
<AccountPropertySection v-bind.sync="role"
+ autocomplete="organization-title"
:placeholder="t('settings', 'Your role')" />
</template>
diff --git a/apps/settings/src/components/PersonalInfo/WebsiteSection.vue b/apps/settings/src/components/PersonalInfo/WebsiteSection.vue
index 1b8d9e6815d..79e7a90de00 100644
--- a/apps/settings/src/components/PersonalInfo/WebsiteSection.vue
+++ b/apps/settings/src/components/PersonalInfo/WebsiteSection.vue
@@ -23,6 +23,7 @@
<template>
<AccountPropertySection v-bind.sync="website"
:placeholder="t('settings', 'Your website')"
+ autocomplete="url"
type="url"
:on-validate="onValidate" />
</template>
diff --git a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
index 4da187e2b67..2329cf123f5 100644
--- a/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
+++ b/apps/settings/src/components/PersonalInfo/shared/AccountPropertySection.vue
@@ -45,8 +45,8 @@
:value="value"
:aria-describedby="helperText ? `${name}-helper-text` : ''"
autocapitalize="none"
- autocomplete="on"
autocorrect="off"
+ :autocomplete="autocomplete"
@input="onPropertyChange">
<div class="property__actions-container">
@@ -132,6 +132,10 @@ export default {
type: Function,
default: null,
},
+ autocomplete: {
+ type: String,
+ default: null,
+ },
},
data() {
diff --git a/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue b/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue
index d5d57c47c01..8290ece03c4 100644
--- a/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue
+++ b/apps/settings/src/components/PersonalInfo/shared/FederationControlAction.vue
@@ -98,7 +98,7 @@ export default {
}
.federation-actions__btn--active {
- background-color: var(--color-primary-light) !important;
- box-shadow: inset 2px 0 var(--color-primary) !important;
+ background-color: var(--color-primary-element-light) !important;
+ box-shadow: inset 2px 0 var(--color-primary-element) !important;
}
</style>
diff --git a/apps/settings/src/components/UserList.vue b/apps/settings/src/components/UserList.vue
index 6aa61ccf8da..235e9078243 100644
--- a/apps/settings/src/components/UserList.vue
+++ b/apps/settings/src/components/UserList.vue
@@ -21,7 +21,11 @@
-->
<template>
- <div id="app-content" class="user-list-grid" @scroll.passive="onScroll">
+ <table id="app-content"
+ role="grid"
+ :aria-label="t('settings', 'User\'s table')"
+ class="user-list-grid"
+ @scroll.passive="onScroll">
<NcModal v-if="showConfig.showNewUserForm" size="small" @close="closeModal">
<form id="new-user"
:disabled="loading.all"
@@ -142,6 +146,20 @@
<div v-if="showConfig.showStoragePath" class="storageLocation" />
<div v-if="showConfig.showUserBackend" class="userBackend" />
<div v-if="showConfig.showLastLogin" class="lastLogin" />
+ <div :class="{'icon-loading-small': loading.manager}" class="modal__item managers">
+ <NcMultiselect ref="manager"
+ v-model="newUser.manager"
+ :close-on-select="true"
+ :user-select="true"
+ :options="possibleManagers"
+ :placeholder="t('settings', 'Select user manager')"
+ class="multiselect-vue"
+ @search-change="searchUserManager"
+ label="displayname"
+ track-by="id">
+ <span slot="noResult">{{ t('settings', 'No results') }}</span>
+ </NcMultiselect>
+ </div>
<div class="user-actions">
<NcButton id="newsubmit"
type="primary"
@@ -152,85 +170,95 @@
</div>
</form>
</NcModal>
- <div id="grid-header"
- :class="{'sticky': scrolled && !showConfig.showNewUserForm}"
- class="row">
- <div id="headerAvatar" class="avatar" />
- <div id="headerName" class="name">
- <div class="subtitle">
- <strong>
- {{ t('settings', 'Display name') }}
- </strong>
- </div>
- {{ t('settings', 'Username') }}
- </div>
- <div id="headerPassword" class="password">
- {{ t('settings', 'Password') }}
- </div>
- <div id="headerAddress" class="mailAddress">
- {{ t('settings', 'Email') }}
- </div>
- <div id="headerGroups" class="groups">
- {{ t('settings', 'Groups') }}
- </div>
- <div v-if="subAdminsGroups.length>0 && settings.isAdmin"
- id="headerSubAdmins"
- class="subadmins">
- {{ t('settings', 'Group admin for') }}
- </div>
- <div id="headerQuota" class="quota">
- {{ t('settings', 'Quota') }}
- </div>
- <div v-if="showConfig.showLanguages"
- id="headerLanguages"
- class="languages">
- {{ t('settings', 'Language') }}
- </div>
+ <tbody>
+ <tr id="grid-header"
+ :class="{'sticky': scrolled && !showConfig.showNewUserForm}"
+ class="row">
+ <th id="headerAvatar" class="avatar">
+ <span class="hidden-visually"> {{ t('settings', 'Avatar') }} </span>
+ </th>
+ <th id="headerName" class="name">
+ <div class="subtitle">
+ <strong>
+ {{ t('settings', 'Display name') }}
+ </strong>
+ </div>
+ {{ t('settings', 'Username') }}
+ </th>
+ <th id="headerPassword" class="password">
+ {{ t('settings', 'Password') }}
+ </th>
+ <th id="headerAddress" class="mailAddress">
+ {{ t('settings', 'Email') }}
+ </th>
+ <th id="headerGroups" class="groups">
+ {{ t('settings', 'Groups') }}
+ </th>
+ <th v-if="subAdminsGroups.length>0 && settings.isAdmin"
+ id="headerSubAdmins"
+ class="subadmins">
+ {{ t('settings', 'Group admin for') }}
+ </th>
+ <th id="headerQuota" class="quota">
+ {{ t('settings', 'Quota') }}
+ </th>
+ <th v-if="showConfig.showLanguages"
+ id="headerLanguages"
+ class="languages">
+ {{ t('settings', 'Language') }}
+ </th>
- <div v-if="showConfig.showUserBackend || showConfig.showStoragePath"
- class="headerUserBackend userBackend">
- <div v-if="showConfig.showUserBackend" class="userBackend">
- {{ t('settings', 'User backend') }}
- </div>
- <div v-if="showConfig.showStoragePath"
- class="subtitle storageLocation">
- {{ t('settings', 'Storage location') }}
- </div>
- </div>
- <div v-if="showConfig.showLastLogin"
- class="headerLastLogin lastLogin">
- {{ t('settings', 'Last login') }}
- </div>
+ <th v-if="showConfig.showUserBackend || showConfig.showStoragePath"
+ class="headerUserBackend userBackend">
+ <div v-if="showConfig.showUserBackend" class="userBackend">
+ {{ t('settings', 'User backend') }}
+ </div>
+ <div v-if="showConfig.showStoragePath"
+ class="subtitle storageLocation">
+ {{ t('settings', 'Storage location') }}
+ </div>
+ </th>
+ <th v-if="showConfig.showLastLogin"
+ class="headerLastLogin lastLogin">
+ {{ t('settings', 'Last login') }}
+ </th>
+ <th id="headerManager" class="manager">
+ {{ t('settings', 'Manager') }}
+ </th>
+ <th class="userActions hidden-visually">
+ {{ t('settings', 'User actions') }}
+ </th>
+ </tr>
- <div class="userActions" />
- </div>
+ <user-row v-for="user in filteredUsers"
+ :key="user.id"
+ :external-actions="externalActions"
+ :groups="groups"
+ :languages="languages"
+ :quota-options="quotaOptions"
+ :settings="settings"
+ :show-config="showConfig"
+ :sub-admins-groups="subAdminsGroups"
+ :user="user"
+ :users="users"
+ :is-dark-theme="isDarkTheme" />
- <user-row v-for="user in filteredUsers"
- :key="user.id"
- :external-actions="externalActions"
- :groups="groups"
- :languages="languages"
- :quota-options="quotaOptions"
- :settings="settings"
- :show-config="showConfig"
- :sub-admins-groups="subAdminsGroups"
- :user="user"
- :is-dark-theme="isDarkTheme" />
- <InfiniteLoading ref="infiniteLoading" @infinite="infiniteHandler">
- <div slot="spinner">
- <div class="users-icon-loading icon-loading" />
- </div>
- <div slot="no-more">
- <div class="users-list-end" />
- </div>
- <div slot="no-results">
- <div id="emptycontent">
- <div class="icon-contacts-dark" />
- <h2>{{ t('settings', 'No users in here') }}</h2>
+ <InfiniteLoading ref="infiniteLoading" @infinite="infiniteHandler">
+ <div slot="spinner">
+ <div class="users-icon-loading icon-loading" />
+ </div>
+ <div slot="no-more">
+ <div class="users-list-end" />
</div>
- </div>
- </InfiniteLoading>
- </div>
+ <div slot="no-results">
+ <div id="emptycontent">
+ <div class="icon-contacts-dark" />
+ <h2>{{ t('settings', 'No users in here') }}</h2>
+ </div>
+ </div>
+ </InfiniteLoading>
+ </tbody>
+ </table>
</template>
<script>
@@ -257,6 +285,7 @@ const newUser = {
password: '',
mailAddress: '',
groups: [],
+ manager: '',
subAdminsGroups: [],
quota: defaultQuota,
language: {
@@ -301,6 +330,7 @@ export default {
groups: false,
},
scrolled: false,
+ possibleManagers: [],
searchQuery: '',
newUser: Object.assign({}, newUser),
}
@@ -411,6 +441,10 @@ export default {
},
},
+ async beforeMount() {
+ await this.searchUserManager()
+ },
+
mounted() {
if (!this.settings.canChangePassword) {
OC.Notification.showTemporary(t('settings', 'Password change is disabled because the master key is disabled'))
@@ -438,6 +472,14 @@ export default {
},
methods: {
+ async searchUserManager(query) {
+ await this.$store.dispatch('searchUsers', { offset: 0, limit: 10, search: query }).then(response => {
+ const users = response?.data ? Object.values(response?.data.ocs.data.users) : []
+ if (users.length > 0) {
+ this.possibleManagers = users
+ }
+ })
+ },
onScroll(event) {
this.scrolled = event.target.scrollTo > 0
},
@@ -521,6 +563,7 @@ export default {
subadmin: this.newUser.subAdminsGroups.map(group => group.id),
quota: this.newUser.quota.id,
language: this.newUser.language.code,
+ manager: this.newUser.manager.id,
})
.then(() => {
this.resetForm()
@@ -642,4 +685,12 @@ export default {
* prevent it). */
width: 0;
}
+
+ #app-content tbody tr {
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: var(--color-main-background);
+ }
+ }
</style>
diff --git a/apps/settings/src/components/UserList/UserRow.vue b/apps/settings/src/components/UserList/UserRow.vue
index f840b8cdf77..ce414210e99 100644
--- a/apps/settings/src/components/UserList/UserRow.vue
+++ b/apps/settings/src/components/UserList/UserRow.vue
@@ -56,26 +56,27 @@
:user="user"
:is-dark-theme="isDarkTheme"
:class="{'row--menu-opened': openedMenu}" />
- <div v-else
+ <tr v-else
:class="{
'disabled': loading.delete || loading.disable,
'row--menu-opened': openedMenu
}"
:data-id="user.id"
class="row row--editable">
- <div :class="{'icon-loading-small': loading.delete || loading.disable || loading.wipe}"
+ <td :class="{'icon-loading-small': loading.delete || loading.disable || loading.wipe}"
class="avatar">
<img v-if="!loading.delete && !loading.disable && !loading.wipe"
:src="generateAvatar(user.id, isDarkTheme)"
alt=""
height="32"
width="32">
- </div>
+ </td>
<!-- dirty hack to ellipsis on two lines -->
- <div v-if="user.backendCapabilities.setDisplayName" class="displayName">
+ <td v-if="user.backendCapabilities.setDisplayName" class="displayName">
<form :class="{'icon-loading-small': loading.displayName}"
class="displayName"
@submit.prevent="updateDisplayName">
+ <label class="hidden-visually" :for="'displayName'+user.id+rand">{{ t('settings', 'Edit display name') }}</label>
<input :id="'displayName'+user.id+rand"
ref="displayName"
:disabled="loading.displayName||loading.all"
@@ -89,52 +90,59 @@
type="submit"
value="">
</form>
- </div>
- <div v-else class="name">
+ </td>
+ <td v-else class="name">
{{ user.id }}
<div class="displayName subtitle">
<div :title="user.displayname.length > 20 ? user.displayname : ''" class="cellText">
{{ user.displayname }}
</div>
</div>
- </div>
- <form v-if="settings.canChangePassword && user.backendCapabilities.setPassword"
- :class="{'icon-loading-small': loading.password}"
- class="password"
- @submit.prevent="updatePassword">
- <input :id="'password'+user.id+rand"
- ref="password"
- :disabled="loading.password || loading.all"
- :minlength="minPasswordLength"
- maxlength="469"
- :placeholder="t('settings', 'Add new password')"
- autocapitalize="off"
- autocomplete="new-password"
- autocorrect="off"
- required
- spellcheck="false"
- type="password"
- value="">
- <input class="icon-confirm" type="submit" value="">
- </form>
- <div v-else />
- <form :class="{'icon-loading-small': loading.mailAddress}"
- class="mailAddress"
- @submit.prevent="updateEmail">
- <input :id="'mailAddress'+user.id+rand"
- ref="mailAddress"
- :disabled="loading.mailAddress||loading.all"
- :placeholder="t('settings', 'Add new email address')"
- :value="user.email"
- autocapitalize="off"
- autocomplete="new-password"
- autocorrect="off"
- spellcheck="false"
- type="email">
- <input class="icon-confirm" type="submit" value="">
- </form>
- <div :class="{'icon-loading-small': loading.groups}" class="groups">
- <NcMultiselect :close-on-select="false"
+ </td>
+ <td v-if="settings.canChangePassword && user.backendCapabilities.setPassword">
+ <form :class="{'icon-loading-small': loading.password}"
+ class="password"
+ @submit.prevent="updatePassword">
+ <label class="hidden-visually" :for="'password'+user.id+rand">{{ t('settings', 'Add new password') }}</label>
+ <input :id="'password'+user.id+rand"
+ ref="password"
+ :disabled="loading.password || loading.all"
+ :minlength="minPasswordLength"
+ maxlength="469"
+ :placeholder="t('settings', 'Add new password')"
+ autocapitalize="off"
+ autocomplete="new-password"
+ autocorrect="off"
+ required
+ spellcheck="false"
+ type="password"
+ value="">
+ <input class="icon-confirm" type="submit" value="">
+ </form>
+ </td>
+ <td v-else />
+ <td>
+ <form :class="{'icon-loading-small': loading.mailAddress}"
+ class="mailAddress"
+ @submit.prevent="updateEmail">
+ <label class="hidden-visually" :for="'mailAddress'+user.id+rand">{{ t('settings', 'Add new email address') }}</label>
+ <input :id="'mailAddress'+user.id+rand"
+ ref="mailAddress"
+ :disabled="loading.mailAddress||loading.all"
+ :placeholder="t('settings', 'Add new email address')"
+ :value="user.email"
+ autocapitalize="off"
+ autocomplete="new-password"
+ autocorrect="off"
+ spellcheck="false"
+ type="email">
+ <input class="icon-confirm" type="submit" value="">
+ </form>
+ </td>
+ <td :class="{'icon-loading-small': loading.groups}" class="groups">
+ <label class="hidden-visually" :for="'groups'+user.id+rand">{{ t('settings', 'Add user to group') }}</label>
+ <NcMultiselect :id="'groups'+user.id+rand"
+ :close-on-select="false"
:disabled="loading.groups||loading.all"
:limit="2"
:multiple="true"
@@ -152,11 +160,13 @@
@tag="createGroup">
<span slot="noResult">{{ t('settings', 'No results') }}</span>
</NcMultiselect>
- </div>
- <div v-if="subAdminsGroups.length>0 && settings.isAdmin"
+ </td>
+ <td v-if="subAdminsGroups.length>0 && settings.isAdmin"
:class="{'icon-loading-small': loading.subadmins}"
class="subadmins">
- <NcMultiselect :close-on-select="false"
+ <label class="hidden-visually" :for="'subadmins'+user.id+rand">{{ t('settings', 'Set user as admin for') }}</label>
+ <NcMultiselect :id="'subadmins'+user.id+rand"
+ :close-on-select="false"
:disabled="loading.subadmins||loading.all"
:limit="2"
:multiple="true"
@@ -171,11 +181,13 @@
@select="addUserSubAdmin">
<span slot="noResult">{{ t('settings', 'No results') }}</span>
</NcMultiselect>
- </div>
- <div :title="usedSpace"
+ </td>
+ <td :title="usedSpace"
:class="{'icon-loading-small': loading.quota}"
class="quota">
- <NcMultiselect :allow-empty="false"
+ <label class="hidden-visually" :for="'quota'+user.id+rand">{{ t('settings', 'Select user quota') }}</label>
+ <NcMultiselect :id="'quota'+user.id+rand"
+ :allow-empty="false"
:disabled="loading.quota||loading.all"
:options="quotaOptions"
:placeholder="t('settings', 'Select user quota')"
@@ -187,11 +199,13 @@
track-by="id"
@input="setUserQuota"
@tag="validateQuota" />
- </div>
- <div v-if="showConfig.showLanguages"
+ </td>
+ <td v-if="showConfig.showLanguages"
:class="{'icon-loading-small': loading.languages}"
class="languages">
- <NcMultiselect :allow-empty="false"
+ <label class="hidden-visually" :for="'language'+user.id+rand">{{ t('settings', 'Set the language') }}</label>
+ <NcMultiselect :id="'language'+user.id+rand"
+ :allow-empty="false"
:disabled="loading.languages||loading.all"
:options="languages"
:placeholder="t('settings', 'No language set')"
@@ -202,14 +216,30 @@
label="name"
track-by="code"
@input="setUserLanguage" />
- </div>
+ </td>
+ <td :class="{'icon-loading-small': loading.manager}" class="managers">
+ <NcMultiselect ref="manager"
+ v-model="currentManager"
+ :close-on-select="true"
+ :user-select="true"
+ :options="possibleManagers"
+ :placeholder="t('settings', 'Select manager')"
+ class="multiselect-vue"
+ label="displayname"
+ track-by="id"
+ @search-change="searchUserManager"
+ @remove="updateUserManager"
+ @select="updateUserManager">
+ <span slot="noResult">{{ t('settings', 'No results') }}</span>
+ </NcMultiselect>
+ </td>
<!-- don't show this on edit mode -->
- <div v-if="showConfig.showStoragePath || showConfig.showUserBackend"
+ <td v-if="showConfig.showStoragePath || showConfig.showUserBackend"
class="storageLocation" />
- <div v-if="showConfig.showLastLogin" />
+ <td v-if="showConfig.showLastLogin" />
- <div class="userActions">
+ <td class="userActions">
<div v-if="!loading.all"
class="toggleUserActions">
<NcActions>
@@ -231,8 +261,8 @@
<div class="icon-checkmark" />
{{ feedbackMessage }}
</div>
- </div>
- </div>
+ </td>
+ </tr>
</template>
<script>
@@ -261,6 +291,10 @@ export default {
},
mixins: [UserRowMixin],
props: {
+ users: {
+ type: Array,
+ required: true,
+ },
user: {
type: Object,
required: true,
@@ -303,6 +337,8 @@ export default {
rand: parseInt(Math.random() * 1000),
openedMenu: false,
feedbackMessage: '',
+ possibleManagers: [],
+ currentManager: '',
editing: false,
loading: {
all: false,
@@ -316,10 +352,12 @@ export default {
disable: false,
languages: false,
wipe: false,
+ manager: false,
},
}
},
computed: {
+
/* USER POPOVERMENU ACTIONS */
userActions() {
const actions = [
@@ -349,6 +387,12 @@ export default {
return actions.concat(this.externalActions)
},
},
+ async beforeMount() {
+ await this.searchUserManager()
+ if (this.user.manager) {
+ await this.initManager(this.user.manager)
+ }
+ },
methods: {
/* MENU HANDLING */
@@ -385,6 +429,34 @@ export default {
)
},
+ filterManagers(managers) {
+ return managers.filter((manager) => manager.id !== this.user.id)
+ },
+ async initManager(userId) {
+ await this.$store.dispatch('getUser', userId).then(response => {
+ this.currentManager = response?.data.ocs.data
+ })
+ },
+ async searchUserManager(query) {
+ await this.$store.dispatch('searchUsers', { offset: 0, limit: 10, search: query }).then(response => {
+ const users = response?.data ? this.filterManagers(Object.values(response?.data.ocs.data.users)) : []
+ if (users.length > 0) {
+ this.possibleManagers = users
+ }
+ })
+ },
+
+ updateUserManager(manager) {
+ this.loading.manager = true
+ this.$store.dispatch('setUserData', {
+ userid: this.user.id,
+ key: 'manager',
+ value: this.currentManager ? this.currentManager.id : '',
+ }).then(() => {
+ this.loading.manager = false
+ })
+ },
+
deleteUser() {
const userid = this.user.id
OC.dialogs.confirmDestructive(
@@ -686,4 +758,11 @@ export default {
.row::v-deep .multiselect__single {
z-index: auto !important;
}
+ .displayName input,
+ .password input,
+ .mailAddress input {
+ width: 100%;
+ height: 44px!important;
+ border: 2px solid var(--color-border-dark);
+ }
</style>
diff --git a/apps/settings/src/components/UserList/UserRowSimple.vue b/apps/settings/src/components/UserList/UserRowSimple.vue
index 8f5e3ae8e84..6da45f804c2 100644
--- a/apps/settings/src/components/UserList/UserRowSimple.vue
+++ b/apps/settings/src/components/UserList/UserRowSimple.vue
@@ -1,16 +1,16 @@
<template>
- <div class="row"
+ <tr class="row"
:class="{'disabled': loading.delete || loading.disable}"
:data-id="user.id">
- <div class="avatar" :class="{'icon-loading-small': loading.delete || loading.disable || loading.wipe}">
+ <td class="avatar" :class="{'icon-loading-small': loading.delete || loading.disable || loading.wipe}">
<img v-if="!loading.delete && !loading.disable && !loading.wipe"
alt=""
width="32"
height="32"
:src="generateAvatar(user.id, isDarkTheme)">
- </div>
+ </td>
<!-- dirty hack to ellipsis on two lines -->
- <div class="name">
+ <td class="name">
<div class="displayName subtitle">
<div :title="user.displayname.length > 20 ? user.displayname : ''" class="cellText">
<strong>
@@ -19,20 +19,20 @@
</div>
</div>
{{ user.id }}
- </div>
- <div />
- <div class="mailAddress">
+ </td>
+ <td />
+ <td class="mailAddress">
<div :title="user.email !== null && user.email.length > 20 ? user.email : ''" class="cellText">
{{ user.email }}
</div>
- </div>
- <div class="groups">
+ </td>
+ <td class="groups">
{{ userGroupsLabels }}
- </div>
- <div v-if="subAdminsGroups.length > 0 && settings.isAdmin" class="subAdminsGroups">
+ </td>
+ <td v-if="subAdminsGroups.length > 0 && settings.isAdmin" class="subAdminsGroups">
{{ userSubAdminsGroupsLabels }}
- </div>
- <div class="userQuota">
+ </td>
+ <td class="userQuota">
<div class="quota">
{{ userQuota }} ({{ usedSpace }})
<progress class="quota-user-progress"
@@ -40,23 +40,25 @@
:value="usedQuota"
max="100" />
</div>
- </div>
- <div v-if="showConfig.showLanguages" class="languages">
+ </td>
+ <td v-if="showConfig.showLanguages" class="languages">
{{ userLanguage.name }}
- </div>
- <div v-if="showConfig.showUserBackend || showConfig.showStoragePath" class="userBackend">
+ </td>
+ <td v-if="showConfig.showUserBackend || showConfig.showStoragePath" class="userBackend">
<div v-if="showConfig.showUserBackend" class="userBackend">
{{ user.backend }}
</div>
<div v-if="showConfig.showStoragePath" :title="user.storageLocation" class="storageLocation subtitle">
{{ user.storageLocation }}
</div>
- </div>
- <div v-if="showConfig.showLastLogin" :title="userLastLoginTooltip" class="lastLogin">
+ </td>
+ <td v-if="showConfig.showLastLogin" :title="userLastLoginTooltip" class="lastLogin">
{{ userLastLogin }}
- </div>
-
- <div class="userActions">
+ </td>
+ <td class="managers">
+ {{ user.manager }}
+ </td>
+ <td class="userActions">
<div v-if="canEdit && !loading.all" class="toggleUserActions">
<NcActions>
<NcActionButton icon="icon-rename"
@@ -78,8 +80,8 @@
<div class="icon-checkmark" />
{{ feedbackMessage }}
</div>
- </div>
- </div>
+ </td>
+ </tr>
</template>
<script>
@@ -202,4 +204,7 @@ export default {
background-color: var(--color-main-background);
border: 0;
}
+ .row .name {
+ padding-left: 0px!important;
+ }
</style>
diff --git a/apps/settings/src/store/users.js b/apps/settings/src/store/users.js
index f1941aa6704..ab8105ecb51 100644
--- a/apps/settings/src/store/users.js
+++ b/apps/settings/src/store/users.js
@@ -254,6 +254,41 @@ let searchRequestCancelSource = null
const actions = {
/**
+ * search users
+ *
+ * @param {object} context store context
+ * @param {object} options destructuring object
+ * @param {number} options.offset List offset to request
+ * @param {number} options.limit List number to return from offset
+ * @param {string} options.search Search amongst users
+ * @return {Promise}
+ */
+ searchUsers(context, { offset, limit, search }) {
+ search = typeof search === 'string' ? search : ''
+
+ return api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {
+ if (!axios.isCancel(error)) {
+ context.commit('API_FAILURE', error)
+ }
+ })
+ },
+
+ /**
+ * Get user details
+ *
+ * @param {object} context store context
+ * @param {string} userId user id
+ * @return {Promise}
+ */
+ getUser(context, userId) {
+ return api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {
+ if (!axios.isCancel(error)) {
+ context.commit('API_FAILURE', error)
+ }
+ })
+ },
+
+ /**
* Get all users with full details
*
* @param {object} context store context
@@ -548,11 +583,12 @@ const actions = {
* @param {string} options.subadmin User subadmin groups
* @param {string} options.quota User email
* @param {string} options.language User language
+ * @param {string} options.manager User manager
* @return {Promise}
*/
- addUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language }) {
+ addUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {
return api.requireAdmin().then((response) => {
- return api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language })
+ return api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })
.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))
.catch((error) => { throw error })
}).catch((error) => {
@@ -605,8 +641,8 @@ const actions = {
* @return {Promise}
*/
setUserData(context, { userid, key, value }) {
- const allowedEmpty = ['email', 'displayname']
- if (['email', 'language', 'quota', 'displayname', 'password'].indexOf(key) !== -1) {
+ const allowedEmpty = ['email', 'displayname', 'manager']
+ if (['email', 'language', 'quota', 'displayname', 'password', 'manager'].indexOf(key) !== -1) {
// We allow empty email or displayname
if (typeof value === 'string'
&& (
diff --git a/apps/settings/templates/settings/admin/overview.php b/apps/settings/templates/settings/admin/overview.php
index ef70374f270..c42e1e4efb8 100644
--- a/apps/settings/templates/settings/admin/overview.php
+++ b/apps/settings/templates/settings/admin/overview.php
@@ -68,7 +68,7 @@
<!-- should be the last part, so Updater can follow if enabled (it has no heading therefore). -->
<h2><?php p($l->t('Version'));?></h2>
<?php if ($theme->getTitle() === 'Nextcloud'): ?>
- <p><strong><a href="<?php print_unescaped($theme->getBaseUrl()); ?>" rel="noreferrer noopener" target="_blank">Nextcloud Hub 4</a> (<?php p(OC_Util::getHumanVersion()) ?>)</strong></p>
+ <p><strong><a href="<?php print_unescaped($theme->getBaseUrl()); ?>" rel="noreferrer noopener" target="_blank">Nextcloud Hub 5</a> (<?php p(OC_Util::getHumanVersion()) ?>)</strong></p>
<?php else: ?>
<p><strong><a href="<?php print_unescaped($theme->getBaseUrl()); ?>" rel="noreferrer noopener" target="_blank"><?php p($theme->getTitle()); ?></a> <?php p(OC_Util::getHumanVersion()) ?></strong></p>
<?php endif; ?>
diff --git a/apps/settings/templates/settings/admin/sharing.php b/apps/settings/templates/settings/admin/sharing.php
index d2c542248c1..709c36a7b7b 100644
--- a/apps/settings/templates/settings/admin/sharing.php
+++ b/apps/settings/templates/settings/admin/sharing.php
@@ -27,7 +27,7 @@
?>
-<div class="section" id="shareAPI">
+<div class="section loading" id="shareAPI">
<h2><?php p($l->t('Sharing'));?></h2>
<?php if ($_['sharingAppEnabled'] === false) { ?>
<p class="warning"><?php p($l->t('You need to enable the File sharing App.')); ?></p>
@@ -209,7 +209,7 @@
<?php if ($_['allowShareDialogUserEnumeration'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapi_allow_share_dialog_user_enumeration"><?php p($l->t('Allow username autocompletion in share dialog'));?></label><br />
+ <label for="shareapi_allow_share_dialog_user_enumeration"><?php p($l->t('Allow username autocompletion in share dialog and allow access to the system address book'));?></label><br />
</p>
<p id="shareapi_restrict_user_enumeration_to_group_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
@@ -219,7 +219,7 @@
<?php if ($_['restrictUserEnumerationToGroup'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapi_restrict_user_enumeration_to_group"><?php p($l->t('Allow username autocompletion to users within the same groups'));?></label><br />
+ <label for="shareapi_restrict_user_enumeration_to_group"><?php p($l->t('Allow username autocompletion to users within the same groups and limit system address books to users in the same groups'));?></label><br />
</p>
<p id="shareapi_restrict_user_enumeration_to_phone_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
diff --git a/apps/systemtags/l10n/eu.js b/apps/systemtags/l10n/eu.js
index b2cacf931e4..c839760a19f 100644
--- a/apps/systemtags/l10n/eu.js
+++ b/apps/systemtags/l10n/eu.js
@@ -49,6 +49,10 @@ OC.L10N.register(
"Collaborative tagging functionality which shares tags among users." : "Etiketak erabiltzaileen artean partekatzen dituen lankidetzazko etiketatze funtzionalitatea.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Etiketak erabiltzaileen artean partekatzen dituen lankidetzazko etiketatze funtzionalitatea. Bikaina taldeentzat.\n\t(Maizter anitzeko instalazioa duen hornitzailea bazara, gomendatzen da aplikazio hau desaktibatzea etiketak partekatzen dira eta.)",
"Failed to load tags" : "Etiketak kargatzeak huts egin du",
+ "Failed to load selected tags" : "Hautatutako etiketa kargatzeak huts egin du",
+ "Failed to select tag" : "Etiketa hautatzeak huts egin du",
+ "Failed to create tag" : "Etiketa sortzeak huts egin du",
+ "Failed to delete tag" : "Etiketa ezabatzeak huts egin du",
"Tagged files" : "Etiketatutako fitxategiak",
"Select tags to filter by" : "Hautatu etiketak iragazteko",
"No tags found" : "Ez da etiketarik aurkitu",
diff --git a/apps/systemtags/l10n/eu.json b/apps/systemtags/l10n/eu.json
index afdeea8d3f1..4dbf4c9d199 100644
--- a/apps/systemtags/l10n/eu.json
+++ b/apps/systemtags/l10n/eu.json
@@ -47,6 +47,10 @@
"Collaborative tagging functionality which shares tags among users." : "Etiketak erabiltzaileen artean partekatzen dituen lankidetzazko etiketatze funtzionalitatea.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Etiketak erabiltzaileen artean partekatzen dituen lankidetzazko etiketatze funtzionalitatea. Bikaina taldeentzat.\n\t(Maizter anitzeko instalazioa duen hornitzailea bazara, gomendatzen da aplikazio hau desaktibatzea etiketak partekatzen dira eta.)",
"Failed to load tags" : "Etiketak kargatzeak huts egin du",
+ "Failed to load selected tags" : "Hautatutako etiketa kargatzeak huts egin du",
+ "Failed to select tag" : "Etiketa hautatzeak huts egin du",
+ "Failed to create tag" : "Etiketa sortzeak huts egin du",
+ "Failed to delete tag" : "Etiketa ezabatzeak huts egin du",
"Tagged files" : "Etiketatutako fitxategiak",
"Select tags to filter by" : "Hautatu etiketak iragazteko",
"No tags found" : "Ez da etiketarik aurkitu",
diff --git a/apps/systemtags/l10n/ru.js b/apps/systemtags/l10n/ru.js
index e7c630222d4..1d258e23af7 100644
--- a/apps/systemtags/l10n/ru.js
+++ b/apps/systemtags/l10n/ru.js
@@ -48,7 +48,16 @@ OC.L10N.register(
"Collaborative tags" : "Метки совместной работы",
"Collaborative tagging functionality which shares tags among users." : "Совместная работа с метками файлов.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Совместная работа с метками файлов, предназначенная для групп пользователей. (Провайдерам с большим количеством клиентов рекомендуется отключить это приложение, так как метки являются общими).",
+ "Search or create collaborative tags" : "Поиск или создание совместных тегов",
+ "Collaborative tags …" : "Совместные теги ...",
+ "No tags to select, type to create a new tag" : "Нет тегов для выбора. Введите что-нибудь для создания нового тега",
"Failed to load tags" : "Не удалось загрузить метки",
+ "Failed to load selected tags" : "Не удалось загрузить выбранный тег",
+ "Failed to select tag" : "Не удалось выбрать тег",
+ "Failed to create tag" : "Не удалось создать тег",
+ "Failed to delete tag" : "Не удалось удалить тег",
+ "Failed to load last used tags" : "Не удалось загрузить последние использованные метки",
+ "Missing \"Content-Location\" header" : "Отсутствует заголовок «Content-Location»",
"Tagged files" : "Помеченные файлы",
"Select tags to filter by" : "Выберите метки для отбора",
"No tags found" : "Меток не найдено",
diff --git a/apps/systemtags/l10n/ru.json b/apps/systemtags/l10n/ru.json
index 73ca4b5c181..adf958f58e0 100644
--- a/apps/systemtags/l10n/ru.json
+++ b/apps/systemtags/l10n/ru.json
@@ -46,7 +46,16 @@
"Collaborative tags" : "Метки совместной работы",
"Collaborative tagging functionality which shares tags among users." : "Совместная работа с метками файлов.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Совместная работа с метками файлов, предназначенная для групп пользователей. (Провайдерам с большим количеством клиентов рекомендуется отключить это приложение, так как метки являются общими).",
+ "Search or create collaborative tags" : "Поиск или создание совместных тегов",
+ "Collaborative tags …" : "Совместные теги ...",
+ "No tags to select, type to create a new tag" : "Нет тегов для выбора. Введите что-нибудь для создания нового тега",
"Failed to load tags" : "Не удалось загрузить метки",
+ "Failed to load selected tags" : "Не удалось загрузить выбранный тег",
+ "Failed to select tag" : "Не удалось выбрать тег",
+ "Failed to create tag" : "Не удалось создать тег",
+ "Failed to delete tag" : "Не удалось удалить тег",
+ "Failed to load last used tags" : "Не удалось загрузить последние использованные метки",
+ "Missing \"Content-Location\" header" : "Отсутствует заголовок «Content-Location»",
"Tagged files" : "Помеченные файлы",
"Select tags to filter by" : "Выберите метки для отбора",
"No tags found" : "Меток не найдено",
diff --git a/apps/systemtags/l10n/uk.js b/apps/systemtags/l10n/uk.js
index 2f5aaf9e595..5ed202aa4c5 100644
--- a/apps/systemtags/l10n/uk.js
+++ b/apps/systemtags/l10n/uk.js
@@ -48,6 +48,16 @@ OC.L10N.register(
"Collaborative tags" : "Позначки для співпраці",
"Collaborative tagging functionality which shares tags among users." : "Функція спільного додавання тегів, яка ділиться тегами між користувачами.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Функція спільного додавання тегів, яка ділиться тегами між користувачами. Чудово підходить для команд. \n(Якщо ви є провайдером із установкою з кількома клієнтами, радимо вимкнути цю програму, оскільки теги є спільними.)",
+ "Search or create collaborative tags" : "Пошук або створення спільних тегів",
+ "Collaborative tags …" : "Спільні теги ...",
+ "No tags to select, type to create a new tag" : "Немає тегів для вибору, введіть, щоб створити новий тег",
+ "Failed to load tags" : "Не вдалося завантажити теги",
+ "Failed to load selected tags" : "Не вдалося завантажити вибрані теги",
+ "Failed to select tag" : "Не вдалося вибрати тег",
+ "Failed to create tag" : "Не вдалося створити тег",
+ "Failed to delete tag" : "Не вдалося видалити тег",
+ "Failed to load last used tags" : "Не вдалося завантажити останні теги",
+ "Missing \"Content-Location\" header" : "Відсутній заголовок \"Content-Location\"",
"Tagged files" : "Файли з позначками",
"Select tags to filter by" : "Фільтр вибору позначок за",
"No tags found" : "Не знайдено позначок",
diff --git a/apps/systemtags/l10n/uk.json b/apps/systemtags/l10n/uk.json
index 955884f27a0..c93c8862745 100644
--- a/apps/systemtags/l10n/uk.json
+++ b/apps/systemtags/l10n/uk.json
@@ -46,6 +46,16 @@
"Collaborative tags" : "Позначки для співпраці",
"Collaborative tagging functionality which shares tags among users." : "Функція спільного додавання тегів, яка ділиться тегами між користувачами.",
"Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Функція спільного додавання тегів, яка ділиться тегами між користувачами. Чудово підходить для команд. \n(Якщо ви є провайдером із установкою з кількома клієнтами, радимо вимкнути цю програму, оскільки теги є спільними.)",
+ "Search or create collaborative tags" : "Пошук або створення спільних тегів",
+ "Collaborative tags …" : "Спільні теги ...",
+ "No tags to select, type to create a new tag" : "Немає тегів для вибору, введіть, щоб створити новий тег",
+ "Failed to load tags" : "Не вдалося завантажити теги",
+ "Failed to load selected tags" : "Не вдалося завантажити вибрані теги",
+ "Failed to select tag" : "Не вдалося вибрати тег",
+ "Failed to create tag" : "Не вдалося створити тег",
+ "Failed to delete tag" : "Не вдалося видалити тег",
+ "Failed to load last used tags" : "Не вдалося завантажити останні теги",
+ "Missing \"Content-Location\" header" : "Відсутній заголовок \"Content-Location\"",
"Tagged files" : "Файли з позначками",
"Select tags to filter by" : "Фільтр вибору позначок за",
"No tags found" : "Не знайдено позначок",
diff --git a/apps/theming/css/default.css b/apps/theming/css/default.css
index 3b732f1af3e..da9ad6e97de 100644
--- a/apps/theming/css/default.css
+++ b/apps/theming/css/default.css
@@ -63,14 +63,12 @@
--color-primary-light: #e5f0f5;
--color-primary-light-text: #002a41;
--color-primary-light-hover: #dbe5ea;
- --color-primary-text-dark: #ededed;
--color-primary-element: #006aa3;
- --color-primary-element-default-hover: #329bd3;
- --color-primary-element-text: #ffffff;
--color-primary-element-hover: #3287b5;
+ --color-primary-element-text: #ffffff;
--color-primary-element-light: #e5f0f5;
- --color-primary-element-light-text: #002a41;
--color-primary-element-light-hover: #dbe5ea;
+ --color-primary-element-light-text: #002a41;
--color-primary-element-text-dark: #ededed;
--gradient-primary-background: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-hover) 100%);
--image-background-default: url('/apps/theming/img/background/kamil-porembinski-clouds.jpg');
diff --git a/apps/theming/l10n/eo.js b/apps/theming/l10n/eo.js
index d07abe4e8e6..f73e7fc8f6c 100644
--- a/apps/theming/l10n/eo.js
+++ b/apps/theming/l10n/eo.js
@@ -23,9 +23,12 @@ OC.L10N.register(
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Vi jam uzas propran etoson. Agordoj de la aplikaĵo „Etosoj“ povus esti anstataŭigitaj de ĝi.",
"Theming" : "Etosoj",
"Dark theme" : "Malhela etoso",
+ "Enable dark theme" : "Ŝaltu malhelan etoson",
"Dyslexia font" : "Tiparo por limigi vortblindecon",
+ "Enable dyslexia font" : "Ŝaltu disleksian tiparon",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic estas tiparo kreita por malpliigi legajn erarojn kaŭzitajn de vortblindeco (medicine „disleksio“).",
"High contrast mode" : "Altkontrasta reĝimo",
+ "Enable high contrast mode" : "Ŝaltu altkontrastan reĝimon",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Altkontrasta reĝimo, kiu faciligas vian navigadon. Vida kvalito malpliiĝos, sed klareco pliiĝos.",
"Legal notice" : "Leĝa regularo",
"Privacy policy" : "Privateca regularo",
@@ -46,6 +49,7 @@ OC.L10N.register(
"Favicon" : "Retpaĝsimbolo",
"Upload new favicon" : "Alŝuti novan retpaĝsimbolon",
"Keyboard shortcuts" : "Fulmoklavoj",
+ "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." : "Universala aliro estas tre grava por ni. Ni sekvas la retejo-standardojn kaj kontrolas, ĉu ĉio estas uzebla eĉ sen muso, kaj per helpa programaro, kiel ekzemple ekranlegiloj. Ni celas esti kongruaj kun la {guidelines}Reteja alireblecaj reguloj{linkend} 2.1 je la AA nivelo, kun alta kontrasta temo eĉ ĉe la AAA nivelo.",
"Reset to default" : "Restarigi al defaŭltaj agordoj",
"Upload" : "Alŝuti",
"Remove background image" : "Forigi fonan bildon",
diff --git a/apps/theming/l10n/eo.json b/apps/theming/l10n/eo.json
index 03b3b9d4693..fcdfaeadad1 100644
--- a/apps/theming/l10n/eo.json
+++ b/apps/theming/l10n/eo.json
@@ -21,9 +21,12 @@
"You are already using a custom theme. Theming app settings might be overwritten by that." : "Vi jam uzas propran etoson. Agordoj de la aplikaĵo „Etosoj“ povus esti anstataŭigitaj de ĝi.",
"Theming" : "Etosoj",
"Dark theme" : "Malhela etoso",
+ "Enable dark theme" : "Ŝaltu malhelan etoson",
"Dyslexia font" : "Tiparo por limigi vortblindecon",
+ "Enable dyslexia font" : "Ŝaltu disleksian tiparon",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic estas tiparo kreita por malpliigi legajn erarojn kaŭzitajn de vortblindeco (medicine „disleksio“).",
"High contrast mode" : "Altkontrasta reĝimo",
+ "Enable high contrast mode" : "Ŝaltu altkontrastan reĝimon",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Altkontrasta reĝimo, kiu faciligas vian navigadon. Vida kvalito malpliiĝos, sed klareco pliiĝos.",
"Legal notice" : "Leĝa regularo",
"Privacy policy" : "Privateca regularo",
@@ -44,6 +47,7 @@
"Favicon" : "Retpaĝsimbolo",
"Upload new favicon" : "Alŝuti novan retpaĝsimbolon",
"Keyboard shortcuts" : "Fulmoklavoj",
+ "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." : "Universala aliro estas tre grava por ni. Ni sekvas la retejo-standardojn kaj kontrolas, ĉu ĉio estas uzebla eĉ sen muso, kaj per helpa programaro, kiel ekzemple ekranlegiloj. Ni celas esti kongruaj kun la {guidelines}Reteja alireblecaj reguloj{linkend} 2.1 je la AA nivelo, kun alta kontrasta temo eĉ ĉe la AAA nivelo.",
"Reset to default" : "Restarigi al defaŭltaj agordoj",
"Upload" : "Alŝuti",
"Remove background image" : "Forigi fonan bildon",
diff --git a/apps/theming/lib/Themes/CommonThemeTrait.php b/apps/theming/lib/Themes/CommonThemeTrait.php
index 17591c232bb..3a14382d3c0 100644
--- a/apps/theming/lib/Themes/CommonThemeTrait.php
+++ b/apps/theming/lib/Themes/CommonThemeTrait.php
@@ -38,9 +38,9 @@ trait CommonThemeTrait {
* will change in between.
*/
protected function generatePrimaryVariables(string $colorMainBackground, string $colorMainText): array {
- $colorPrimaryLight = $this->util->mix($this->primaryColor, $colorMainBackground, -80);
- $colorPrimaryElement = $this->util->elementColor($this->primaryColor);
- $colorPrimaryElementDefault = $this->util->elementColor($this->defaultPrimaryColor);
+ $isBrightColor = $this->util->isBrightColor($colorMainBackground);
+ $colorPrimaryElement = $this->util->elementColor($this->primaryColor, $isBrightColor);
+ $colorPrimaryLight = $this->util->mix($colorPrimaryElement, $colorMainBackground, -80);
$colorPrimaryElementLight = $this->util->mix($colorPrimaryElement, $colorMainBackground, -80);
// primary related colours
@@ -61,16 +61,17 @@ trait CommonThemeTrait {
'--color-primary-light' => $colorPrimaryLight,
'--color-primary-light-text' => $this->util->mix($this->primaryColor, $this->util->invertTextColor($colorPrimaryLight) ? '#000000' : '#ffffff', -20),
'--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' => $colorPrimaryElement,
- '--color-primary-element-default-hover' => $this->util->mix($colorPrimaryElementDefault, $colorMainBackground, 60),
- '--color-primary-element-text' => $this->util->invertTextColor($colorPrimaryElement) ? '#000000' : '#ffffff',
'--color-primary-element-hover' => $this->util->mix($colorPrimaryElement, $colorMainBackground, 60),
+ '--color-primary-element-text' => $this->util->invertTextColor($colorPrimaryElement) ? '#000000' : '#ffffff',
+
+ // used for hover/focus states
'--color-primary-element-light' => $colorPrimaryElementLight,
- '--color-primary-element-light-text' => $this->util->mix($colorPrimaryElement, $this->util->invertTextColor($colorPrimaryElementLight) ? '#000000' : '#ffffff', -20),
'--color-primary-element-light-hover' => $this->util->mix($colorPrimaryElementLight, $colorMainText, 90),
+ '--color-primary-element-light-text' => $this->util->mix($colorPrimaryElement, $this->util->invertTextColor($colorPrimaryElementLight) ? '#000000' : '#ffffff', -20),
+ // mostly used for disabled states
'--color-primary-element-text-dark' => $this->util->darken($this->util->invertTextColor($colorPrimaryElement) ? '#000000' : '#ffffff', 7),
// to use like this: background-image: var(--gradient-primary-background);
@@ -92,15 +93,6 @@ trait CommonThemeTrait {
$variables['--image-background-default'] = "url('" . $this->themingDefaults->getBackground() . "')";
$variables['--color-background-plain'] = $this->defaultPrimaryColor;
- // If primary as background has been request or if we have a custom primary colour
- // let's not define the background image
- if ($backgroundDeleted) {
- $variables['--color-background-plain'] = $this->defaultPrimaryColor;
- $variables['--image-background-plain'] = 'yes';
- // If no background image is set, we need to check against the shown primary colour
- $variables['--background-image-invert-if-bright'] = $isDefaultPrimaryBright ? 'invert(100%)' : 'no';
- }
-
// Register image variables only if custom-defined
foreach (ImageManager::SUPPORTED_IMAGE_KEYS as $image) {
if ($this->imageManager->hasImage($image)) {
@@ -110,8 +102,18 @@ trait CommonThemeTrait {
}
}
+ // If primary as background has been request or if we have a custom primary colour
+ // let's not define the background image
+ if ($backgroundDeleted) {
+ $variables['--color-background-plain'] = $this->defaultPrimaryColor;
+ $variables['--image-background-plain'] = 'yes';
+ $variables['--image-background'] = 'no';
+ // If no background image is set, we need to check against the shown primary colour
+ $variables['--background-image-invert-if-bright'] = $isDefaultPrimaryBright ? 'invert(100%)' : 'no';
+ }
+
if ($hasCustomLogoHeader) {
- $variables["--image-logoheader-custom"] = 'true';
+ $variables['--image-logoheader-custom'] = 'true';
}
return $variables;
diff --git a/apps/theming/lib/Util.php b/apps/theming/lib/Util.php
index a85dacd3de2..789da394567 100644
--- a/apps/theming/lib/Util.php
+++ b/apps/theming/lib/Util.php
@@ -52,10 +52,20 @@ class Util {
}
/**
+ * Should we invert the text on this background color?
* @param string $color rgb color value
* @return bool
*/
- public function invertTextColor($color) {
+ public function invertTextColor(string $color): bool {
+ return $this->isBrightColor($color);
+ }
+
+ /**
+ * Is this color too bright ?
+ * @param string $color rgb color value
+ * @return bool
+ */
+ public function isBrightColor(string $color): bool {
$l = $this->calculateLuma($color);
if ($l > 0.6) {
return true;
@@ -68,20 +78,20 @@ class Util {
* get color for on-page elements:
* theme color by default, grey if theme color is to bright
* @param string $color
- * @param bool $brightBackground
+ * @param ?bool $brightBackground
* @return string
*/
- public function elementColor($color, bool $brightBackground = true) {
+ public function elementColor($color, ?bool $brightBackground = null) {
$luminance = $this->calculateLuminance($color);
- if ($brightBackground && $luminance > 0.8) {
- // If the color is too bright in bright mode, we fall back to a darker gray
- return '#aaaaaa';
+ if ($brightBackground !== false && $luminance > 0.8) {
+ // If the color is too bright in bright mode, we fall back to a darkened color
+ return $this->darken($color, 30);
}
- if (!$brightBackground && $luminance < 0.2) {
- // If the color is too dark in dark mode, we fall back to a brighter gray
- return '#555555';
+ if ($brightBackground !== true && $luminance < 0.2) {
+ // If the color is too dark in dark mode, we fall back to a brightened color
+ return $this->lighten($color, 30);
}
return $color;
diff --git a/apps/theming/src/AdminTheming.vue b/apps/theming/src/AdminTheming.vue
index f922143e04d..a190dfb2a6a 100644
--- a/apps/theming/src/AdminTheming.vue
+++ b/apps/theming/src/AdminTheming.vue
@@ -299,7 +299,7 @@ export default {
/* This is basically https://github.com/nextcloud/server/blob/master/core/css/guest.css
But without the user variables. That way the admin can preview the render as guest*/
/* As guest, there is no user color color-background-plain */
- background-color: var(--color-primary-default, #0082c9);
+ background-color: var(--color-primary-element-default, #0082c9);
/* As guest, there is no user background (--image-background)
1. Empty background if defined
2. Else default background
diff --git a/apps/theming/src/components/BackgroundSettings.vue b/apps/theming/src/components/BackgroundSettings.vue
index 6a34eb19ac5..20c7ef622de 100644
--- a/apps/theming/src/components/BackgroundSettings.vue
+++ b/apps/theming/src/components/BackgroundSettings.vue
@@ -329,7 +329,7 @@ export default {
&__default {
background-color: var(--color-primary-default);
- background-image: var(--image-background-default);
+ background-image: var(--image-background-plain, var(--image-background-default));
}
&__filepicker, &__default, &__color {
@@ -356,7 +356,7 @@ export default {
&:hover,
&:focus {
// Use theme color primary, see inline css variable in template
- border: 2px solid var(--border-color, var(--color-primary)) !important;
+ border: 2px solid var(--border-color, var(--color-primary-element)) !important;
}
// Icon
diff --git a/apps/theming/src/components/admin/ColorPickerField.vue b/apps/theming/src/components/admin/ColorPickerField.vue
index c9f1a8e4ef5..fd80a45e387 100644
--- a/apps/theming/src/components/admin/ColorPickerField.vue
+++ b/apps/theming/src/components/admin/ColorPickerField.vue
@@ -115,8 +115,22 @@ export default {
width: 230px !important;
border-radius: var(--border-radius-large) !important;
background-color: var(--color-primary-default) !important;
- &:hover {
- background-color: var(--color-primary-element-default-hover) !important;
+
+ // emulated hover state because it would not make sense
+ // to create a dedicated global variable for the color-primary-default
+ &:hover::after {
+ background-color: white;
+ content: "";
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: .2;
+ filter: var(--primary-invert-if-bright);
+ }
+
+ // Above the ::after
+ &::v-deep * {
+ z-index: 1;
}
}
}
diff --git a/apps/theming/tests/CapabilitiesTest.php b/apps/theming/tests/CapabilitiesTest.php
index 1de439a70e9..1a2d01d69d1 100644
--- a/apps/theming/tests/CapabilitiesTest.php
+++ b/apps/theming/tests/CapabilitiesTest.php
@@ -77,8 +77,8 @@ class CapabilitiesTest extends TestCase {
'slogan' => 'slogan',
'color' => '#FFFFFF',
'color-text' => '#000000',
- 'color-element' => '#aaaaaa',
- 'color-element-bright' => '#aaaaaa',
+ 'color-element' => '#b3b3b3',
+ 'color-element-bright' => '#b3b3b3',
'color-element-dark' => '#FFFFFF',
'logo' => 'http://absolute/logo',
'background' => 'http://absolute/background',
@@ -109,9 +109,9 @@ class CapabilitiesTest extends TestCase {
'slogan' => 'slogan3',
'color' => '#000000',
'color-text' => '#ffffff',
- 'color-element' => '#000000',
- 'color-element-bright' => '#000000',
- 'color-element-dark' => '#555555',
+ 'color-element' => '#4d4d4d',
+ 'color-element-bright' => '#4d4d4d',
+ 'color-element-dark' => '#4d4d4d',
'logo' => 'http://localhost/logo5',
'background' => '#000000',
'background-plain' => true,
@@ -125,9 +125,9 @@ class CapabilitiesTest extends TestCase {
'slogan' => 'slogan3',
'color' => '#000000',
'color-text' => '#ffffff',
- 'color-element' => '#000000',
- 'color-element-bright' => '#000000',
- 'color-element-dark' => '#555555',
+ 'color-element' => '#4d4d4d',
+ 'color-element-bright' => '#4d4d4d',
+ 'color-element-dark' => '#4d4d4d',
'logo' => 'http://localhost/logo5',
'background' => '#000000',
'background-plain' => true,
@@ -178,7 +178,7 @@ class CapabilitiesTest extends TestCase {
$this->util->expects($this->exactly(3))
->method('elementColor')
->with($color)
- ->willReturnCallback(static function (string $color, bool $brightBackground = true) use ($util) {
+ ->willReturnCallback(static function (string $color, ?bool $brightBackground = null) use ($util) {
return $util->elementColor($color, $brightBackground);
});
diff --git a/apps/theming/tests/UtilTest.php b/apps/theming/tests/UtilTest.php
index 8f6d972a2fc..137038acb98 100644
--- a/apps/theming/tests/UtilTest.php
+++ b/apps/theming/tests/UtilTest.php
@@ -105,19 +105,34 @@ class UtilTest extends TestCase {
$this->util->invertTextColor('');
}
- public function testElementColorDefault() {
+ public function testElementColorDefaultBlack() {
$elementColor = $this->util->elementColor("#000000");
- $this->assertEquals('#000000', $elementColor);
+ $this->assertEquals('#4d4d4d', $elementColor);
+ }
+
+ public function testElementColorDefaultWhite() {
+ $elementColor = $this->util->elementColor("#ffffff");
+ $this->assertEquals('#b3b3b3', $elementColor);
}
- public function testElementColorOnDarkBackground() {
+ public function testElementColorBlackOnDarkBackground() {
$elementColor = $this->util->elementColor("#000000", false);
- $this->assertEquals('#555555', $elementColor);
+ $this->assertEquals('#4d4d4d', $elementColor);
+ }
+
+ public function testElementColorBlackOnBrightBackground() {
+ $elementColor = $this->util->elementColor("#000000", true);
+ $this->assertEquals('#000000', $elementColor);
+ }
+
+ public function testElementColorWhiteOnBrightBackground() {
+ $elementColor = $this->util->elementColor('#ffffff', true);
+ $this->assertEquals('#b3b3b3', $elementColor);
}
- public function testElementColorOnBrightBackground() {
- $elementColor = $this->util->elementColor('#ffffff');
- $this->assertEquals('#aaaaaa', $elementColor);
+ public function testElementColorWhiteOnDarkBackground() {
+ $elementColor = $this->util->elementColor('#ffffff', false);
+ $this->assertEquals('#ffffff', $elementColor);
}
public function testGenerateRadioButtonWhite() {
diff --git a/apps/updatenotification/l10n/it.js b/apps/updatenotification/l10n/it.js
index 28d1f494ddb..89b14eb89a2 100644
--- a/apps/updatenotification/l10n/it.js
+++ b/apps/updatenotification/l10n/it.js
@@ -24,6 +24,7 @@ OC.L10N.register(
"The update check is not yet finished. Please refresh the page." : "Il controllo degli aggiornamenti non è ancora terminato. Aggiorna la pagina.",
"Your version is up to date." : "La tua versione è aggiornata.",
"A non-default update server is in use to be checked for updates:" : "Stai utilizzando un server non predefinito per controllare gli aggiornamenti:",
+ "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Puoi modificare il canale di aggiornamento di seguito che influisce anche sulla pagina di gestione delle app. Per esempio. dopo il passaggio al canale beta, gli aggiornamenti dell'app beta ti verranno offerti nella pagina di gestione delle app.",
"Update channel:" : "Canale di aggiornamento:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Puoi aggiornare sempre a una nuova versione. Ma non puoi mai tornare a una versione precedente.",
"Notify members of the following groups about available updates:" : "Notifica ai membri dei seguenti gruppi la disponibilità di aggiornamenti:",
diff --git a/apps/updatenotification/l10n/it.json b/apps/updatenotification/l10n/it.json
index 120b32af632..b900190847b 100644
--- a/apps/updatenotification/l10n/it.json
+++ b/apps/updatenotification/l10n/it.json
@@ -22,6 +22,7 @@
"The update check is not yet finished. Please refresh the page." : "Il controllo degli aggiornamenti non è ancora terminato. Aggiorna la pagina.",
"Your version is up to date." : "La tua versione è aggiornata.",
"A non-default update server is in use to be checked for updates:" : "Stai utilizzando un server non predefinito per controllare gli aggiornamenti:",
+ "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Puoi modificare il canale di aggiornamento di seguito che influisce anche sulla pagina di gestione delle app. Per esempio. dopo il passaggio al canale beta, gli aggiornamenti dell'app beta ti verranno offerti nella pagina di gestione delle app.",
"Update channel:" : "Canale di aggiornamento:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Puoi aggiornare sempre a una nuova versione. Ma non puoi mai tornare a una versione precedente.",
"Notify members of the following groups about available updates:" : "Notifica ai membri dei seguenti gruppi la disponibilità di aggiornamenti:",
diff --git a/apps/updatenotification/l10n/pl.js b/apps/updatenotification/l10n/pl.js
index 9dcccdf4caa..6e1e5d95eb6 100644
--- a/apps/updatenotification/l10n/pl.js
+++ b/apps/updatenotification/l10n/pl.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"Update channel:" : "Kanał aktualizacji:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Zawsze możesz zaktualizować do nowszej wersji. Ale nigdy nie możesz powrócić do wersji bardziej stabilnej.",
"Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach:",
+ "No groups" : "Brak grup",
"Only notifications for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Wybrany kanał aktualizacji dla dedykowanych powiadomień dla serwera jest nieaktualny.",
"The selected update channel does not support updates of the server." : "Wybrany kanał aktualizacji nie obsługuje danego serwera.",
diff --git a/apps/updatenotification/l10n/pl.json b/apps/updatenotification/l10n/pl.json
index da31f47f9ca..9b1699a0c22 100644
--- a/apps/updatenotification/l10n/pl.json
+++ b/apps/updatenotification/l10n/pl.json
@@ -27,6 +27,7 @@
"Update channel:" : "Kanał aktualizacji:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Zawsze możesz zaktualizować do nowszej wersji. Ale nigdy nie możesz powrócić do wersji bardziej stabilnej.",
"Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach:",
+ "No groups" : "Brak grup",
"Only notifications for app updates are available." : "Dostępne są tylko powiadomienia o aktualizacjach aplikacji.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Wybrany kanał aktualizacji dla dedykowanych powiadomień dla serwera jest nieaktualny.",
"The selected update channel does not support updates of the server." : "Wybrany kanał aktualizacji nie obsługuje danego serwera.",
diff --git a/apps/updatenotification/l10n/uk.js b/apps/updatenotification/l10n/uk.js
index dc7d73f6f74..3bec9e001d7 100644
--- a/apps/updatenotification/l10n/uk.js
+++ b/apps/updatenotification/l10n/uk.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"Update channel:" : "Канал оновлення:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Ви завжди зможете перейти на нову версію, проте не можна буде повернутися на стабільну версію.",
"Notify members of the following groups about available updates:" : "Повідомляти учасників таких груп про доступні оновлення:",
+ "No groups" : "Без груп",
"Only notifications for app updates are available." : "Доступні лише сповіщення про оновлення програми.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Вибраний канал оновлення робить спеціальні сповіщення для сервера застарілими.",
"The selected update channel does not support updates of the server." : "Вибраний канал оновлення не підтримує оновлення сервера.",
diff --git a/apps/updatenotification/l10n/uk.json b/apps/updatenotification/l10n/uk.json
index 9df3b33d86e..18e9233d27b 100644
--- a/apps/updatenotification/l10n/uk.json
+++ b/apps/updatenotification/l10n/uk.json
@@ -27,6 +27,7 @@
"Update channel:" : "Канал оновлення:",
"You can always update to a newer version. But you can never downgrade to a more stable version." : "Ви завжди зможете перейти на нову версію, проте не можна буде повернутися на стабільну версію.",
"Notify members of the following groups about available updates:" : "Повідомляти учасників таких груп про доступні оновлення:",
+ "No groups" : "Без груп",
"Only notifications for app updates are available." : "Доступні лише сповіщення про оновлення програми.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Вибраний канал оновлення робить спеціальні сповіщення для сервера застарілими.",
"The selected update channel does not support updates of the server." : "Вибраний канал оновлення не підтримує оновлення сервера.",
diff --git a/apps/user_ldap/l10n/eu.js b/apps/user_ldap/l10n/eu.js
index de0c66bc821..2100de66e10 100644
--- a/apps/user_ldap/l10n/eu.js
+++ b/apps/user_ldap/l10n/eu.js
@@ -183,6 +183,12 @@ OC.L10N.register(
"Leave empty for username (default). Otherwise, specify an LDAP/AD attribute." : "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.",
"\"$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",
+ "Phone Field" : "Telefono eremua",
+ "Website Field" : "Webgune eremua",
+ "Address Field" : "Helbide eremua",
+ "Twitter Field" : "Twitter eremua",
+ "Fediverse Field" : "Fedibertso eremua",
+ "Organisation Field" : "Erakunde eremua",
"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",
diff --git a/apps/user_ldap/l10n/eu.json b/apps/user_ldap/l10n/eu.json
index 20ef741f4ba..4ebb9ce6c9d 100644
--- a/apps/user_ldap/l10n/eu.json
+++ b/apps/user_ldap/l10n/eu.json
@@ -181,6 +181,12 @@
"Leave empty for username (default). Otherwise, specify an LDAP/AD attribute." : "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.",
"\"$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",
+ "Phone Field" : "Telefono eremua",
+ "Website Field" : "Webgune eremua",
+ "Address Field" : "Helbide eremua",
+ "Twitter Field" : "Twitter eremua",
+ "Fediverse Field" : "Fedibertso eremua",
+ "Organisation Field" : "Erakunde eremua",
"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",
diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js
index 97971f66a7c..338d9350195 100644
--- a/apps/user_ldap/l10n/ru.js
+++ b/apps/user_ldap/l10n/ru.js
@@ -183,6 +183,25 @@ OC.L10N.register(
"Leave empty for username (default). Otherwise, specify an LDAP/AD attribute." : "Оставьте пустым для использования имени пользователя (по умолчанию) или укажите атрибут LDAP/AD.",
"\"$home\" Placeholder Field" : "Поле-заполнитель \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "В конфигурации внешнего хранилища $home будет заменен значением указанного атрибута",
+ "User Profile Attributes" : "Атрибуты профиля пользователей",
+ "Phone Field" : "Поле телефона",
+ "User profile Phone will be set from the specified attribute" : "Телефон в профиле пользователя будет установлен из указанного атрибута",
+ "Website Field" : "Поле web-сайта",
+ "User profile Website will be set from the specified attribute" : "Web-сайт в профиле пользователя будет установлен из указанного атрибута",
+ "Address Field" : "Поле адреса",
+ "User profile Address will be set from the specified attribute" : "Адрес в профиле пользователя будет установлен из указанного атрибута",
+ "Twitter Field" : "Поле Twitter",
+ "User profile Twitter will be set from the specified attribute" : "Twitter в профиле пользователя будет установлен из указанного атрибута",
+ "Fediverse Field" : "Поле Федерации",
+ "User profile Fediverse will be set from the specified attribute" : "Федерация в профиле пользователя будет установлена из указанного атрибута",
+ "Organisation Field" : "Поле организации",
+ "User profile Organisation will be set from the specified attribute" : "Организация в профиле пользователя будет установлена из указанного атрибута",
+ "Role Field" : "Поле роли",
+ "User profile Role will be set from the specified attribute" : "Роль в профиле пользователя будет установлена из указанного атрибута",
+ "Headline Field" : "Поле заголовка",
+ "User profile Headline will be set from the specified attribute" : "Заголовок в профиле пользователя будет установлен из указанного атрибута",
+ "Biography Field" : "Поле биографии",
+ "User profile Biography will be set from the specified attribute" : "Биография в профиле пользователя будет установлена из указанного атрибута",
"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:" : "Атрибут для внутреннего имени:",
diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json
index be7e9783f68..5dd858e3f0b 100644
--- a/apps/user_ldap/l10n/ru.json
+++ b/apps/user_ldap/l10n/ru.json
@@ -181,6 +181,25 @@
"Leave empty for username (default). Otherwise, specify an LDAP/AD attribute." : "Оставьте пустым для использования имени пользователя (по умолчанию) или укажите атрибут LDAP/AD.",
"\"$home\" Placeholder Field" : "Поле-заполнитель \"$home\"",
"$home in an external storage configuration will be replaced with the value of the specified attribute" : "В конфигурации внешнего хранилища $home будет заменен значением указанного атрибута",
+ "User Profile Attributes" : "Атрибуты профиля пользователей",
+ "Phone Field" : "Поле телефона",
+ "User profile Phone will be set from the specified attribute" : "Телефон в профиле пользователя будет установлен из указанного атрибута",
+ "Website Field" : "Поле web-сайта",
+ "User profile Website will be set from the specified attribute" : "Web-сайт в профиле пользователя будет установлен из указанного атрибута",
+ "Address Field" : "Поле адреса",
+ "User profile Address will be set from the specified attribute" : "Адрес в профиле пользователя будет установлен из указанного атрибута",
+ "Twitter Field" : "Поле Twitter",
+ "User profile Twitter will be set from the specified attribute" : "Twitter в профиле пользователя будет установлен из указанного атрибута",
+ "Fediverse Field" : "Поле Федерации",
+ "User profile Fediverse will be set from the specified attribute" : "Федерация в профиле пользователя будет установлена из указанного атрибута",
+ "Organisation Field" : "Поле организации",
+ "User profile Organisation will be set from the specified attribute" : "Организация в профиле пользователя будет установлена из указанного атрибута",
+ "Role Field" : "Поле роли",
+ "User profile Role will be set from the specified attribute" : "Роль в профиле пользователя будет установлена из указанного атрибута",
+ "Headline Field" : "Поле заголовка",
+ "User profile Headline will be set from the specified attribute" : "Заголовок в профиле пользователя будет установлен из указанного атрибута",
+ "Biography Field" : "Поле биографии",
+ "User profile Biography will be set from the specified attribute" : "Биография в профиле пользователя будет установлена из указанного атрибута",
"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:" : "Атрибут для внутреннего имени:",
diff --git a/apps/user_status/l10n/tr.js b/apps/user_status/l10n/tr.js
index ec02dbad47c..a6acfe9696e 100644
--- a/apps/user_status/l10n/tr.js
+++ b/apps/user_status/l10n/tr.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"user_status",
{
- "Recent statuses" : "Yakın zamandaki durumlar",
+ "Recent statuses" : "Son durumlar",
"In a meeting" : "Toplantıda",
"Commuting" : "İşe gidiyor/geliyor",
"Out sick" : "Hasta",
@@ -26,7 +26,7 @@ OC.L10N.register(
"There was an error saving the status" : "Durum kaydedilirken bir sorun çıktı",
"There was an error clearing the status" : "Durum kaldırılırken bir sorun çıktı",
"There was an error reverting the status" : "Durum geri alınırken bir sorun çıktı",
- "No recent status changes" : "Yakın zamanda değiştirilmiş bir durum yok",
+ "No recent status changes" : "Son zamanlarda durum değiştirilmemiş",
"Away" : "Uzakta",
"Do not disturb" : "Rahatsız etmeyin",
"{status}, {timestamp}" : "{status}, {timestamp}",
diff --git a/apps/user_status/l10n/tr.json b/apps/user_status/l10n/tr.json
index e9d80aa9fb4..56c7def2140 100644
--- a/apps/user_status/l10n/tr.json
+++ b/apps/user_status/l10n/tr.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Recent statuses" : "Yakın zamandaki durumlar",
+ "Recent statuses" : "Son durumlar",
"In a meeting" : "Toplantıda",
"Commuting" : "İşe gidiyor/geliyor",
"Out sick" : "Hasta",
@@ -24,7 +24,7 @@
"There was an error saving the status" : "Durum kaydedilirken bir sorun çıktı",
"There was an error clearing the status" : "Durum kaldırılırken bir sorun çıktı",
"There was an error reverting the status" : "Durum geri alınırken bir sorun çıktı",
- "No recent status changes" : "Yakın zamanda değiştirilmiş bir durum yok",
+ "No recent status changes" : "Son zamanlarda durum değiştirilmemiş",
"Away" : "Uzakta",
"Do not disturb" : "Rahatsız etmeyin",
"{status}, {timestamp}" : "{status}, {timestamp}",
diff --git a/apps/user_status/l10n/uk.js b/apps/user_status/l10n/uk.js
index c62a8b8287a..30a6b7787ff 100644
--- a/apps/user_status/l10n/uk.js
+++ b/apps/user_status/l10n/uk.js
@@ -12,13 +12,20 @@ OC.L10N.register(
"View profile" : "Перегляд профілю",
"Clear status after" : "Очистити статус після",
"What is your status?" : "Який твій статус?",
+ "Previously set" : "Раніше встановлений",
+ "Reset status" : "Скинути статус",
"Set status" : "Встановити статус",
"Online status" : "Статус онлайну",
"Status message" : "Повідомлення про статус",
+ "Your status was set automatically" : "Ваш статус встановлено автоматично",
"Clear status message" : "Очистити повідомлення про стан",
"Set status message" : "Встановити повідомлення про стан",
+ "Reset status to \"{icon} {message}\"" : "Скинути статус на \"{icon} {message}\"",
+ "Reset status to \"{message}\"" : "Скинути статус на \"{message}\"",
+ "Reset status to \"{icon}\"" : "Скинути статус на \"{icon}\"",
"There was an error saving the status" : "Під час збереження статусу сталася помилка",
"There was an error clearing the status" : "Під час очищення статусу сталася помилка",
+ "There was an error reverting the status" : "Виникла помилка при скиданні статусу",
"No recent status changes" : "Останніх змін статусу немає",
"Away" : "Піти",
"Do not disturb" : "Не турбувати",
diff --git a/apps/user_status/l10n/uk.json b/apps/user_status/l10n/uk.json
index d9b7ab1a5e8..ae57b3385d3 100644
--- a/apps/user_status/l10n/uk.json
+++ b/apps/user_status/l10n/uk.json
@@ -10,13 +10,20 @@
"View profile" : "Перегляд профілю",
"Clear status after" : "Очистити статус після",
"What is your status?" : "Який твій статус?",
+ "Previously set" : "Раніше встановлений",
+ "Reset status" : "Скинути статус",
"Set status" : "Встановити статус",
"Online status" : "Статус онлайну",
"Status message" : "Повідомлення про статус",
+ "Your status was set automatically" : "Ваш статус встановлено автоматично",
"Clear status message" : "Очистити повідомлення про стан",
"Set status message" : "Встановити повідомлення про стан",
+ "Reset status to \"{icon} {message}\"" : "Скинути статус на \"{icon} {message}\"",
+ "Reset status to \"{message}\"" : "Скинути статус на \"{message}\"",
+ "Reset status to \"{icon}\"" : "Скинути статус на \"{icon}\"",
"There was an error saving the status" : "Під час збереження статусу сталася помилка",
"There was an error clearing the status" : "Під час очищення статусу сталася помилка",
+ "There was an error reverting the status" : "Виникла помилка при скиданні статусу",
"No recent status changes" : "Останніх змін статусу немає",
"Away" : "Піти",
"Do not disturb" : "Не турбувати",
diff --git a/apps/user_status/lib/Controller/UserStatusController.php b/apps/user_status/lib/Controller/UserStatusController.php
index aded923d07f..2d96cd90a40 100644
--- a/apps/user_status/lib/Controller/UserStatusController.php
+++ b/apps/user_status/lib/Controller/UserStatusController.php
@@ -169,16 +169,6 @@ class UserStatusController extends OCSController {
*
* @return DataResponse
*/
- public function clearStatus(): DataResponse {
- $this->service->clearStatus($this->userId);
- return new DataResponse([]);
- }
-
- /**
- * @NoAdminRequired
- *
- * @return DataResponse
- */
public function clearMessage(): DataResponse {
$this->service->clearMessage($this->userId);
return new DataResponse([]);
diff --git a/apps/user_status/src/components/OnlineStatusSelect.vue b/apps/user_status/src/components/OnlineStatusSelect.vue
index df7d1377ee3..77600346ac9 100644
--- a/apps/user_status/src/components/OnlineStatusSelect.vue
+++ b/apps/user_status/src/components/OnlineStatusSelect.vue
@@ -122,7 +122,7 @@ $label-padding: 8px;
&__input:checked + &__label,
&__input:focus + &__label,
&__label:hover {
- border-color: var(--color-primary);
+ border-color: var(--color-primary-element);
}
&__label:active {
diff --git a/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php b/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
index e4d2ab61eee..ed0919eb9a5 100644
--- a/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
+++ b/apps/user_status/tests/Unit/Controller/UserStatusControllerTest.php
@@ -326,15 +326,6 @@ class UserStatusControllerTest extends TestCase {
];
}
- public function testClearStatus(): void {
- $this->service->expects($this->once())
- ->method('clearStatus')
- ->with('john.doe');
-
- $response = $this->controller->clearStatus();
- $this->assertEquals([], $response->getData());
- }
-
public function testClearMessage(): void {
$this->service->expects($this->once())
->method('clearMessage')
diff --git a/apps/weather_status/l10n/it.js b/apps/weather_status/l10n/it.js
index 03fd1dd977f..f96363fcbd0 100644
--- a/apps/weather_status/l10n/it.js
+++ b/apps/weather_status/l10n/it.js
@@ -21,6 +21,18 @@ OC.L10N.register(
"{temperature} {unit} partly cloudy" : "{temperature} {unit} parzialmente nuvoloso",
"{temperature} {unit} foggy later today" : "{temperature} {unit} nebbioso più tardi in giornata",
"{temperature} {unit} foggy" : "{temperature} {unit} nebbioso",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} deboli precipitazioni più tardi oggi",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} precipitazioni deboli",
+ "{temperature} {unit} rainfall later today" : "{temperature} {unit} pioggia più tardi oggi",
+ "{temperature} {unit} rainfall" : "{temperature} {unità} precipitazioni",
+ "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} forti precipitazioni più tardi oggi",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} forti precipitazioni",
+ "{temperature} {unit} rainfall showers later today" : "{temperature} {unit} rovesci di pioggia più tardi oggi",
+ "{temperature} {unit} rainfall showers" : "{temperature} {unit} rovesci di pioggia",
+ "{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} deboli rovesci di pioggia più tardi oggi",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} deboli rovesci di pioggia",
+ "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} forti rovesci di pioggia più tardi oggi",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} forti rovesci di pioggia",
"More weather for {adr}" : "Altro meteo per {adr}",
"Loading weather" : "Caricamento meteo",
"Remove from favorites" : "Rimuovi dai preferiti",
diff --git a/apps/weather_status/l10n/it.json b/apps/weather_status/l10n/it.json
index 2ef310af389..7e646acecfe 100644
--- a/apps/weather_status/l10n/it.json
+++ b/apps/weather_status/l10n/it.json
@@ -19,6 +19,18 @@
"{temperature} {unit} partly cloudy" : "{temperature} {unit} parzialmente nuvoloso",
"{temperature} {unit} foggy later today" : "{temperature} {unit} nebbioso più tardi in giornata",
"{temperature} {unit} foggy" : "{temperature} {unit} nebbioso",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} deboli precipitazioni più tardi oggi",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} precipitazioni deboli",
+ "{temperature} {unit} rainfall later today" : "{temperature} {unit} pioggia più tardi oggi",
+ "{temperature} {unit} rainfall" : "{temperature} {unità} precipitazioni",
+ "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} forti precipitazioni più tardi oggi",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} forti precipitazioni",
+ "{temperature} {unit} rainfall showers later today" : "{temperature} {unit} rovesci di pioggia più tardi oggi",
+ "{temperature} {unit} rainfall showers" : "{temperature} {unit} rovesci di pioggia",
+ "{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} deboli rovesci di pioggia più tardi oggi",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} deboli rovesci di pioggia",
+ "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} forti rovesci di pioggia più tardi oggi",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} forti rovesci di pioggia",
"More weather for {adr}" : "Altro meteo per {adr}",
"Loading weather" : "Caricamento meteo",
"Remove from favorites" : "Rimuovi dai preferiti",
diff --git a/apps/weather_status/l10n/zh_CN.js b/apps/weather_status/l10n/zh_CN.js
index 4bd0eefc301..b970d757dab 100644
--- a/apps/weather_status/l10n/zh_CN.js
+++ b/apps/weather_status/l10n/zh_CN.js
@@ -7,20 +7,32 @@ OC.L10N.register(
"Error" : "错误",
"Weather status" : "天气状况",
"Weather status in your dashboard" : "仪表盘中的天气状况",
- "Weather status integrated in the Dashboard app.\n User's position can be automatically determined or manually defined. A 6 hours forecast is then displayed.\n This status can also be integrated in other places like the Calendar app." : "仪表盘应用程序中集成的天气状况。\n用户可以自动或手动确定位置。然后会显示 6 小时的预报。\n此状况也可以集成到其他地方,例如日历应用。",
+ "Weather status integrated in the Dashboard app.\n User's position can be automatically determined or manually defined. A 6 hours forecast is then displayed.\n This status can also be integrated in other places like the Calendar app." : "仪表盘应用程序中集成的天气状况。\n用户可以自动或手动确定位置。然后会显示 6 小时的预报。\n此天气状况也可以集成到其他地方,例如日历应用。",
"Detect location" : "检测地点",
"Set custom address" : "自定义地址",
"Favorites" : "收藏",
- "{temperature} {unit} clear sky later today" : "今天日晚些时候{temperature} {unit}晴天",
- "{temperature} {unit} clear sky" : "{temperature} {unit}晴天",
- "{temperature} {unit} cloudy later today" : "今日晚些时候{temperature} {unit}多云",
- "{temperature} {unit} cloudy" : "{temperature} {unit}多云",
- "{temperature} {unit} fair weather later today" : "今日晚些时候天气还行{temperature} {unit}",
- "{temperature} {unit} fair weather" : "{temperature} {unit}天气还行",
- "{temperature} {unit} partly cloudy later today" : "今日晚些时候{temperature} {unit}局部多云",
- "{temperature} {unit} partly cloudy" : "{temperature} {unit}局部多云",
- "{temperature} {unit} foggy later today" : "今日晚些时候{temperature} {unit}有雾",
- "{temperature} {unit} foggy" : "{temperature} {unit}雾",
+ "{temperature} {unit} clear sky later today" : "{temperature} {unit} 今日晚些时候晴朗",
+ "{temperature} {unit} clear sky" : "{temperature} {unit} 晴朗",
+ "{temperature} {unit} cloudy later today" : "{temperature} {unit} 今日晚些时候多云",
+ "{temperature} {unit} cloudy" : "{temperature} {unit} 多云",
+ "{temperature} {unit} fair weather later today" : "{temperature} {unit} 今日晚些时候天气不错",
+ "{temperature} {unit} fair weather" : "{temperature} {unit} 天气不错",
+ "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} 今日晚些时候局部多云",
+ "{temperature} {unit} partly cloudy" : "{temperature} {unit} 局部多云",
+ "{temperature} {unit} foggy later today" : "{temperature} {unit} 今日晚些时候有雾",
+ "{temperature} {unit} foggy" : "{temperature} {unit} 有雾",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} 今日晚些时候有零星小雨",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} 零星小雨",
+ "{temperature} {unit} rainfall later today" : "{temperature} {unit} 今日晚些时候有降雨",
+ "{temperature} {unit} rainfall" : "{temperature} {unit} 降雨",
+ "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} 今日晚些时候有强降雨",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} 强降雨",
+ "{temperature} {unit} rainfall showers later today" : "{temperature} {unit} 今日晚些时候有阵雨",
+ "{temperature} {unit} rainfall showers" : "{temperature} {unit} 阵雨",
+ "{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} 今日晚些时候有零星阵雨",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} 零星阵雨",
+ "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} 今日晚些时候有强阵雨",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} 强阵雨",
"More weather for {adr}" : "{adr} 的更多天气信息",
"Loading weather" : "正在加载天气",
"Remove from favorites" : "从收藏夹移除",
diff --git a/apps/weather_status/l10n/zh_CN.json b/apps/weather_status/l10n/zh_CN.json
index 1cb72c4015b..87f9ee95916 100644
--- a/apps/weather_status/l10n/zh_CN.json
+++ b/apps/weather_status/l10n/zh_CN.json
@@ -5,20 +5,32 @@
"Error" : "错误",
"Weather status" : "天气状况",
"Weather status in your dashboard" : "仪表盘中的天气状况",
- "Weather status integrated in the Dashboard app.\n User's position can be automatically determined or manually defined. A 6 hours forecast is then displayed.\n This status can also be integrated in other places like the Calendar app." : "仪表盘应用程序中集成的天气状况。\n用户可以自动或手动确定位置。然后会显示 6 小时的预报。\n此状况也可以集成到其他地方,例如日历应用。",
+ "Weather status integrated in the Dashboard app.\n User's position can be automatically determined or manually defined. A 6 hours forecast is then displayed.\n This status can also be integrated in other places like the Calendar app." : "仪表盘应用程序中集成的天气状况。\n用户可以自动或手动确定位置。然后会显示 6 小时的预报。\n此天气状况也可以集成到其他地方,例如日历应用。",
"Detect location" : "检测地点",
"Set custom address" : "自定义地址",
"Favorites" : "收藏",
- "{temperature} {unit} clear sky later today" : "今天日晚些时候{temperature} {unit}晴天",
- "{temperature} {unit} clear sky" : "{temperature} {unit}晴天",
- "{temperature} {unit} cloudy later today" : "今日晚些时候{temperature} {unit}多云",
- "{temperature} {unit} cloudy" : "{temperature} {unit}多云",
- "{temperature} {unit} fair weather later today" : "今日晚些时候天气还行{temperature} {unit}",
- "{temperature} {unit} fair weather" : "{temperature} {unit}天气还行",
- "{temperature} {unit} partly cloudy later today" : "今日晚些时候{temperature} {unit}局部多云",
- "{temperature} {unit} partly cloudy" : "{temperature} {unit}局部多云",
- "{temperature} {unit} foggy later today" : "今日晚些时候{temperature} {unit}有雾",
- "{temperature} {unit} foggy" : "{temperature} {unit}雾",
+ "{temperature} {unit} clear sky later today" : "{temperature} {unit} 今日晚些时候晴朗",
+ "{temperature} {unit} clear sky" : "{temperature} {unit} 晴朗",
+ "{temperature} {unit} cloudy later today" : "{temperature} {unit} 今日晚些时候多云",
+ "{temperature} {unit} cloudy" : "{temperature} {unit} 多云",
+ "{temperature} {unit} fair weather later today" : "{temperature} {unit} 今日晚些时候天气不错",
+ "{temperature} {unit} fair weather" : "{temperature} {unit} 天气不错",
+ "{temperature} {unit} partly cloudy later today" : "{temperature} {unit} 今日晚些时候局部多云",
+ "{temperature} {unit} partly cloudy" : "{temperature} {unit} 局部多云",
+ "{temperature} {unit} foggy later today" : "{temperature} {unit} 今日晚些时候有雾",
+ "{temperature} {unit} foggy" : "{temperature} {unit} 有雾",
+ "{temperature} {unit} light rainfall later today" : "{temperature} {unit} 今日晚些时候有零星小雨",
+ "{temperature} {unit} light rainfall" : "{temperature} {unit} 零星小雨",
+ "{temperature} {unit} rainfall later today" : "{temperature} {unit} 今日晚些时候有降雨",
+ "{temperature} {unit} rainfall" : "{temperature} {unit} 降雨",
+ "{temperature} {unit} heavy rainfall later today" : "{temperature} {unit} 今日晚些时候有强降雨",
+ "{temperature} {unit} heavy rainfall" : "{temperature} {unit} 强降雨",
+ "{temperature} {unit} rainfall showers later today" : "{temperature} {unit} 今日晚些时候有阵雨",
+ "{temperature} {unit} rainfall showers" : "{temperature} {unit} 阵雨",
+ "{temperature} {unit} light rainfall showers later today" : "{temperature} {unit} 今日晚些时候有零星阵雨",
+ "{temperature} {unit} light rainfall showers" : "{temperature} {unit} 零星阵雨",
+ "{temperature} {unit} heavy rainfall showers later today" : "{temperature} {unit} 今日晚些时候有强阵雨",
+ "{temperature} {unit} heavy rainfall showers" : "{temperature} {unit} 强阵雨",
"More weather for {adr}" : "{adr} 的更多天气信息",
"Loading weather" : "正在加载天气",
"Remove from favorites" : "从收藏夹移除",
diff --git a/apps/weather_status/src/App.vue b/apps/weather_status/src/App.vue
index 7035b586d32..48e1198d555 100644
--- a/apps/weather_status/src/App.vue
+++ b/apps/weather_status/src/App.vue
@@ -25,6 +25,7 @@
<NcActions class="weather-status-menu-item__subheader"
:default-icon="weatherIcon"
:aria-hidden="true"
+ :aria-label="currentWeatherMessage"
:menu-title="currentWeatherMessage">
<NcActionText v-if="gotWeather"
:aria-hidden="true"
diff --git a/apps/workflowengine/l10n/bg.js b/apps/workflowengine/l10n/bg.js
index a8b3c39e4c4..de1aa6efed3 100644
--- a/apps/workflowengine/l10n/bg.js
+++ b/apps/workflowengine/l10n/bg.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Персонализиран mimetype",
"Please enter a valid time span" : "Моля, въведете валиден период от време",
"Select a request URL" : "Избор на URL адрес за заявка",
- "Predefined URLs" : "Предефинирани URL-и",
"Files WebDAV" : "Файлове WebDAV",
- "Others" : "Други",
"Custom URL" : "Персонализиран URL адрес",
"Select a user agent" : "Избор на потребителски агент",
"Android client" : "Android клиент",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Избор на етикет",
"No results" : "Няма резултати",
"%s (invisible)" : "%s (невидим)",
- "%s (restricted)" : "%s (ограничен)"
+ "%s (restricted)" : "%s (ограничен)",
+ "Predefined URLs" : "Предефинирани URL-и",
+ "Others" : "Други"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/bg.json b/apps/workflowengine/l10n/bg.json
index 01c0188d21e..4c8767b9c01 100644
--- a/apps/workflowengine/l10n/bg.json
+++ b/apps/workflowengine/l10n/bg.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Персонализиран mimetype",
"Please enter a valid time span" : "Моля, въведете валиден период от време",
"Select a request URL" : "Избор на URL адрес за заявка",
- "Predefined URLs" : "Предефинирани URL-и",
"Files WebDAV" : "Файлове WebDAV",
- "Others" : "Други",
"Custom URL" : "Персонализиран URL адрес",
"Select a user agent" : "Избор на потребителски агент",
"Android client" : "Android клиент",
@@ -113,6 +111,8 @@
"Select a tag" : "Избор на етикет",
"No results" : "Няма резултати",
"%s (invisible)" : "%s (невидим)",
- "%s (restricted)" : "%s (ограничен)"
+ "%s (restricted)" : "%s (ограничен)",
+ "Predefined URLs" : "Предефинирани URL-и",
+ "Others" : "Други"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/ca.js b/apps/workflowengine/l10n/ca.js
index 58a8b997337..8971c299481 100644
--- a/apps/workflowengine/l10n/ca.js
+++ b/apps/workflowengine/l10n/ca.js
@@ -55,9 +55,7 @@ OC.L10N.register(
"Custom mimetype" : "Tipus mime personalitzat",
"Please enter a valid time span" : "Introduïu un interval de temps vàlid",
"Select a request URL" : "Seleccioneu un URL de petició",
- "Predefined URLs" : "URLs predefinits",
"Files WebDAV" : "Fitxers WebDAV",
- "Others" : "Altres",
"Custom URL" : "URL personalitzat",
"Select a user agent" : "Seleccioneu un agent d'usuari",
"Android client" : "Client android",
@@ -112,6 +110,8 @@ OC.L10N.register(
"Select a tag" : "Seleccioneu una etiqueta",
"No results" : "No hi ha resultats",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restringit)"
+ "%s (restricted)" : "%s (restringit)",
+ "Predefined URLs" : "URLs predefinits",
+ "Others" : "Altres"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/ca.json b/apps/workflowengine/l10n/ca.json
index 2c8a370888d..a9d522e28f2 100644
--- a/apps/workflowengine/l10n/ca.json
+++ b/apps/workflowengine/l10n/ca.json
@@ -53,9 +53,7 @@
"Custom mimetype" : "Tipus mime personalitzat",
"Please enter a valid time span" : "Introduïu un interval de temps vàlid",
"Select a request URL" : "Seleccioneu un URL de petició",
- "Predefined URLs" : "URLs predefinits",
"Files WebDAV" : "Fitxers WebDAV",
- "Others" : "Altres",
"Custom URL" : "URL personalitzat",
"Select a user agent" : "Seleccioneu un agent d'usuari",
"Android client" : "Client android",
@@ -110,6 +108,8 @@
"Select a tag" : "Seleccioneu una etiqueta",
"No results" : "No hi ha resultats",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restringit)"
+ "%s (restricted)" : "%s (restringit)",
+ "Predefined URLs" : "URLs predefinits",
+ "Others" : "Altres"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/cs.js b/apps/workflowengine/l10n/cs.js
index b39a2cb1f9d..24da95076a8 100644
--- a/apps/workflowengine/l10n/cs.js
+++ b/apps/workflowengine/l10n/cs.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Uživatelsky určený mimetyp",
"Please enter a valid time span" : "Zadejte platné časové rozmezí",
"Select a request URL" : "Vyberte URL požadavku",
- "Predefined URLs" : "Předdefinované URL",
"Files WebDAV" : "Soubory WebDAV",
- "Others" : "Ostatní",
"Custom URL" : "Uživatelsky určená URL",
"Select a user agent" : "Vyberte user agent",
"Android client" : "Android klient",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Vybrat štítek",
"No results" : "Žádné výsledky",
"%s (invisible)" : "%s (neviditelné)",
- "%s (restricted)" : "%s (omezeno)"
+ "%s (restricted)" : "%s (omezeno)",
+ "Predefined URLs" : "Předdefinované URL",
+ "Others" : "Ostatní"
},
"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/workflowengine/l10n/cs.json b/apps/workflowengine/l10n/cs.json
index 003d3455bbf..1c35669304d 100644
--- a/apps/workflowengine/l10n/cs.json
+++ b/apps/workflowengine/l10n/cs.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Uživatelsky určený mimetyp",
"Please enter a valid time span" : "Zadejte platné časové rozmezí",
"Select a request URL" : "Vyberte URL požadavku",
- "Predefined URLs" : "Předdefinované URL",
"Files WebDAV" : "Soubory WebDAV",
- "Others" : "Ostatní",
"Custom URL" : "Uživatelsky určená URL",
"Select a user agent" : "Vyberte user agent",
"Android client" : "Android klient",
@@ -113,6 +111,8 @@
"Select a tag" : "Vybrat štítek",
"No results" : "Žádné výsledky",
"%s (invisible)" : "%s (neviditelné)",
- "%s (restricted)" : "%s (omezeno)"
+ "%s (restricted)" : "%s (omezeno)",
+ "Predefined URLs" : "Předdefinované URL",
+ "Others" : "Ostatní"
},"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/workflowengine/l10n/da.js b/apps/workflowengine/l10n/da.js
index 80ec83c6ea7..5261cbdef5a 100644
--- a/apps/workflowengine/l10n/da.js
+++ b/apps/workflowengine/l10n/da.js
@@ -23,9 +23,7 @@ OC.L10N.register(
"Flow" : "Flow",
"Folder" : "Mappe",
"Images" : "Billeder",
- "Predefined URLs" : "Foruddefineret URLer",
"Files WebDAV" : "Fil WebDAV",
- "Others" : "Andre",
"Android client" : "Android klient",
"iOS client" : "iOS klient",
"Desktop client" : "Dekstop klient",
@@ -64,6 +62,8 @@ OC.L10N.register(
"is not member of" : "er ikke medlem af",
"No results" : "Ingen resultater",
"%s (invisible)" : "%s (usynlig)",
- "%s (restricted)" : "%s (begrænset)"
+ "%s (restricted)" : "%s (begrænset)",
+ "Predefined URLs" : "Foruddefineret URLer",
+ "Others" : "Andre"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/da.json b/apps/workflowengine/l10n/da.json
index 3ff57dc34dd..ebb9ebf7ff6 100644
--- a/apps/workflowengine/l10n/da.json
+++ b/apps/workflowengine/l10n/da.json
@@ -21,9 +21,7 @@
"Flow" : "Flow",
"Folder" : "Mappe",
"Images" : "Billeder",
- "Predefined URLs" : "Foruddefineret URLer",
"Files WebDAV" : "Fil WebDAV",
- "Others" : "Andre",
"Android client" : "Android klient",
"iOS client" : "iOS klient",
"Desktop client" : "Dekstop klient",
@@ -62,6 +60,8 @@
"is not member of" : "er ikke medlem af",
"No results" : "Ingen resultater",
"%s (invisible)" : "%s (usynlig)",
- "%s (restricted)" : "%s (begrænset)"
+ "%s (restricted)" : "%s (begrænset)",
+ "Predefined URLs" : "Foruddefineret URLer",
+ "Others" : "Andre"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/de.js b/apps/workflowengine/l10n/de.js
index 6c158908a92..7a425c40062 100644
--- a/apps/workflowengine/l10n/de.js
+++ b/apps/workflowengine/l10n/de.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Benutzerdefinierter Mime-Typ",
"Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben",
"Select a request URL" : "Wähle eine Anforderungs-URL aus",
- "Predefined URLs" : "Vordefinierte URLs",
"Files WebDAV" : "WebDAV für Dateien",
- "Others" : "Andere",
"Custom URL" : "Benutzerdefinierte URL",
"Select a user agent" : "User-Agenten auswählen",
"Android client" : "Android-Client",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Schlagwort auswählen",
"No results" : "Keine Ergebnisse",
"%s (invisible)" : "%s(unsichtbar)",
- "%s (restricted)" : "%s (eingeschränkt)"
+ "%s (restricted)" : "%s (eingeschränkt)",
+ "Predefined URLs" : "Vordefinierte URLs",
+ "Others" : "Andere"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/de.json b/apps/workflowengine/l10n/de.json
index 6980e70ae0e..f1b7b954139 100644
--- a/apps/workflowengine/l10n/de.json
+++ b/apps/workflowengine/l10n/de.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Benutzerdefinierter Mime-Typ",
"Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben",
"Select a request URL" : "Wähle eine Anforderungs-URL aus",
- "Predefined URLs" : "Vordefinierte URLs",
"Files WebDAV" : "WebDAV für Dateien",
- "Others" : "Andere",
"Custom URL" : "Benutzerdefinierte URL",
"Select a user agent" : "User-Agenten auswählen",
"Android client" : "Android-Client",
@@ -113,6 +111,8 @@
"Select a tag" : "Schlagwort auswählen",
"No results" : "Keine Ergebnisse",
"%s (invisible)" : "%s(unsichtbar)",
- "%s (restricted)" : "%s (eingeschränkt)"
+ "%s (restricted)" : "%s (eingeschränkt)",
+ "Predefined URLs" : "Vordefinierte URLs",
+ "Others" : "Andere"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/de_DE.js b/apps/workflowengine/l10n/de_DE.js
index 57a7d678227..99a3a8e3a85 100644
--- a/apps/workflowengine/l10n/de_DE.js
+++ b/apps/workflowengine/l10n/de_DE.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Nextcloud workflow engine" : "Nextcloud Arbeitsablauf-Engine",
"Select a filter" : "Filter wählen",
"Select a comparator" : "Wählen Sie einen Komparator",
+ "Remove filter" : "Filter entfernen",
"Select a file type" : "Dateityp auswählen",
"e.g. httpd/unix-directory" : "z.B. httpd/unix-directory",
"Folder" : "Ordner",
@@ -58,9 +59,7 @@ OC.L10N.register(
"Custom mimetype" : "Benutzerdefinierter MIME-Typ",
"Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben",
"Select a request URL" : "Wählen Sie eine Anforderungs-URL aus",
- "Predefined URLs" : "Vordefinierte URLs",
"Files WebDAV" : "WebDAV für Dateien",
- "Others" : "Andere",
"Custom URL" : "Benutzerdefinierte URL",
"Select a user agent" : "User-Agenten wählen",
"Android client" : "Android-Client",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Add new flow" : "Neuen Ablauf hinzufügen",
"When" : "Wenn",
"and" : "und",
+ "Add a new filter" : "Neuen Filter hinzufügen",
"Cancel" : "Abbrechen",
"Delete" : "Löschen",
"The configuration is invalid" : "Die Konfiguration ist ungültig",
@@ -115,6 +115,8 @@ OC.L10N.register(
"Select a tag" : "Schlagwort auswählen",
"No results" : "Keine Ergebnisse",
"%s (invisible)" : "%s (unsichtbar)",
- "%s (restricted)" : "%s (eingeschränkt)"
+ "%s (restricted)" : "%s (eingeschränkt)",
+ "Predefined URLs" : "Vordefinierte URLs",
+ "Others" : "Andere"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/de_DE.json b/apps/workflowengine/l10n/de_DE.json
index 230a02766aa..faabc161cb1 100644
--- a/apps/workflowengine/l10n/de_DE.json
+++ b/apps/workflowengine/l10n/de_DE.json
@@ -46,6 +46,7 @@
"Nextcloud workflow engine" : "Nextcloud Arbeitsablauf-Engine",
"Select a filter" : "Filter wählen",
"Select a comparator" : "Wählen Sie einen Komparator",
+ "Remove filter" : "Filter entfernen",
"Select a file type" : "Dateityp auswählen",
"e.g. httpd/unix-directory" : "z.B. httpd/unix-directory",
"Folder" : "Ordner",
@@ -56,9 +57,7 @@
"Custom mimetype" : "Benutzerdefinierter MIME-Typ",
"Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben",
"Select a request URL" : "Wählen Sie eine Anforderungs-URL aus",
- "Predefined URLs" : "Vordefinierte URLs",
"Files WebDAV" : "WebDAV für Dateien",
- "Others" : "Andere",
"Custom URL" : "Benutzerdefinierte URL",
"Select a user agent" : "User-Agenten wählen",
"Android client" : "Android-Client",
@@ -70,6 +69,7 @@
"Add new flow" : "Neuen Ablauf hinzufügen",
"When" : "Wenn",
"and" : "und",
+ "Add a new filter" : "Neuen Filter hinzufügen",
"Cancel" : "Abbrechen",
"Delete" : "Löschen",
"The configuration is invalid" : "Die Konfiguration ist ungültig",
@@ -113,6 +113,8 @@
"Select a tag" : "Schlagwort auswählen",
"No results" : "Keine Ergebnisse",
"%s (invisible)" : "%s (unsichtbar)",
- "%s (restricted)" : "%s (eingeschränkt)"
+ "%s (restricted)" : "%s (eingeschränkt)",
+ "Predefined URLs" : "Vordefinierte URLs",
+ "Others" : "Andere"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/el.js b/apps/workflowengine/l10n/el.js
index 73accc517e9..2250da2ca89 100644
--- a/apps/workflowengine/l10n/el.js
+++ b/apps/workflowengine/l10n/el.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Προσαρμοσμένος τύπος mime",
"Please enter a valid time span" : "Εισαγάγετε έγκυρο χρονικό διάστημα",
"Select a request URL" : "Επιλέξτε μια διεύθυνση URL αιτήματος",
- "Predefined URLs" : "Προορισμένα URLs",
"Files WebDAV" : "Αρχεία WebDAV",
- "Others" : "Άλλοι",
"Custom URL" : "Προσαρμοσμένο URL",
"Select a user agent" : "Επιλογή προγράμματος χρήστη",
"Android client" : "Πελάτης Android",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Επιλογή ετικέτας",
"No results" : "Κανένα αποτέλεσμα",
"%s (invisible)" : "%s (αόρατο)",
- "%s (restricted)" : "%s (περιορισμένο)"
+ "%s (restricted)" : "%s (περιορισμένο)",
+ "Predefined URLs" : "Προορισμένα URLs",
+ "Others" : "Άλλοι"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/el.json b/apps/workflowengine/l10n/el.json
index ba69693b936..93e83ed9ae3 100644
--- a/apps/workflowengine/l10n/el.json
+++ b/apps/workflowengine/l10n/el.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Προσαρμοσμένος τύπος mime",
"Please enter a valid time span" : "Εισαγάγετε έγκυρο χρονικό διάστημα",
"Select a request URL" : "Επιλέξτε μια διεύθυνση URL αιτήματος",
- "Predefined URLs" : "Προορισμένα URLs",
"Files WebDAV" : "Αρχεία WebDAV",
- "Others" : "Άλλοι",
"Custom URL" : "Προσαρμοσμένο URL",
"Select a user agent" : "Επιλογή προγράμματος χρήστη",
"Android client" : "Πελάτης Android",
@@ -113,6 +111,8 @@
"Select a tag" : "Επιλογή ετικέτας",
"No results" : "Κανένα αποτέλεσμα",
"%s (invisible)" : "%s (αόρατο)",
- "%s (restricted)" : "%s (περιορισμένο)"
+ "%s (restricted)" : "%s (περιορισμένο)",
+ "Predefined URLs" : "Προορισμένα URLs",
+ "Others" : "Άλλοι"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/en_GB.js b/apps/workflowengine/l10n/en_GB.js
index 24807468973..a9ae47b2668 100644
--- a/apps/workflowengine/l10n/en_GB.js
+++ b/apps/workflowengine/l10n/en_GB.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Nextcloud workflow engine" : "Nextcloud workflow engine",
"Select a filter" : "Select a filter",
"Select a comparator" : "Select a comparator",
+ "Remove filter" : "Remove filter",
"Select a file type" : "Select a file type",
"e.g. httpd/unix-directory" : "e.g. httpd/unix-directory",
"Folder" : "Folder",
@@ -58,9 +59,7 @@ OC.L10N.register(
"Custom mimetype" : "Custom mimetype",
"Please enter a valid time span" : "Please enter a valid time span",
"Select a request URL" : "Select a request URL",
- "Predefined URLs" : "Predefined URLs",
"Files WebDAV" : "Files WebDAV",
- "Others" : "Others",
"Custom URL" : "Custom URL",
"Select a user agent" : "Select a user agent",
"Android client" : "Android client",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Add new flow" : "Add new flow",
"When" : "When",
"and" : "and",
+ "Add a new filter" : "Add a new filter",
"Cancel" : "Cancel",
"Delete" : "Delete",
"The configuration is invalid" : "The configuration is invalid",
@@ -115,6 +115,8 @@ OC.L10N.register(
"Select a tag" : "Select a tag",
"No results" : "No results",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restricted)"
+ "%s (restricted)" : "%s (restricted)",
+ "Predefined URLs" : "Predefined URLs",
+ "Others" : "Others"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/en_GB.json b/apps/workflowengine/l10n/en_GB.json
index 6ed0ed979c6..03b2e4beaeb 100644
--- a/apps/workflowengine/l10n/en_GB.json
+++ b/apps/workflowengine/l10n/en_GB.json
@@ -46,6 +46,7 @@
"Nextcloud workflow engine" : "Nextcloud workflow engine",
"Select a filter" : "Select a filter",
"Select a comparator" : "Select a comparator",
+ "Remove filter" : "Remove filter",
"Select a file type" : "Select a file type",
"e.g. httpd/unix-directory" : "e.g. httpd/unix-directory",
"Folder" : "Folder",
@@ -56,9 +57,7 @@
"Custom mimetype" : "Custom mimetype",
"Please enter a valid time span" : "Please enter a valid time span",
"Select a request URL" : "Select a request URL",
- "Predefined URLs" : "Predefined URLs",
"Files WebDAV" : "Files WebDAV",
- "Others" : "Others",
"Custom URL" : "Custom URL",
"Select a user agent" : "Select a user agent",
"Android client" : "Android client",
@@ -70,6 +69,7 @@
"Add new flow" : "Add new flow",
"When" : "When",
"and" : "and",
+ "Add a new filter" : "Add a new filter",
"Cancel" : "Cancel",
"Delete" : "Delete",
"The configuration is invalid" : "The configuration is invalid",
@@ -113,6 +113,8 @@
"Select a tag" : "Select a tag",
"No results" : "No results",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restricted)"
+ "%s (restricted)" : "%s (restricted)",
+ "Predefined URLs" : "Predefined URLs",
+ "Others" : "Others"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/eo.js b/apps/workflowengine/l10n/eo.js
index ef84eef0e7d..6f3662b1d4a 100644
--- a/apps/workflowengine/l10n/eo.js
+++ b/apps/workflowengine/l10n/eo.js
@@ -44,9 +44,7 @@ OC.L10N.register(
"Custom mimetype" : "Propra MIME-tipo",
"Please enter a valid time span" : "Entajpu validan intertempon",
"Select a request URL" : "Elekti petan retadreson",
- "Predefined URLs" : "Antaŭdifinitaj retadresoj",
"Files WebDAV" : "Dosieroj WebDAV",
- "Others" : "Aliaj",
"Custom URL" : "Propra retadreso",
"Select a user agent" : "Elekti retumil-identigilo („user-agent“)",
"Android client" : "Androida kliento",
@@ -92,6 +90,8 @@ OC.L10N.register(
"Select a tag" : "Elekti etikedon",
"No results" : "Neniu rezulto",
"%s (invisible)" : "%s (nevidebla)",
- "%s (restricted)" : "%s (limigita)"
+ "%s (restricted)" : "%s (limigita)",
+ "Predefined URLs" : "Antaŭdifinitaj retadresoj",
+ "Others" : "Aliaj"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/eo.json b/apps/workflowengine/l10n/eo.json
index 447110d55b2..95b4dc08452 100644
--- a/apps/workflowengine/l10n/eo.json
+++ b/apps/workflowengine/l10n/eo.json
@@ -42,9 +42,7 @@
"Custom mimetype" : "Propra MIME-tipo",
"Please enter a valid time span" : "Entajpu validan intertempon",
"Select a request URL" : "Elekti petan retadreson",
- "Predefined URLs" : "Antaŭdifinitaj retadresoj",
"Files WebDAV" : "Dosieroj WebDAV",
- "Others" : "Aliaj",
"Custom URL" : "Propra retadreso",
"Select a user agent" : "Elekti retumil-identigilo („user-agent“)",
"Android client" : "Androida kliento",
@@ -90,6 +88,8 @@
"Select a tag" : "Elekti etikedon",
"No results" : "Neniu rezulto",
"%s (invisible)" : "%s (nevidebla)",
- "%s (restricted)" : "%s (limigita)"
+ "%s (restricted)" : "%s (limigita)",
+ "Predefined URLs" : "Antaŭdifinitaj retadresoj",
+ "Others" : "Aliaj"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/es.js b/apps/workflowengine/l10n/es.js
index beb0dd2e1a6..96a0d2d0482 100644
--- a/apps/workflowengine/l10n/es.js
+++ b/apps/workflowengine/l10n/es.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud",
"Select a filter" : "Seleccione un filtro",
"Select a comparator" : "Seleccione un comparador",
+ "Remove filter" : "Quitar filtro",
"Select a file type" : "Selecciona un tipo de archivo",
"e.g. httpd/unix-directory" : "p.ej.: httpd/carpeta-unix",
"Folder" : "Carpeta",
@@ -58,9 +59,7 @@ OC.L10N.register(
"Custom mimetype" : "Tipo MIME (mimetype) personalizado",
"Please enter a valid time span" : "Por favor especifique un intervalo de tiempo válido",
"Select a request URL" : "Selecciona una URL de petición",
- "Predefined URLs" : "URLs predefinidas",
"Files WebDAV" : "Archivos WebDAV",
- "Others" : "Otros",
"Custom URL" : "URL personalizada",
"Select a user agent" : "Selecciona un agente de usuario",
"Android client" : "Cliente Android",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Add new flow" : "Añadir nuevo flujo",
"When" : "Cuando",
"and" : "y",
+ "Add a new filter" : "Añadir un nuevo filtro",
"Cancel" : "Cancelar",
"Delete" : "Eliminar",
"The configuration is invalid" : "La configuración es incorrecta",
@@ -115,6 +115,8 @@ OC.L10N.register(
"Select a tag" : "Selecciona una etiqueta",
"No results" : "Sin resultados",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restringido)"
+ "%s (restricted)" : "%s (restringido)",
+ "Predefined URLs" : "URLs predefinidas",
+ "Others" : "Otros"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es.json b/apps/workflowengine/l10n/es.json
index 670f13007d4..cacaa675cec 100644
--- a/apps/workflowengine/l10n/es.json
+++ b/apps/workflowengine/l10n/es.json
@@ -46,6 +46,7 @@
"Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud",
"Select a filter" : "Seleccione un filtro",
"Select a comparator" : "Seleccione un comparador",
+ "Remove filter" : "Quitar filtro",
"Select a file type" : "Selecciona un tipo de archivo",
"e.g. httpd/unix-directory" : "p.ej.: httpd/carpeta-unix",
"Folder" : "Carpeta",
@@ -56,9 +57,7 @@
"Custom mimetype" : "Tipo MIME (mimetype) personalizado",
"Please enter a valid time span" : "Por favor especifique un intervalo de tiempo válido",
"Select a request URL" : "Selecciona una URL de petición",
- "Predefined URLs" : "URLs predefinidas",
"Files WebDAV" : "Archivos WebDAV",
- "Others" : "Otros",
"Custom URL" : "URL personalizada",
"Select a user agent" : "Selecciona un agente de usuario",
"Android client" : "Cliente Android",
@@ -70,6 +69,7 @@
"Add new flow" : "Añadir nuevo flujo",
"When" : "Cuando",
"and" : "y",
+ "Add a new filter" : "Añadir un nuevo filtro",
"Cancel" : "Cancelar",
"Delete" : "Eliminar",
"The configuration is invalid" : "La configuración es incorrecta",
@@ -113,6 +113,8 @@
"Select a tag" : "Selecciona una etiqueta",
"No results" : "Sin resultados",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restringido)"
+ "%s (restricted)" : "%s (restringido)",
+ "Predefined URLs" : "URLs predefinidas",
+ "Others" : "Otros"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/es_AR.js b/apps/workflowengine/l10n/es_AR.js
index 8f7afd35248..eb4c929f047 100644
--- a/apps/workflowengine/l10n/es_AR.js
+++ b/apps/workflowengine/l10n/es_AR.js
@@ -22,7 +22,6 @@ OC.L10N.register(
"Check %s is invalid or does not exist" : "La validación %s es inválida o no existe",
"Folder" : "Carpeta",
"Images" : "Imágenes",
- "Predefined URLs" : "URLs predefinidos",
"Files WebDAV" : "Archivos en WebDAV",
"Android client" : "Cliente Android",
"iOS client" : "Cliente iOS",
@@ -59,6 +58,7 @@ OC.L10N.register(
"is not member of" : "no es miembro de",
"No results" : "Sin resultados",
"%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
+ "%s (restricted)" : "%s (restringido)",
+ "Predefined URLs" : "URLs predefinidos"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_AR.json b/apps/workflowengine/l10n/es_AR.json
index 26f645c362f..eba1384612c 100644
--- a/apps/workflowengine/l10n/es_AR.json
+++ b/apps/workflowengine/l10n/es_AR.json
@@ -20,7 +20,6 @@
"Check %s is invalid or does not exist" : "La validación %s es inválida o no existe",
"Folder" : "Carpeta",
"Images" : "Imágenes",
- "Predefined URLs" : "URLs predefinidos",
"Files WebDAV" : "Archivos en WebDAV",
"Android client" : "Cliente Android",
"iOS client" : "Cliente iOS",
@@ -57,6 +56,7 @@
"is not member of" : "no es miembro de",
"No results" : "Sin resultados",
"%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
+ "%s (restricted)" : "%s (restringido)",
+ "Predefined URLs" : "URLs predefinidos"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/es_MX.js b/apps/workflowengine/l10n/es_MX.js
index 8a1468c1d2f..1620a97ef63 100644
--- a/apps/workflowengine/l10n/es_MX.js
+++ b/apps/workflowengine/l10n/es_MX.js
@@ -22,7 +22,6 @@ OC.L10N.register(
"Check %s is invalid or does not exist" : "La validación %s es inválida o no existe",
"Folder" : "Carpeta",
"Images" : "Imágenes",
- "Predefined URLs" : "URLs predefinidos",
"Files WebDAV" : "Archivos WebDAV",
"Android client" : "Cliente Android",
"iOS client" : "Cliente iOS",
@@ -59,6 +58,7 @@ OC.L10N.register(
"is not member of" : "no es miembro de",
"No results" : "Sin resultados",
"%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
+ "%s (restricted)" : "%s (restringido)",
+ "Predefined URLs" : "URLs predefinidos"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/es_MX.json b/apps/workflowengine/l10n/es_MX.json
index cc2ad7fae28..12263d42acd 100644
--- a/apps/workflowengine/l10n/es_MX.json
+++ b/apps/workflowengine/l10n/es_MX.json
@@ -20,7 +20,6 @@
"Check %s is invalid or does not exist" : "La validación %s es inválida o no existe",
"Folder" : "Carpeta",
"Images" : "Imágenes",
- "Predefined URLs" : "URLs predefinidos",
"Files WebDAV" : "Archivos WebDAV",
"Android client" : "Cliente Android",
"iOS client" : "Cliente iOS",
@@ -57,6 +56,7 @@
"is not member of" : "no es miembro de",
"No results" : "Sin resultados",
"%s (invisible)" : "%s (invisible) ",
- "%s (restricted)" : "%s (restringido)"
+ "%s (restricted)" : "%s (restringido)",
+ "Predefined URLs" : "URLs predefinidos"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/eu.js b/apps/workflowengine/l10n/eu.js
index 79faa1e8fdf..afc97da69ea 100644
--- a/apps/workflowengine/l10n/eu.js
+++ b/apps/workflowengine/l10n/eu.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Mime mota pertsonalizatua",
"Please enter a valid time span" : "Sartu baliozko denbora tarte bat",
"Select a request URL" : "Hautatu eskaera URL bat",
- "Predefined URLs" : "Aurrez definitutako URL-ak",
"Files WebDAV" : "WebDAV fitxategiak",
- "Others" : "Bestelakoak",
"Custom URL" : "URL pertsonalizatua",
"Select a user agent" : "Hautatu erabiltzaile-agentea",
"Android client" : "Android bezeroa",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Hautatu etiketa bat",
"No results" : "Emaitzarik ez",
"%s (invisible)" : "%s (ikusezina)",
- "%s (restricted)" : "%s (mugatua)"
+ "%s (restricted)" : "%s (mugatua)",
+ "Predefined URLs" : "Aurrez definitutako URL-ak",
+ "Others" : "Bestelakoak"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/eu.json b/apps/workflowengine/l10n/eu.json
index b87e1d5bf65..868c6354c7e 100644
--- a/apps/workflowengine/l10n/eu.json
+++ b/apps/workflowengine/l10n/eu.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Mime mota pertsonalizatua",
"Please enter a valid time span" : "Sartu baliozko denbora tarte bat",
"Select a request URL" : "Hautatu eskaera URL bat",
- "Predefined URLs" : "Aurrez definitutako URL-ak",
"Files WebDAV" : "WebDAV fitxategiak",
- "Others" : "Bestelakoak",
"Custom URL" : "URL pertsonalizatua",
"Select a user agent" : "Hautatu erabiltzaile-agentea",
"Android client" : "Android bezeroa",
@@ -113,6 +111,8 @@
"Select a tag" : "Hautatu etiketa bat",
"No results" : "Emaitzarik ez",
"%s (invisible)" : "%s (ikusezina)",
- "%s (restricted)" : "%s (mugatua)"
+ "%s (restricted)" : "%s (mugatua)",
+ "Predefined URLs" : "Aurrez definitutako URL-ak",
+ "Others" : "Bestelakoak"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/fa.js b/apps/workflowengine/l10n/fa.js
index bf7bf85f47b..6b7d8f5b02c 100644
--- a/apps/workflowengine/l10n/fa.js
+++ b/apps/workflowengine/l10n/fa.js
@@ -23,9 +23,7 @@ OC.L10N.register(
"Flow" : "جریان",
"Folder" : "پوشه",
"Images" : "عکسها",
- "Predefined URLs" : "URL از پیش تعریف شده ",
"Files WebDAV" : "فایل های WebDAV",
- "Others" : "دیگران",
"Android client" : "دستگاه های اندروید ",
"iOS client" : "دستگاه های IOS",
"Desktop client" : "دستگاه دسکتاپ",
@@ -59,6 +57,8 @@ OC.L10N.register(
"User group membership" : "عضویت کاربر در گروه",
"is member of" : "عضو است در ",
"is not member of" : "عضو نیست در ",
- "No results" : "نتیجه ای یافت نشد"
+ "No results" : "نتیجه ای یافت نشد",
+ "Predefined URLs" : "URL از پیش تعریف شده ",
+ "Others" : "دیگران"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/workflowengine/l10n/fa.json b/apps/workflowengine/l10n/fa.json
index 20b2025ff95..994f2766f68 100644
--- a/apps/workflowengine/l10n/fa.json
+++ b/apps/workflowengine/l10n/fa.json
@@ -21,9 +21,7 @@
"Flow" : "جریان",
"Folder" : "پوشه",
"Images" : "عکسها",
- "Predefined URLs" : "URL از پیش تعریف شده ",
"Files WebDAV" : "فایل های WebDAV",
- "Others" : "دیگران",
"Android client" : "دستگاه های اندروید ",
"iOS client" : "دستگاه های IOS",
"Desktop client" : "دستگاه دسکتاپ",
@@ -57,6 +55,8 @@
"User group membership" : "عضویت کاربر در گروه",
"is member of" : "عضو است در ",
"is not member of" : "عضو نیست در ",
- "No results" : "نتیجه ای یافت نشد"
+ "No results" : "نتیجه ای یافت نشد",
+ "Predefined URLs" : "URL از پیش تعریف شده ",
+ "Others" : "دیگران"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/fi.js b/apps/workflowengine/l10n/fi.js
index f86cd965302..46e16f0bacd 100644
--- a/apps/workflowengine/l10n/fi.js
+++ b/apps/workflowengine/l10n/fi.js
@@ -46,9 +46,7 @@ OC.L10N.register(
"Office documents" : "Toimisto-ohjelmistojen asiakirjat",
"PDF documents" : "PDF-asiakirjat",
"Custom mimetype" : "Mukautettu MIME-tyyppi",
- "Predefined URLs" : "Ennalta määritellyt URL-osoitteet",
"Files WebDAV" : "Tiedostot WebDAV",
- "Others" : "Muut",
"Android client" : "Android-sovellus",
"iOS client" : "iOS-sovellus",
"Desktop client" : "Työpöytäsovellus",
@@ -90,6 +88,8 @@ OC.L10N.register(
"is not member of" : "ei ole jäsen",
"No results" : "Ei tuloksia",
"%s (invisible)" : "%s (näkymätön)",
- "%s (restricted)" : "%s (rajoitettu)"
+ "%s (restricted)" : "%s (rajoitettu)",
+ "Predefined URLs" : "Ennalta määritellyt URL-osoitteet",
+ "Others" : "Muut"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/fi.json b/apps/workflowengine/l10n/fi.json
index 4db37a771b8..73b184b45f6 100644
--- a/apps/workflowengine/l10n/fi.json
+++ b/apps/workflowengine/l10n/fi.json
@@ -44,9 +44,7 @@
"Office documents" : "Toimisto-ohjelmistojen asiakirjat",
"PDF documents" : "PDF-asiakirjat",
"Custom mimetype" : "Mukautettu MIME-tyyppi",
- "Predefined URLs" : "Ennalta määritellyt URL-osoitteet",
"Files WebDAV" : "Tiedostot WebDAV",
- "Others" : "Muut",
"Android client" : "Android-sovellus",
"iOS client" : "iOS-sovellus",
"Desktop client" : "Työpöytäsovellus",
@@ -88,6 +86,8 @@
"is not member of" : "ei ole jäsen",
"No results" : "Ei tuloksia",
"%s (invisible)" : "%s (näkymätön)",
- "%s (restricted)" : "%s (rajoitettu)"
+ "%s (restricted)" : "%s (rajoitettu)",
+ "Predefined URLs" : "Ennalta määritellyt URL-osoitteet",
+ "Others" : "Muut"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/fr.js b/apps/workflowengine/l10n/fr.js
index edd9323103a..44a0ece1b6b 100644
--- a/apps/workflowengine/l10n/fr.js
+++ b/apps/workflowengine/l10n/fr.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "mimetype personnalisé",
"Please enter a valid time span" : "Merci de saisir une période de temps valide",
"Select a request URL" : "Sélectionnez une requête URL",
- "Predefined URLs" : "URL prédéfinis",
"Files WebDAV" : "Fichiers WebDAV",
- "Others" : "Autres",
"Custom URL" : "URL personnalisée",
"Select a user agent" : "Sélectionnez un utilisateur",
"Android client" : "Client Android",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Choisir une étiquette",
"No results" : "Aucun résultat",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restreint)"
+ "%s (restricted)" : "%s (restreint)",
+ "Predefined URLs" : "URL prédéfinis",
+ "Others" : "Autres"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/fr.json b/apps/workflowengine/l10n/fr.json
index 1aca8aed318..7812f154224 100644
--- a/apps/workflowengine/l10n/fr.json
+++ b/apps/workflowengine/l10n/fr.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "mimetype personnalisé",
"Please enter a valid time span" : "Merci de saisir une période de temps valide",
"Select a request URL" : "Sélectionnez une requête URL",
- "Predefined URLs" : "URL prédéfinis",
"Files WebDAV" : "Fichiers WebDAV",
- "Others" : "Autres",
"Custom URL" : "URL personnalisée",
"Select a user agent" : "Sélectionnez un utilisateur",
"Android client" : "Client Android",
@@ -113,6 +111,8 @@
"Select a tag" : "Choisir une étiquette",
"No results" : "Aucun résultat",
"%s (invisible)" : "%s (invisible)",
- "%s (restricted)" : "%s (restreint)"
+ "%s (restricted)" : "%s (restreint)",
+ "Predefined URLs" : "URL prédéfinis",
+ "Others" : "Autres"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/gl.js b/apps/workflowengine/l10n/gl.js
index 6b81c74b238..b4a1f62d640 100644
--- a/apps/workflowengine/l10n/gl.js
+++ b/apps/workflowengine/l10n/gl.js
@@ -57,9 +57,7 @@ OC.L10N.register(
"Custom mimetype" : "Mimetipe personalizado",
"Please enter a valid time span" : "Introduza un intervalo de tempo válido",
"Select a request URL" : "Seleccione un URL de solicitude",
- "Predefined URLs" : "URL predefinidos",
"Files WebDAV" : "Ficheiros WebDAV",
- "Others" : "Outros",
"Custom URL" : "URL personalizado",
"Select a user agent" : "Seleccionar un axente de usuario",
"Android client" : "Cliente Android",
@@ -114,6 +112,8 @@ OC.L10N.register(
"Select a tag" : "Seleccione unha etiqueta",
"No results" : "Sen resultados",
"%s (invisible)" : "%s (invisíbel)",
- "%s (restricted)" : "%s (restrinxido)"
+ "%s (restricted)" : "%s (restrinxido)",
+ "Predefined URLs" : "URL predefinidos",
+ "Others" : "Outros"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/gl.json b/apps/workflowengine/l10n/gl.json
index 5bf41dc7188..bd8b5bae417 100644
--- a/apps/workflowengine/l10n/gl.json
+++ b/apps/workflowengine/l10n/gl.json
@@ -55,9 +55,7 @@
"Custom mimetype" : "Mimetipe personalizado",
"Please enter a valid time span" : "Introduza un intervalo de tempo válido",
"Select a request URL" : "Seleccione un URL de solicitude",
- "Predefined URLs" : "URL predefinidos",
"Files WebDAV" : "Ficheiros WebDAV",
- "Others" : "Outros",
"Custom URL" : "URL personalizado",
"Select a user agent" : "Seleccionar un axente de usuario",
"Android client" : "Cliente Android",
@@ -112,6 +110,8 @@
"Select a tag" : "Seleccione unha etiqueta",
"No results" : "Sen resultados",
"%s (invisible)" : "%s (invisíbel)",
- "%s (restricted)" : "%s (restrinxido)"
+ "%s (restricted)" : "%s (restrinxido)",
+ "Predefined URLs" : "URL predefinidos",
+ "Others" : "Outros"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/he.js b/apps/workflowengine/l10n/he.js
index d8fa6e54df0..57769469f75 100644
--- a/apps/workflowengine/l10n/he.js
+++ b/apps/workflowengine/l10n/he.js
@@ -48,9 +48,7 @@ OC.L10N.register(
"Custom mimetype" : "נא לבחור טיפוס MIME",
"Please enter a valid time span" : "נא למלא טווח זמן תקין",
"Select a request URL" : "נא לבחור את כתובת הבקשה",
- "Predefined URLs" : "כתובות שמוגדרות מראש",
"Files WebDAV" : "WebDAV קבצים",
- "Others" : "חרים",
"Custom URL" : "כתובת מותאמת אישית",
"Select a user agent" : "נא לבחור סוכן משתמש",
"Android client" : "לקוח Android",
@@ -104,6 +102,8 @@ OC.L10N.register(
"Select a tag" : "נא לבחור תגית",
"No results" : "אין תוצאות",
"%s (invisible)" : "%s (נסתר)",
- "%s (restricted)" : "%s (מוגבל)"
+ "%s (restricted)" : "%s (מוגבל)",
+ "Predefined URLs" : "כתובות שמוגדרות מראש",
+ "Others" : "חרים"
},
"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/workflowengine/l10n/he.json b/apps/workflowengine/l10n/he.json
index 85167d9bce0..c7e8ae6f904 100644
--- a/apps/workflowengine/l10n/he.json
+++ b/apps/workflowengine/l10n/he.json
@@ -46,9 +46,7 @@
"Custom mimetype" : "נא לבחור טיפוס MIME",
"Please enter a valid time span" : "נא למלא טווח זמן תקין",
"Select a request URL" : "נא לבחור את כתובת הבקשה",
- "Predefined URLs" : "כתובות שמוגדרות מראש",
"Files WebDAV" : "WebDAV קבצים",
- "Others" : "חרים",
"Custom URL" : "כתובת מותאמת אישית",
"Select a user agent" : "נא לבחור סוכן משתמש",
"Android client" : "לקוח Android",
@@ -102,6 +100,8 @@
"Select a tag" : "נא לבחור תגית",
"No results" : "אין תוצאות",
"%s (invisible)" : "%s (נסתר)",
- "%s (restricted)" : "%s (מוגבל)"
+ "%s (restricted)" : "%s (מוגבל)",
+ "Predefined URLs" : "כתובות שמוגדרות מראש",
+ "Others" : "חרים"
},"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/workflowengine/l10n/hr.js b/apps/workflowengine/l10n/hr.js
index c0bc616851d..e3a6143153e 100644
--- a/apps/workflowengine/l10n/hr.js
+++ b/apps/workflowengine/l10n/hr.js
@@ -57,9 +57,7 @@ OC.L10N.register(
"Custom mimetype" : "Prilagođeni mimetype",
"Please enter a valid time span" : "Unesite valjani vremenski raspon",
"Select a request URL" : "Odaberi URL zahtjeva",
- "Predefined URLs" : "Unaprijed definirani URL-ovi",
"Files WebDAV" : "Datoteke WebDAV",
- "Others" : "Ostalo",
"Custom URL" : "Prilagođeni URL",
"Select a user agent" : "Odaberi korisničkog agenta",
"Android client" : "Klijent za Android",
@@ -114,6 +112,8 @@ OC.L10N.register(
"Select a tag" : "Odaberi oznaku",
"No results" : "Nema rezultata",
"%s (invisible)" : "%s (nevidljivo)",
- "%s (restricted)" : "%s (ograničeno)"
+ "%s (restricted)" : "%s (ograničeno)",
+ "Predefined URLs" : "Unaprijed definirani URL-ovi",
+ "Others" : "Ostalo"
},
"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/workflowengine/l10n/hr.json b/apps/workflowengine/l10n/hr.json
index a0fcafcd9c5..e06ff227ea6 100644
--- a/apps/workflowengine/l10n/hr.json
+++ b/apps/workflowengine/l10n/hr.json
@@ -55,9 +55,7 @@
"Custom mimetype" : "Prilagođeni mimetype",
"Please enter a valid time span" : "Unesite valjani vremenski raspon",
"Select a request URL" : "Odaberi URL zahtjeva",
- "Predefined URLs" : "Unaprijed definirani URL-ovi",
"Files WebDAV" : "Datoteke WebDAV",
- "Others" : "Ostalo",
"Custom URL" : "Prilagođeni URL",
"Select a user agent" : "Odaberi korisničkog agenta",
"Android client" : "Klijent za Android",
@@ -112,6 +110,8 @@
"Select a tag" : "Odaberi oznaku",
"No results" : "Nema rezultata",
"%s (invisible)" : "%s (nevidljivo)",
- "%s (restricted)" : "%s (ograničeno)"
+ "%s (restricted)" : "%s (ograničeno)",
+ "Predefined URLs" : "Unaprijed definirani URL-ovi",
+ "Others" : "Ostalo"
},"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/workflowengine/l10n/hu.js b/apps/workflowengine/l10n/hu.js
index 5b43a9b8bd7..6e6ddb6135f 100644
--- a/apps/workflowengine/l10n/hu.js
+++ b/apps/workflowengine/l10n/hu.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Egyéni MIME-típus",
"Please enter a valid time span" : "Érvényes időtartamot adjon meg",
"Select a request URL" : "Válassza ki a kérés URL-jét",
- "Predefined URLs" : "Előre definiált URL-ek",
"Files WebDAV" : "WebDAV-fájlok",
- "Others" : "Egyebek",
"Custom URL" : "Egyéni URL",
"Select a user agent" : "Válasszon felhasználói ügynököt",
"Android client" : "Android kliens",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Válasszon címkét",
"No results" : "Nincs találat",
"%s (invisible)" : "%s (láthatatlan)",
- "%s (restricted)" : "%s (korlátozott)"
+ "%s (restricted)" : "%s (korlátozott)",
+ "Predefined URLs" : "Előre definiált URL-ek",
+ "Others" : "Egyebek"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/hu.json b/apps/workflowengine/l10n/hu.json
index df603c04094..ae79b31b533 100644
--- a/apps/workflowengine/l10n/hu.json
+++ b/apps/workflowengine/l10n/hu.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Egyéni MIME-típus",
"Please enter a valid time span" : "Érvényes időtartamot adjon meg",
"Select a request URL" : "Válassza ki a kérés URL-jét",
- "Predefined URLs" : "Előre definiált URL-ek",
"Files WebDAV" : "WebDAV-fájlok",
- "Others" : "Egyebek",
"Custom URL" : "Egyéni URL",
"Select a user agent" : "Válasszon felhasználói ügynököt",
"Android client" : "Android kliens",
@@ -113,6 +111,8 @@
"Select a tag" : "Válasszon címkét",
"No results" : "Nincs találat",
"%s (invisible)" : "%s (láthatatlan)",
- "%s (restricted)" : "%s (korlátozott)"
+ "%s (restricted)" : "%s (korlátozott)",
+ "Predefined URLs" : "Előre definiált URL-ek",
+ "Others" : "Egyebek"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/is.js b/apps/workflowengine/l10n/is.js
index 87a5e388e44..2451cf6c164 100644
--- a/apps/workflowengine/l10n/is.js
+++ b/apps/workflowengine/l10n/is.js
@@ -23,7 +23,6 @@ OC.L10N.register(
"Flow" : "Flæði",
"Folder" : "Mappa",
"Images" : "Myndir",
- "Predefined URLs" : "Forákvarðaðar slóðir",
"Files WebDAV" : "WebDAV skráa",
"Android client" : "Android-biðlari",
"iOS client" : "iOS-biðlari",
@@ -67,6 +66,7 @@ OC.L10N.register(
"is not member of" : "er ekki meðlimur í",
"No results" : "Engar niðurstöður",
"%s (invisible)" : "%s (ósýnilegt)",
- "%s (restricted)" : "%s (takmarkaður aðgangur)"
+ "%s (restricted)" : "%s (takmarkaður aðgangur)",
+ "Predefined URLs" : "Forákvarðaðar slóðir"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/apps/workflowengine/l10n/is.json b/apps/workflowengine/l10n/is.json
index 475b6b83073..d7107676bed 100644
--- a/apps/workflowengine/l10n/is.json
+++ b/apps/workflowengine/l10n/is.json
@@ -21,7 +21,6 @@
"Flow" : "Flæði",
"Folder" : "Mappa",
"Images" : "Myndir",
- "Predefined URLs" : "Forákvarðaðar slóðir",
"Files WebDAV" : "WebDAV skráa",
"Android client" : "Android-biðlari",
"iOS client" : "iOS-biðlari",
@@ -65,6 +64,7 @@
"is not member of" : "er ekki meðlimur í",
"No results" : "Engar niðurstöður",
"%s (invisible)" : "%s (ósýnilegt)",
- "%s (restricted)" : "%s (takmarkaður aðgangur)"
+ "%s (restricted)" : "%s (takmarkaður aðgangur)",
+ "Predefined URLs" : "Forákvarðaðar slóðir"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/it.js b/apps/workflowengine/l10n/it.js
index b851e319e5a..90fab46eea8 100644
--- a/apps/workflowengine/l10n/it.js
+++ b/apps/workflowengine/l10n/it.js
@@ -57,9 +57,7 @@ OC.L10N.register(
"Custom mimetype" : "Tipo MIME personalizzato",
"Please enter a valid time span" : "Digita un intervallo temporale valido",
"Select a request URL" : "Seleziona un URL di richiesta",
- "Predefined URLs" : "URL predefiniti",
"Files WebDAV" : "File WebDAV",
- "Others" : "Altri",
"Custom URL" : "URL personalizzato",
"Select a user agent" : "Seleziona user agent",
"Android client" : "Client Android",
@@ -114,6 +112,8 @@ OC.L10N.register(
"Select a tag" : "Seleziona un'etichetta",
"No results" : "Nessun risultato",
"%s (invisible)" : "%s (invisibile)",
- "%s (restricted)" : "%s (limitato)"
+ "%s (restricted)" : "%s (limitato)",
+ "Predefined URLs" : "URL predefiniti",
+ "Others" : "Altri"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/it.json b/apps/workflowengine/l10n/it.json
index 0f343e4f7e4..ca9dc977124 100644
--- a/apps/workflowengine/l10n/it.json
+++ b/apps/workflowengine/l10n/it.json
@@ -55,9 +55,7 @@
"Custom mimetype" : "Tipo MIME personalizzato",
"Please enter a valid time span" : "Digita un intervallo temporale valido",
"Select a request URL" : "Seleziona un URL di richiesta",
- "Predefined URLs" : "URL predefiniti",
"Files WebDAV" : "File WebDAV",
- "Others" : "Altri",
"Custom URL" : "URL personalizzato",
"Select a user agent" : "Seleziona user agent",
"Android client" : "Client Android",
@@ -112,6 +110,8 @@
"Select a tag" : "Seleziona un'etichetta",
"No results" : "Nessun risultato",
"%s (invisible)" : "%s (invisibile)",
- "%s (restricted)" : "%s (limitato)"
+ "%s (restricted)" : "%s (limitato)",
+ "Predefined URLs" : "URL predefiniti",
+ "Others" : "Altri"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/ja.js b/apps/workflowengine/l10n/ja.js
index 7c4a0859f28..db808c23a91 100644
--- a/apps/workflowengine/l10n/ja.js
+++ b/apps/workflowengine/l10n/ja.js
@@ -57,9 +57,7 @@ OC.L10N.register(
"Custom mimetype" : "カスタムMIMEタイプ",
"Please enter a valid time span" : "正しい間隔を指定してください",
"Select a request URL" : "リクエストURLを選択",
- "Predefined URLs" : "定義済みのURL",
"Files WebDAV" : "ファイルWebDAV",
- "Others" : "その他",
"Custom URL" : "カスタムURL",
"Select a user agent" : "ユーザーエージェントを選択",
"Android client" : "アンドロイドクライアント",
@@ -114,6 +112,8 @@ OC.L10N.register(
"Select a tag" : "タグを選択",
"No results" : "該当なし",
"%s (invisible)" : "%s (不可視)",
- "%s (restricted)" : "%s (制限)"
+ "%s (restricted)" : "%s (制限)",
+ "Predefined URLs" : "定義済みのURL",
+ "Others" : "その他"
},
"nplurals=1; plural=0;");
diff --git a/apps/workflowengine/l10n/ja.json b/apps/workflowengine/l10n/ja.json
index e023e0e9e56..14c47394157 100644
--- a/apps/workflowengine/l10n/ja.json
+++ b/apps/workflowengine/l10n/ja.json
@@ -55,9 +55,7 @@
"Custom mimetype" : "カスタムMIMEタイプ",
"Please enter a valid time span" : "正しい間隔を指定してください",
"Select a request URL" : "リクエストURLを選択",
- "Predefined URLs" : "定義済みのURL",
"Files WebDAV" : "ファイルWebDAV",
- "Others" : "その他",
"Custom URL" : "カスタムURL",
"Select a user agent" : "ユーザーエージェントを選択",
"Android client" : "アンドロイドクライアント",
@@ -112,6 +110,8 @@
"Select a tag" : "タグを選択",
"No results" : "該当なし",
"%s (invisible)" : "%s (不可視)",
- "%s (restricted)" : "%s (制限)"
+ "%s (restricted)" : "%s (制限)",
+ "Predefined URLs" : "定義済みのURL",
+ "Others" : "その他"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/ko.js b/apps/workflowengine/l10n/ko.js
index a0cde15c1d8..e6a5518b590 100644
--- a/apps/workflowengine/l10n/ko.js
+++ b/apps/workflowengine/l10n/ko.js
@@ -48,9 +48,7 @@ OC.L10N.register(
"PDF documents" : "PDF 문서",
"Custom mimetype" : "사용자 mimetype",
"Select a request URL" : "요청 URL 선택",
- "Predefined URLs" : "사전 정의된 URL",
"Files WebDAV" : "파일 WebDAV",
- "Others" : "기타",
"Custom URL" : "사용자 정의 URL",
"Select a user agent" : "사용자 에이전트 지정",
"Android client" : "Android 클라이언트",
@@ -104,6 +102,8 @@ OC.L10N.register(
"Select a tag" : "태그 선택",
"No results" : "결과 없음",
"%s (invisible)" : "%s(숨겨짐)",
- "%s (restricted)" : "%s(제한됨)"
+ "%s (restricted)" : "%s(제한됨)",
+ "Predefined URLs" : "사전 정의된 URL",
+ "Others" : "기타"
},
"nplurals=1; plural=0;");
diff --git a/apps/workflowengine/l10n/ko.json b/apps/workflowengine/l10n/ko.json
index 224c6476cc1..c4f7fed8385 100644
--- a/apps/workflowengine/l10n/ko.json
+++ b/apps/workflowengine/l10n/ko.json
@@ -46,9 +46,7 @@
"PDF documents" : "PDF 문서",
"Custom mimetype" : "사용자 mimetype",
"Select a request URL" : "요청 URL 선택",
- "Predefined URLs" : "사전 정의된 URL",
"Files WebDAV" : "파일 WebDAV",
- "Others" : "기타",
"Custom URL" : "사용자 정의 URL",
"Select a user agent" : "사용자 에이전트 지정",
"Android client" : "Android 클라이언트",
@@ -102,6 +100,8 @@
"Select a tag" : "태그 선택",
"No results" : "결과 없음",
"%s (invisible)" : "%s(숨겨짐)",
- "%s (restricted)" : "%s(제한됨)"
+ "%s (restricted)" : "%s(제한됨)",
+ "Predefined URLs" : "사전 정의된 URL",
+ "Others" : "기타"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/lt_LT.js b/apps/workflowengine/l10n/lt_LT.js
index 2c933f81d96..746e2513b4b 100644
--- a/apps/workflowengine/l10n/lt_LT.js
+++ b/apps/workflowengine/l10n/lt_LT.js
@@ -55,9 +55,7 @@ OC.L10N.register(
"Custom mimetype" : "Tinkintas MIME tipas",
"Please enter a valid time span" : "Įveskite teisingą laiko intervalą",
"Select a request URL" : "Pasirinkite užklausos URL",
- "Predefined URLs" : "Iš anksto apibrėžti URL adresai",
"Files WebDAV" : "WebDAV failai",
- "Others" : "Kiti",
"Custom URL" : "Tinkintas URL",
"Select a user agent" : "Pasirinkite naudotojo agentą",
"Android client" : "Android klientas",
@@ -112,6 +110,8 @@ OC.L10N.register(
"Select a tag" : "Pasirinkite žymę",
"No results" : "Rezultatų nėra",
"%s (invisible)" : "%s (nematomas)",
- "%s (restricted)" : "%s (apribotas)"
+ "%s (restricted)" : "%s (apribotas)",
+ "Predefined URLs" : "Iš anksto apibrėžti URL adresai",
+ "Others" : "Kiti"
},
"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/workflowengine/l10n/lt_LT.json b/apps/workflowengine/l10n/lt_LT.json
index e07d5e6d5c0..75242e37890 100644
--- a/apps/workflowengine/l10n/lt_LT.json
+++ b/apps/workflowengine/l10n/lt_LT.json
@@ -53,9 +53,7 @@
"Custom mimetype" : "Tinkintas MIME tipas",
"Please enter a valid time span" : "Įveskite teisingą laiko intervalą",
"Select a request URL" : "Pasirinkite užklausos URL",
- "Predefined URLs" : "Iš anksto apibrėžti URL adresai",
"Files WebDAV" : "WebDAV failai",
- "Others" : "Kiti",
"Custom URL" : "Tinkintas URL",
"Select a user agent" : "Pasirinkite naudotojo agentą",
"Android client" : "Android klientas",
@@ -110,6 +108,8 @@
"Select a tag" : "Pasirinkite žymę",
"No results" : "Rezultatų nėra",
"%s (invisible)" : "%s (nematomas)",
- "%s (restricted)" : "%s (apribotas)"
+ "%s (restricted)" : "%s (apribotas)",
+ "Predefined URLs" : "Iš anksto apibrėžti URL adresai",
+ "Others" : "Kiti"
},"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/workflowengine/l10n/lv.js b/apps/workflowengine/l10n/lv.js
index 60203dfe864..4d0cb9bb560 100644
--- a/apps/workflowengine/l10n/lv.js
+++ b/apps/workflowengine/l10n/lv.js
@@ -22,9 +22,7 @@ OC.L10N.register(
"Check %s is invalid or does not exist" : "Pārbaude %s ir nederīga vai nepastāv",
"Folder" : "Mape",
"Images" : "Attēli",
- "Predefined URLs" : "Standarta URLs",
"Files WebDAV" : "WebDAV datnes",
- "Others" : "Citi",
"Android client" : "Android klients",
"iOS client" : "iOS klients",
"Desktop client" : "Darbvirsmas klients",
@@ -60,6 +58,8 @@ OC.L10N.register(
"is not member of" : "nav biedrs",
"No results" : "Nav rezultātu",
"%s (invisible)" : "%s (neredzams)",
- "%s (restricted)" : "%s (ierobežots)"
+ "%s (restricted)" : "%s (ierobežots)",
+ "Predefined URLs" : "Standarta URLs",
+ "Others" : "Citi"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/workflowengine/l10n/lv.json b/apps/workflowengine/l10n/lv.json
index 3e457ce2698..39ba1f310cf 100644
--- a/apps/workflowengine/l10n/lv.json
+++ b/apps/workflowengine/l10n/lv.json
@@ -20,9 +20,7 @@
"Check %s is invalid or does not exist" : "Pārbaude %s ir nederīga vai nepastāv",
"Folder" : "Mape",
"Images" : "Attēli",
- "Predefined URLs" : "Standarta URLs",
"Files WebDAV" : "WebDAV datnes",
- "Others" : "Citi",
"Android client" : "Android klients",
"iOS client" : "iOS klients",
"Desktop client" : "Darbvirsmas klients",
@@ -58,6 +56,8 @@
"is not member of" : "nav biedrs",
"No results" : "Nav rezultātu",
"%s (invisible)" : "%s (neredzams)",
- "%s (restricted)" : "%s (ierobežots)"
+ "%s (restricted)" : "%s (ierobežots)",
+ "Predefined URLs" : "Standarta URLs",
+ "Others" : "Citi"
},"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/workflowengine/l10n/mk.js b/apps/workflowengine/l10n/mk.js
index adb58061ab8..465acdcb455 100644
--- a/apps/workflowengine/l10n/mk.js
+++ b/apps/workflowengine/l10n/mk.js
@@ -46,7 +46,6 @@ OC.L10N.register(
"PDF documents" : "PDF документи",
"Custom mimetype" : "Прилагоден тип на датотеки",
"Please enter a valid time span" : "Внесете валиден времески осег",
- "Others" : "Останати",
"Desktop client" : "Клиент за компјутер",
"When" : "Кога",
"and" : "и",
@@ -87,6 +86,7 @@ OC.L10N.register(
"Select a tag" : "Избери ознака",
"No results" : "Нема резултати",
"%s (invisible)" : "%s (невидливо)",
- "%s (restricted)" : "%s (ограничена)"
+ "%s (restricted)" : "%s (ограничена)",
+ "Others" : "Останати"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/workflowengine/l10n/mk.json b/apps/workflowengine/l10n/mk.json
index 70b894b3756..5d7f87253be 100644
--- a/apps/workflowengine/l10n/mk.json
+++ b/apps/workflowengine/l10n/mk.json
@@ -44,7 +44,6 @@
"PDF documents" : "PDF документи",
"Custom mimetype" : "Прилагоден тип на датотеки",
"Please enter a valid time span" : "Внесете валиден времески осег",
- "Others" : "Останати",
"Desktop client" : "Клиент за компјутер",
"When" : "Кога",
"and" : "и",
@@ -85,6 +84,7 @@
"Select a tag" : "Избери ознака",
"No results" : "Нема резултати",
"%s (invisible)" : "%s (невидливо)",
- "%s (restricted)" : "%s (ограничена)"
+ "%s (restricted)" : "%s (ограничена)",
+ "Others" : "Останати"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/nb.js b/apps/workflowengine/l10n/nb.js
index 351839f8b7f..7042e3d484e 100644
--- a/apps/workflowengine/l10n/nb.js
+++ b/apps/workflowengine/l10n/nb.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Egendefinert MIME-type",
"Please enter a valid time span" : "Vennligst skriv inn en gyldig tidsperiode",
"Select a request URL" : "Velg en forespurt URL",
- "Predefined URLs" : "Forhåndsdefinerte URLer",
"Files WebDAV" : "Filer WebDAV",
- "Others" : "Andre",
"Custom URL" : "Egendefinert URL",
"Select a user agent" : "Velg en brukeragent",
"Android client" : "Android klient",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Velg en etikett",
"No results" : "Ingen resultater",
"%s (invisible)" : "%s (usynlig)",
- "%s (restricted)" : "%s (begrenset)"
+ "%s (restricted)" : "%s (begrenset)",
+ "Predefined URLs" : "Forhåndsdefinerte URLer",
+ "Others" : "Andre"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/nb.json b/apps/workflowengine/l10n/nb.json
index dcbfa37c803..5b4c69b16df 100644
--- a/apps/workflowengine/l10n/nb.json
+++ b/apps/workflowengine/l10n/nb.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Egendefinert MIME-type",
"Please enter a valid time span" : "Vennligst skriv inn en gyldig tidsperiode",
"Select a request URL" : "Velg en forespurt URL",
- "Predefined URLs" : "Forhåndsdefinerte URLer",
"Files WebDAV" : "Filer WebDAV",
- "Others" : "Andre",
"Custom URL" : "Egendefinert URL",
"Select a user agent" : "Velg en brukeragent",
"Android client" : "Android klient",
@@ -113,6 +111,8 @@
"Select a tag" : "Velg en etikett",
"No results" : "Ingen resultater",
"%s (invisible)" : "%s (usynlig)",
- "%s (restricted)" : "%s (begrenset)"
+ "%s (restricted)" : "%s (begrenset)",
+ "Predefined URLs" : "Forhåndsdefinerte URLer",
+ "Others" : "Andre"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/nl.js b/apps/workflowengine/l10n/nl.js
index d978ef9721c..d52e1246462 100644
--- a/apps/workflowengine/l10n/nl.js
+++ b/apps/workflowengine/l10n/nl.js
@@ -57,9 +57,7 @@ OC.L10N.register(
"Custom mimetype" : "Maatwerk mimetype",
"Please enter a valid time span" : "Geef een geldige tijdsinterval op",
"Select a request URL" : "Selecteer een aanvraag URL",
- "Predefined URLs" : "Voorgedefinieerde URL's",
"Files WebDAV" : "Bestanden WebDAV",
- "Others" : "Anderen",
"Custom URL" : "Maatwerk URL",
"Select a user agent" : "Selecteer een 'user agent'",
"Android client" : "Android client",
@@ -114,6 +112,8 @@ OC.L10N.register(
"Select a tag" : "Selecteer een markering",
"No results" : "Geen resultaten",
"%s (invisible)" : "%s (onzichtbaar)",
- "%s (restricted)" : "%s (beperkt)"
+ "%s (restricted)" : "%s (beperkt)",
+ "Predefined URLs" : "Voorgedefinieerde URL's",
+ "Others" : "Anderen"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/nl.json b/apps/workflowengine/l10n/nl.json
index 9cc78c6d76d..4056b0f36d1 100644
--- a/apps/workflowengine/l10n/nl.json
+++ b/apps/workflowengine/l10n/nl.json
@@ -55,9 +55,7 @@
"Custom mimetype" : "Maatwerk mimetype",
"Please enter a valid time span" : "Geef een geldige tijdsinterval op",
"Select a request URL" : "Selecteer een aanvraag URL",
- "Predefined URLs" : "Voorgedefinieerde URL's",
"Files WebDAV" : "Bestanden WebDAV",
- "Others" : "Anderen",
"Custom URL" : "Maatwerk URL",
"Select a user agent" : "Selecteer een 'user agent'",
"Android client" : "Android client",
@@ -112,6 +110,8 @@
"Select a tag" : "Selecteer een markering",
"No results" : "Geen resultaten",
"%s (invisible)" : "%s (onzichtbaar)",
- "%s (restricted)" : "%s (beperkt)"
+ "%s (restricted)" : "%s (beperkt)",
+ "Predefined URLs" : "Voorgedefinieerde URL's",
+ "Others" : "Anderen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/pl.js b/apps/workflowengine/l10n/pl.js
index 31380f5cd40..e35c8210e0a 100644
--- a/apps/workflowengine/l10n/pl.js
+++ b/apps/workflowengine/l10n/pl.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Niestandardowy typ MIME",
"Please enter a valid time span" : "Podaj prawidłowy przedział czasu",
"Select a request URL" : "Wybierz adres URL żądania",
- "Predefined URLs" : "Przedefiniowanie URLs",
"Files WebDAV" : "Pliki WebDAV",
- "Others" : "Inne",
"Custom URL" : "Niestandardowy adres URL",
"Select a user agent" : "Wybierz klienta użytkownika",
"Android client" : "Klient Android",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Wybierz etykietę",
"No results" : "Brak wyników",
"%s (invisible)" : "%s (niewidoczny)",
- "%s (restricted)" : "%s (ograniczony)"
+ "%s (restricted)" : "%s (ograniczony)",
+ "Predefined URLs" : "Przedefiniowanie URLs",
+ "Others" : "Inne"
},
"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/workflowengine/l10n/pl.json b/apps/workflowengine/l10n/pl.json
index cb688ab834e..f811c812952 100644
--- a/apps/workflowengine/l10n/pl.json
+++ b/apps/workflowengine/l10n/pl.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Niestandardowy typ MIME",
"Please enter a valid time span" : "Podaj prawidłowy przedział czasu",
"Select a request URL" : "Wybierz adres URL żądania",
- "Predefined URLs" : "Przedefiniowanie URLs",
"Files WebDAV" : "Pliki WebDAV",
- "Others" : "Inne",
"Custom URL" : "Niestandardowy adres URL",
"Select a user agent" : "Wybierz klienta użytkownika",
"Android client" : "Klient Android",
@@ -113,6 +111,8 @@
"Select a tag" : "Wybierz etykietę",
"No results" : "Brak wyników",
"%s (invisible)" : "%s (niewidoczny)",
- "%s (restricted)" : "%s (ograniczony)"
+ "%s (restricted)" : "%s (ograniczony)",
+ "Predefined URLs" : "Przedefiniowanie URLs",
+ "Others" : "Inne"
},"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/workflowengine/l10n/pt_BR.js b/apps/workflowengine/l10n/pt_BR.js
index 8ba41659e60..d5202fe7753 100644
--- a/apps/workflowengine/l10n/pt_BR.js
+++ b/apps/workflowengine/l10n/pt_BR.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Mimetype personalizado",
"Please enter a valid time span" : "Digite um período de tempo válido",
"Select a request URL" : "Selecione uma URL de solicitação",
- "Predefined URLs" : "URLs predefinidas",
"Files WebDAV" : "Arquivos WebDAV",
- "Others" : "Outros",
"Custom URL" : "URL personalizada",
"Select a user agent" : "Selecione um agente de usuário",
"Android client" : "Cliente Android",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Selecione uma etiqueta",
"No results" : "Nenhum resultado",
"%s (invisible)" : "%s (invisível)",
- "%s (restricted)" : "%s (restrito)"
+ "%s (restricted)" : "%s (restrito)",
+ "Predefined URLs" : "URLs predefinidas",
+ "Others" : "Outros"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/pt_BR.json b/apps/workflowengine/l10n/pt_BR.json
index 8c7859b2a66..d7cc7e893ac 100644
--- a/apps/workflowengine/l10n/pt_BR.json
+++ b/apps/workflowengine/l10n/pt_BR.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Mimetype personalizado",
"Please enter a valid time span" : "Digite um período de tempo válido",
"Select a request URL" : "Selecione uma URL de solicitação",
- "Predefined URLs" : "URLs predefinidas",
"Files WebDAV" : "Arquivos WebDAV",
- "Others" : "Outros",
"Custom URL" : "URL personalizada",
"Select a user agent" : "Selecione um agente de usuário",
"Android client" : "Cliente Android",
@@ -113,6 +111,8 @@
"Select a tag" : "Selecione uma etiqueta",
"No results" : "Nenhum resultado",
"%s (invisible)" : "%s (invisível)",
- "%s (restricted)" : "%s (restrito)"
+ "%s (restricted)" : "%s (restrito)",
+ "Predefined URLs" : "URLs predefinidas",
+ "Others" : "Outros"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/pt_PT.js b/apps/workflowengine/l10n/pt_PT.js
index 31f3a639b86..1b467acebee 100644
--- a/apps/workflowengine/l10n/pt_PT.js
+++ b/apps/workflowengine/l10n/pt_PT.js
@@ -40,7 +40,6 @@ OC.L10N.register(
"Select a comparator" : "Selecionar um comparador",
"Folder" : "Pasta",
"Images" : "Imagens",
- "Predefined URLs" : "URLs Predefinidos",
"Files WebDAV" : "Ficheiros WebDAV",
"Android client" : "Cliente de Android",
"iOS client" : "Cliente de iOS",
@@ -77,6 +76,7 @@ OC.L10N.register(
"is not member of" : "não é um membro de",
"No results" : "Sem resultados",
"%s (invisible)" : "%s (invisível)",
- "%s (restricted)" : "%s (limitado)"
+ "%s (restricted)" : "%s (limitado)",
+ "Predefined URLs" : "URLs Predefinidos"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/workflowengine/l10n/pt_PT.json b/apps/workflowengine/l10n/pt_PT.json
index fff173f217a..a5970b1158b 100644
--- a/apps/workflowengine/l10n/pt_PT.json
+++ b/apps/workflowengine/l10n/pt_PT.json
@@ -38,7 +38,6 @@
"Select a comparator" : "Selecionar um comparador",
"Folder" : "Pasta",
"Images" : "Imagens",
- "Predefined URLs" : "URLs Predefinidos",
"Files WebDAV" : "Ficheiros WebDAV",
"Android client" : "Cliente de Android",
"iOS client" : "Cliente de iOS",
@@ -75,6 +74,7 @@
"is not member of" : "não é um membro de",
"No results" : "Sem resultados",
"%s (invisible)" : "%s (invisível)",
- "%s (restricted)" : "%s (limitado)"
+ "%s (restricted)" : "%s (limitado)",
+ "Predefined URLs" : "URLs Predefinidos"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/ru.js b/apps/workflowengine/l10n/ru.js
index b17ad3904be..41fc79861a5 100644
--- a/apps/workflowengine/l10n/ru.js
+++ b/apps/workflowengine/l10n/ru.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Пользовательский тип mime",
"Please enter a valid time span" : "Введите верный диапазон",
"Select a request URL" : "Выберите URL запроса",
- "Predefined URLs" : "Предопределенные URL",
"Files WebDAV" : "Файлы WebDAV",
- "Others" : "Другие",
"Custom URL" : "Пользовательский URL",
"Select a user agent" : "Выберите user agent",
"Android client" : "клиент для Android",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Выберите метку",
"No results" : "Нет результатов",
"%s (invisible)" : "%s (невидимый)",
- "%s (restricted)" : "%s (ограниченный)"
+ "%s (restricted)" : "%s (ограниченный)",
+ "Predefined URLs" : "Предопределенные URL",
+ "Others" : "Другие"
},
"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/workflowengine/l10n/ru.json b/apps/workflowengine/l10n/ru.json
index e26a0608cca..786912fc0a5 100644
--- a/apps/workflowengine/l10n/ru.json
+++ b/apps/workflowengine/l10n/ru.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Пользовательский тип mime",
"Please enter a valid time span" : "Введите верный диапазон",
"Select a request URL" : "Выберите URL запроса",
- "Predefined URLs" : "Предопределенные URL",
"Files WebDAV" : "Файлы WebDAV",
- "Others" : "Другие",
"Custom URL" : "Пользовательский URL",
"Select a user agent" : "Выберите user agent",
"Android client" : "клиент для Android",
@@ -113,6 +111,8 @@
"Select a tag" : "Выберите метку",
"No results" : "Нет результатов",
"%s (invisible)" : "%s (невидимый)",
- "%s (restricted)" : "%s (ограниченный)"
+ "%s (restricted)" : "%s (ограниченный)",
+ "Predefined URLs" : "Предопределенные URL",
+ "Others" : "Другие"
},"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/workflowengine/l10n/sc.js b/apps/workflowengine/l10n/sc.js
index 103836f47b2..79f5a69893c 100644
--- a/apps/workflowengine/l10n/sc.js
+++ b/apps/workflowengine/l10n/sc.js
@@ -57,9 +57,7 @@ OC.L10N.register(
"Custom mimetype" : "Personaliza sa genia MIME",
"Please enter a valid time span" : "Inserta•nche un'intervallu de tempus bàlidu",
"Select a request URL" : "Seletziona unu URL de rechesta",
- "Predefined URLs" : "URL predefinidos",
"Files WebDAV" : "Archìvios WebDAV",
- "Others" : "Àtere",
"Custom URL" : "Personaliza URL",
"Select a user agent" : "Seletziona un'agente de utente",
"Android client" : "Cliente Android",
@@ -114,6 +112,8 @@ OC.L10N.register(
"Select a tag" : "Seletziona un'eticheta",
"No results" : "Perunu resurtadu",
"%s (invisible)" : "%s (invisìbile)",
- "%s (restricted)" : "%s (limitadu)"
+ "%s (restricted)" : "%s (limitadu)",
+ "Predefined URLs" : "URL predefinidos",
+ "Others" : "Àtere"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/sc.json b/apps/workflowengine/l10n/sc.json
index 5dc118df9d3..02d991cead2 100644
--- a/apps/workflowengine/l10n/sc.json
+++ b/apps/workflowengine/l10n/sc.json
@@ -55,9 +55,7 @@
"Custom mimetype" : "Personaliza sa genia MIME",
"Please enter a valid time span" : "Inserta•nche un'intervallu de tempus bàlidu",
"Select a request URL" : "Seletziona unu URL de rechesta",
- "Predefined URLs" : "URL predefinidos",
"Files WebDAV" : "Archìvios WebDAV",
- "Others" : "Àtere",
"Custom URL" : "Personaliza URL",
"Select a user agent" : "Seletziona un'agente de utente",
"Android client" : "Cliente Android",
@@ -112,6 +110,8 @@
"Select a tag" : "Seletziona un'eticheta",
"No results" : "Perunu resurtadu",
"%s (invisible)" : "%s (invisìbile)",
- "%s (restricted)" : "%s (limitadu)"
+ "%s (restricted)" : "%s (limitadu)",
+ "Predefined URLs" : "URL predefinidos",
+ "Others" : "Àtere"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/sk.js b/apps/workflowengine/l10n/sk.js
index b2e50988b10..c5f10cce3f8 100644
--- a/apps/workflowengine/l10n/sk.js
+++ b/apps/workflowengine/l10n/sk.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Vlastné typy mime",
"Please enter a valid time span" : "Zadajte prosím platné časové rozmedzie",
"Select a request URL" : "Vybrať URL požiadavku",
- "Predefined URLs" : "Preddefinované URL",
"Files WebDAV" : "WebDAV súbory",
- "Others" : "Ostatné",
"Custom URL" : "Vlastná URL",
"Select a user agent" : "Zvoliť užívateľského agenta",
"Android client" : "Android klient",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Vyber štítok",
"No results" : "Žiadne výsledky",
"%s (invisible)" : "%s (neviditeľné)",
- "%s (restricted)" : "%s (obmedzené)"
+ "%s (restricted)" : "%s (obmedzené)",
+ "Predefined URLs" : "Preddefinované URL",
+ "Others" : "Ostatné"
},
"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/workflowengine/l10n/sk.json b/apps/workflowengine/l10n/sk.json
index 721e02df4ca..ffc4f85955c 100644
--- a/apps/workflowengine/l10n/sk.json
+++ b/apps/workflowengine/l10n/sk.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Vlastné typy mime",
"Please enter a valid time span" : "Zadajte prosím platné časové rozmedzie",
"Select a request URL" : "Vybrať URL požiadavku",
- "Predefined URLs" : "Preddefinované URL",
"Files WebDAV" : "WebDAV súbory",
- "Others" : "Ostatné",
"Custom URL" : "Vlastná URL",
"Select a user agent" : "Zvoliť užívateľského agenta",
"Android client" : "Android klient",
@@ -113,6 +111,8 @@
"Select a tag" : "Vyber štítok",
"No results" : "Žiadne výsledky",
"%s (invisible)" : "%s (neviditeľné)",
- "%s (restricted)" : "%s (obmedzené)"
+ "%s (restricted)" : "%s (obmedzené)",
+ "Predefined URLs" : "Preddefinované URL",
+ "Others" : "Ostatné"
},"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/workflowengine/l10n/sl.js b/apps/workflowengine/l10n/sl.js
index 9f77ac286a8..ec1091d4b44 100644
--- a/apps/workflowengine/l10n/sl.js
+++ b/apps/workflowengine/l10n/sl.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Vrsta Mime po meri",
"Please enter a valid time span" : "Vpisati je treba veljaven časovni obseg",
"Select a request URL" : "Izberite naslov URL zahteve",
- "Predefined URLs" : "Določeni naslovi URL",
"Files WebDAV" : "Datoteke WebDAV",
- "Others" : "Ostali",
"Custom URL" : "Naslov URL po meri",
"Select a user agent" : "Izbor uporabniškega odjemalca",
"Android client" : "Odjemalec za Android",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Izbor oznake",
"No results" : "Ni zadetkov",
"%s (invisible)" : "%s (nevidno)",
- "%s (restricted)" : "%s (omejeno)"
+ "%s (restricted)" : "%s (omejeno)",
+ "Predefined URLs" : "Določeni naslovi URL",
+ "Others" : "Ostali"
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/workflowengine/l10n/sl.json b/apps/workflowengine/l10n/sl.json
index f8063bab5a1..7c1bec333f9 100644
--- a/apps/workflowengine/l10n/sl.json
+++ b/apps/workflowengine/l10n/sl.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Vrsta Mime po meri",
"Please enter a valid time span" : "Vpisati je treba veljaven časovni obseg",
"Select a request URL" : "Izberite naslov URL zahteve",
- "Predefined URLs" : "Določeni naslovi URL",
"Files WebDAV" : "Datoteke WebDAV",
- "Others" : "Ostali",
"Custom URL" : "Naslov URL po meri",
"Select a user agent" : "Izbor uporabniškega odjemalca",
"Android client" : "Odjemalec za Android",
@@ -113,6 +111,8 @@
"Select a tag" : "Izbor oznake",
"No results" : "Ni zadetkov",
"%s (invisible)" : "%s (nevidno)",
- "%s (restricted)" : "%s (omejeno)"
+ "%s (restricted)" : "%s (omejeno)",
+ "Predefined URLs" : "Določeni naslovi URL",
+ "Others" : "Ostali"
},"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/workflowengine/l10n/sq.js b/apps/workflowengine/l10n/sq.js
index c52dc4407e1..e8441a0b8a4 100644
--- a/apps/workflowengine/l10n/sq.js
+++ b/apps/workflowengine/l10n/sq.js
@@ -22,7 +22,6 @@ OC.L10N.register(
"Check %s is invalid or does not exist" : "Kontrolli %s është i pavlefshëm ose nuk ekziston",
"Folder" : "Skedari",
"Images" : "Imazhe ",
- "Predefined URLs" : "URL të paracaktuara",
"Files WebDAV" : "Skedarët WebDAV ",
"Android client" : "Klient Android",
"iOS client" : "Klient IOS",
@@ -60,6 +59,7 @@ OC.L10N.register(
"is not member of" : "nuk është anëtarë i",
"No results" : "Asnjë rezultat",
"%s (invisible)" : "%s (e padukshme)",
- "%s (restricted)" : "%s (e kufizuar)"
+ "%s (restricted)" : "%s (e kufizuar)",
+ "Predefined URLs" : "URL të paracaktuara"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/sq.json b/apps/workflowengine/l10n/sq.json
index 1ae2a9db035..dc13e94529b 100644
--- a/apps/workflowengine/l10n/sq.json
+++ b/apps/workflowengine/l10n/sq.json
@@ -20,7 +20,6 @@
"Check %s is invalid or does not exist" : "Kontrolli %s është i pavlefshëm ose nuk ekziston",
"Folder" : "Skedari",
"Images" : "Imazhe ",
- "Predefined URLs" : "URL të paracaktuara",
"Files WebDAV" : "Skedarët WebDAV ",
"Android client" : "Klient Android",
"iOS client" : "Klient IOS",
@@ -58,6 +57,7 @@
"is not member of" : "nuk është anëtarë i",
"No results" : "Asnjë rezultat",
"%s (invisible)" : "%s (e padukshme)",
- "%s (restricted)" : "%s (e kufizuar)"
+ "%s (restricted)" : "%s (e kufizuar)",
+ "Predefined URLs" : "URL të paracaktuara"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/sr.js b/apps/workflowengine/l10n/sr.js
index 2ec55222278..3606065fb36 100644
--- a/apps/workflowengine/l10n/sr.js
+++ b/apps/workflowengine/l10n/sr.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Nextcloud workflow engine" : "Некстклаудов мотор радног тока",
"Select a filter" : "Одаберите филтер",
"Select a comparator" : "Одаберите компаратор",
+ "Remove filter" : "Уклони филтер",
"Select a file type" : "Одаберите тип фајла",
"e.g. httpd/unix-directory" : "нпр. httpd/unix-directory",
"Folder" : "Фасцикла",
@@ -58,9 +59,7 @@ OC.L10N.register(
"Custom mimetype" : "Произвољни MIME тип",
"Please enter a valid time span" : "Унесите исправан временски распон",
"Select a request URL" : "Одабери адресу захтева",
- "Predefined URLs" : "Предефинисане адресе",
"Files WebDAV" : "WebDAV фајлови",
- "Others" : "Остали",
"Custom URL" : "Произвољна адреса",
"Select a user agent" : "Одаберите агента захтева",
"Android client" : "Андроид клијент",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Add new flow" : "Додај нови ток",
"When" : "Када",
"and" : "и",
+ "Add a new filter" : "Додај нови филтер",
"Cancel" : "Откажи",
"Delete" : "Обриши",
"The configuration is invalid" : "Конфигурација је неисправна",
@@ -115,6 +115,8 @@ OC.L10N.register(
"Select a tag" : "Одаберите ознаку",
"No results" : "Нема резултата",
"%s (invisible)" : "%s (невидљив)",
- "%s (restricted)" : "%s (ограничен)"
+ "%s (restricted)" : "%s (ограничен)",
+ "Predefined URLs" : "Предефинисане адресе",
+ "Others" : "Остали"
},
"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/workflowengine/l10n/sr.json b/apps/workflowengine/l10n/sr.json
index 36cc52bf388..bbb7887b459 100644
--- a/apps/workflowengine/l10n/sr.json
+++ b/apps/workflowengine/l10n/sr.json
@@ -46,6 +46,7 @@
"Nextcloud workflow engine" : "Некстклаудов мотор радног тока",
"Select a filter" : "Одаберите филтер",
"Select a comparator" : "Одаберите компаратор",
+ "Remove filter" : "Уклони филтер",
"Select a file type" : "Одаберите тип фајла",
"e.g. httpd/unix-directory" : "нпр. httpd/unix-directory",
"Folder" : "Фасцикла",
@@ -56,9 +57,7 @@
"Custom mimetype" : "Произвољни MIME тип",
"Please enter a valid time span" : "Унесите исправан временски распон",
"Select a request URL" : "Одабери адресу захтева",
- "Predefined URLs" : "Предефинисане адресе",
"Files WebDAV" : "WebDAV фајлови",
- "Others" : "Остали",
"Custom URL" : "Произвољна адреса",
"Select a user agent" : "Одаберите агента захтева",
"Android client" : "Андроид клијент",
@@ -70,6 +69,7 @@
"Add new flow" : "Додај нови ток",
"When" : "Када",
"and" : "и",
+ "Add a new filter" : "Додај нови филтер",
"Cancel" : "Откажи",
"Delete" : "Обриши",
"The configuration is invalid" : "Конфигурација је неисправна",
@@ -113,6 +113,8 @@
"Select a tag" : "Одаберите ознаку",
"No results" : "Нема резултата",
"%s (invisible)" : "%s (невидљив)",
- "%s (restricted)" : "%s (ограничен)"
+ "%s (restricted)" : "%s (ограничен)",
+ "Predefined URLs" : "Предефинисане адресе",
+ "Others" : "Остали"
},"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/workflowengine/l10n/sv.js b/apps/workflowengine/l10n/sv.js
index e786e38b021..45a00308d80 100644
--- a/apps/workflowengine/l10n/sv.js
+++ b/apps/workflowengine/l10n/sv.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Nextcloud workflow engine" : "Nextcloud arbetsflödesmotor",
"Select a filter" : "Välj ett filter",
"Select a comparator" : "Välj en jämförelse",
+ "Remove filter" : "Ta bort filter",
"Select a file type" : "Välj en filtyp",
"e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory",
"Folder" : "Mapp",
@@ -58,9 +59,7 @@ OC.L10N.register(
"Custom mimetype" : "Anpassad mimetyp",
"Please enter a valid time span" : "Ange ett giltigt tidsintervall",
"Select a request URL" : "Välj en webbadress för begäran",
- "Predefined URLs" : "Förinställda webbadresser",
"Files WebDAV" : "Filer WebDAV",
- "Others" : "Övriga",
"Custom URL" : "Anpassad webbadress",
"Select a user agent" : "Välj en användaragent",
"Android client" : "Android-klient",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Add new flow" : "Lägg till nytt flöde",
"When" : "När",
"and" : "och",
+ "Add a new filter" : "Lägg till nytt filter",
"Cancel" : "Avbryt",
"Delete" : "Radera",
"The configuration is invalid" : "Konfigurationen är felaktig",
@@ -115,6 +115,8 @@ OC.L10N.register(
"Select a tag" : "Välj en tagg",
"No results" : "Inga resultat",
"%s (invisible)" : "%s (osynlig)",
- "%s (restricted)" : "%s (begränsad)"
+ "%s (restricted)" : "%s (begränsad)",
+ "Predefined URLs" : "Förinställda webbadresser",
+ "Others" : "Övriga"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/workflowengine/l10n/sv.json b/apps/workflowengine/l10n/sv.json
index 4e318c7c770..0cfb7d63e19 100644
--- a/apps/workflowengine/l10n/sv.json
+++ b/apps/workflowengine/l10n/sv.json
@@ -46,6 +46,7 @@
"Nextcloud workflow engine" : "Nextcloud arbetsflödesmotor",
"Select a filter" : "Välj ett filter",
"Select a comparator" : "Välj en jämförelse",
+ "Remove filter" : "Ta bort filter",
"Select a file type" : "Välj en filtyp",
"e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory",
"Folder" : "Mapp",
@@ -56,9 +57,7 @@
"Custom mimetype" : "Anpassad mimetyp",
"Please enter a valid time span" : "Ange ett giltigt tidsintervall",
"Select a request URL" : "Välj en webbadress för begäran",
- "Predefined URLs" : "Förinställda webbadresser",
"Files WebDAV" : "Filer WebDAV",
- "Others" : "Övriga",
"Custom URL" : "Anpassad webbadress",
"Select a user agent" : "Välj en användaragent",
"Android client" : "Android-klient",
@@ -70,6 +69,7 @@
"Add new flow" : "Lägg till nytt flöde",
"When" : "När",
"and" : "och",
+ "Add a new filter" : "Lägg till nytt filter",
"Cancel" : "Avbryt",
"Delete" : "Radera",
"The configuration is invalid" : "Konfigurationen är felaktig",
@@ -113,6 +113,8 @@
"Select a tag" : "Välj en tagg",
"No results" : "Inga resultat",
"%s (invisible)" : "%s (osynlig)",
- "%s (restricted)" : "%s (begränsad)"
+ "%s (restricted)" : "%s (begränsad)",
+ "Predefined URLs" : "Förinställda webbadresser",
+ "Others" : "Övriga"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/tr.js b/apps/workflowengine/l10n/tr.js
index 8d118b5204e..10a2de19123 100644
--- a/apps/workflowengine/l10n/tr.js
+++ b/apps/workflowengine/l10n/tr.js
@@ -58,9 +58,7 @@ OC.L10N.register(
"Custom mimetype" : "Özel MIME türü",
"Please enter a valid time span" : "Lütfen geçerli bir tarih aralığı seçin",
"Select a request URL" : "Bir istek adresi seçin",
- "Predefined URLs" : "Hazır adresler",
"Files WebDAV" : "Dosya WebDAV",
- "Others" : "Diğerleri",
"Custom URL" : "Özel adres",
"Select a user agent" : "Bir kullanıcı uygulaması seçin",
"Android client" : "Android istemcisi",
@@ -104,7 +102,7 @@ OC.L10N.register(
"File system tag" : "Dosya sistemi etiketi",
"is tagged with" : "şununla etiketlenmiş",
"is not tagged with" : "şununla etiketlenmemiş",
- "Request URL" : "İstek Adresi",
+ "Request URL" : "İstek adresi",
"Request time" : "İstek zamanı",
"between" : "şunların arasında olan",
"not between" : "şunların arasında olmayan",
@@ -115,6 +113,8 @@ OC.L10N.register(
"Select a tag" : "Etiket seçin",
"No results" : "Herhangi bir sonuç bulunamadı",
"%s (invisible)" : "%s (görünmez)",
- "%s (restricted)" : "%s (kısıtlanmış)"
+ "%s (restricted)" : "%s (kısıtlanmış)",
+ "Predefined URLs" : "Hazır adresler",
+ "Others" : "Diğerleri"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/workflowengine/l10n/tr.json b/apps/workflowengine/l10n/tr.json
index 57af176512e..f019c37e1a5 100644
--- a/apps/workflowengine/l10n/tr.json
+++ b/apps/workflowengine/l10n/tr.json
@@ -56,9 +56,7 @@
"Custom mimetype" : "Özel MIME türü",
"Please enter a valid time span" : "Lütfen geçerli bir tarih aralığı seçin",
"Select a request URL" : "Bir istek adresi seçin",
- "Predefined URLs" : "Hazır adresler",
"Files WebDAV" : "Dosya WebDAV",
- "Others" : "Diğerleri",
"Custom URL" : "Özel adres",
"Select a user agent" : "Bir kullanıcı uygulaması seçin",
"Android client" : "Android istemcisi",
@@ -102,7 +100,7 @@
"File system tag" : "Dosya sistemi etiketi",
"is tagged with" : "şununla etiketlenmiş",
"is not tagged with" : "şununla etiketlenmemiş",
- "Request URL" : "İstek Adresi",
+ "Request URL" : "İstek adresi",
"Request time" : "İstek zamanı",
"between" : "şunların arasında olan",
"not between" : "şunların arasında olmayan",
@@ -113,6 +111,8 @@
"Select a tag" : "Etiket seçin",
"No results" : "Herhangi bir sonuç bulunamadı",
"%s (invisible)" : "%s (görünmez)",
- "%s (restricted)" : "%s (kısıtlanmış)"
+ "%s (restricted)" : "%s (kısıtlanmış)",
+ "Predefined URLs" : "Hazır adresler",
+ "Others" : "Diğerleri"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/uk.js b/apps/workflowengine/l10n/uk.js
index 0704b9fafbf..f0a64310aeb 100644
--- a/apps/workflowengine/l10n/uk.js
+++ b/apps/workflowengine/l10n/uk.js
@@ -43,9 +43,7 @@ OC.L10N.register(
"PDF documents" : "Документи PDF",
"Custom mimetype" : "Власний mimetype",
"Select a request URL" : "Виберіть URL для запиту",
- "Predefined URLs" : "Попередньо визначені URL-адреси",
"Files WebDAV" : "Файли WebDAV",
- "Others" : "Інші",
"Custom URL" : "Власний URL",
"Android client" : "Клієнт Android",
"iOS client" : "iOS клієнт",
@@ -95,6 +93,8 @@ OC.L10N.register(
"is not member of" : "не є учасником",
"No results" : "Немає результатів",
"%s (invisible)" : "%s (невидимий)",
- "%s (restricted)" : "%s(обмежено)"
+ "%s (restricted)" : "%s(обмежено)",
+ "Predefined URLs" : "Попередньо визначені URL-адреси",
+ "Others" : "Інші"
},
"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/workflowengine/l10n/uk.json b/apps/workflowengine/l10n/uk.json
index 1b6a01a100d..9174812ac38 100644
--- a/apps/workflowengine/l10n/uk.json
+++ b/apps/workflowengine/l10n/uk.json
@@ -41,9 +41,7 @@
"PDF documents" : "Документи PDF",
"Custom mimetype" : "Власний mimetype",
"Select a request URL" : "Виберіть URL для запиту",
- "Predefined URLs" : "Попередньо визначені URL-адреси",
"Files WebDAV" : "Файли WebDAV",
- "Others" : "Інші",
"Custom URL" : "Власний URL",
"Android client" : "Клієнт Android",
"iOS client" : "iOS клієнт",
@@ -93,6 +91,8 @@
"is not member of" : "не є учасником",
"No results" : "Немає результатів",
"%s (invisible)" : "%s (невидимий)",
- "%s (restricted)" : "%s(обмежено)"
+ "%s (restricted)" : "%s(обмежено)",
+ "Predefined URLs" : "Попередньо визначені URL-адреси",
+ "Others" : "Інші"
},"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/workflowengine/l10n/zh_CN.js b/apps/workflowengine/l10n/zh_CN.js
index 858a765020d..08ea170b102 100644
--- a/apps/workflowengine/l10n/zh_CN.js
+++ b/apps/workflowengine/l10n/zh_CN.js
@@ -57,9 +57,7 @@ OC.L10N.register(
"Custom mimetype" : "自定义MIME类型",
"Please enter a valid time span" : "请输入有效的时间范围",
"Select a request URL" : "选择一个请求URL",
- "Predefined URLs" : "预定义 URL",
"Files WebDAV" : "文件 WebDAV",
- "Others" : "其它",
"Custom URL" : "自定义URL",
"Select a user agent" : "选择一个用户代理",
"Android client" : "Android 客户端",
@@ -114,6 +112,8 @@ OC.L10N.register(
"Select a tag" : "选择标签",
"No results" : "没有结果",
"%s (invisible)" : "%s(不可见)",
- "%s (restricted)" : "%s(受限)"
+ "%s (restricted)" : "%s(受限)",
+ "Predefined URLs" : "预定义 URL",
+ "Others" : "其它"
},
"nplurals=1; plural=0;");
diff --git a/apps/workflowengine/l10n/zh_CN.json b/apps/workflowengine/l10n/zh_CN.json
index 4c5bf844ef8..f412c0fe65e 100644
--- a/apps/workflowengine/l10n/zh_CN.json
+++ b/apps/workflowengine/l10n/zh_CN.json
@@ -55,9 +55,7 @@
"Custom mimetype" : "自定义MIME类型",
"Please enter a valid time span" : "请输入有效的时间范围",
"Select a request URL" : "选择一个请求URL",
- "Predefined URLs" : "预定义 URL",
"Files WebDAV" : "文件 WebDAV",
- "Others" : "其它",
"Custom URL" : "自定义URL",
"Select a user agent" : "选择一个用户代理",
"Android client" : "Android 客户端",
@@ -112,6 +110,8 @@
"Select a tag" : "选择标签",
"No results" : "没有结果",
"%s (invisible)" : "%s(不可见)",
- "%s (restricted)" : "%s(受限)"
+ "%s (restricted)" : "%s(受限)",
+ "Predefined URLs" : "预定义 URL",
+ "Others" : "其它"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/zh_HK.js b/apps/workflowengine/l10n/zh_HK.js
index 26b6589a9dc..2f6364041c4 100644
--- a/apps/workflowengine/l10n/zh_HK.js
+++ b/apps/workflowengine/l10n/zh_HK.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Nextcloud workflow engine" : "Nextcloud 工作流程引擎",
"Select a filter" : "選擇過濾器",
"Select a comparator" : "選擇比較器",
+ "Remove filter" : "移除過濾",
"Select a file type" : "選擇檔案類型",
"e.g. httpd/unix-directory" : "例如 httpd/unix-directory",
"Folder" : "資料夾",
@@ -58,9 +59,7 @@ OC.L10N.register(
"Custom mimetype" : "自訂 mimetype",
"Please enter a valid time span" : "請輸入有效的時間跨度",
"Select a request URL" : "選擇一個請求URL",
- "Predefined URLs" : "預定義網址",
"Files WebDAV" : "檔案 WebDAV",
- "Others" : "其他",
"Custom URL" : "自訂 URL",
"Select a user agent" : "選擇用戶 agent",
"Android client" : "Android 客戶端",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Add new flow" : "添加新流程",
"When" : "時間",
"and" : "及",
+ "Add a new filter" : "添加新過濾",
"Cancel" : "取消",
"Delete" : "刪除",
"The configuration is invalid" : "配置無效",
@@ -115,6 +115,8 @@ OC.L10N.register(
"Select a tag" : "選擇標籤",
"No results" : "沒有符合搜尋的項目",
"%s (invisible)" : "%s (隱藏)",
- "%s (restricted)" : "%s (受限)"
+ "%s (restricted)" : "%s (受限)",
+ "Predefined URLs" : "預定義網址",
+ "Others" : "其他"
},
"nplurals=1; plural=0;");
diff --git a/apps/workflowengine/l10n/zh_HK.json b/apps/workflowengine/l10n/zh_HK.json
index 99c2ca5fe4f..edfdce484fa 100644
--- a/apps/workflowengine/l10n/zh_HK.json
+++ b/apps/workflowengine/l10n/zh_HK.json
@@ -46,6 +46,7 @@
"Nextcloud workflow engine" : "Nextcloud 工作流程引擎",
"Select a filter" : "選擇過濾器",
"Select a comparator" : "選擇比較器",
+ "Remove filter" : "移除過濾",
"Select a file type" : "選擇檔案類型",
"e.g. httpd/unix-directory" : "例如 httpd/unix-directory",
"Folder" : "資料夾",
@@ -56,9 +57,7 @@
"Custom mimetype" : "自訂 mimetype",
"Please enter a valid time span" : "請輸入有效的時間跨度",
"Select a request URL" : "選擇一個請求URL",
- "Predefined URLs" : "預定義網址",
"Files WebDAV" : "檔案 WebDAV",
- "Others" : "其他",
"Custom URL" : "自訂 URL",
"Select a user agent" : "選擇用戶 agent",
"Android client" : "Android 客戶端",
@@ -70,6 +69,7 @@
"Add new flow" : "添加新流程",
"When" : "時間",
"and" : "及",
+ "Add a new filter" : "添加新過濾",
"Cancel" : "取消",
"Delete" : "刪除",
"The configuration is invalid" : "配置無效",
@@ -113,6 +113,8 @@
"Select a tag" : "選擇標籤",
"No results" : "沒有符合搜尋的項目",
"%s (invisible)" : "%s (隱藏)",
- "%s (restricted)" : "%s (受限)"
+ "%s (restricted)" : "%s (受限)",
+ "Predefined URLs" : "預定義網址",
+ "Others" : "其他"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/workflowengine/l10n/zh_TW.js b/apps/workflowengine/l10n/zh_TW.js
index d3a6d6f78fa..9617d85434a 100644
--- a/apps/workflowengine/l10n/zh_TW.js
+++ b/apps/workflowengine/l10n/zh_TW.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"Nextcloud workflow engine" : "Nextcloud 工作流程引擎",
"Select a filter" : "選取過濾條件",
"Select a comparator" : "選取比較程式",
+ "Remove filter" : "移除過濾條件",
"Select a file type" : "選取檔案類型",
"e.g. httpd/unix-directory" : "例如:httpd/unix-directory",
"Folder" : "資料夾",
@@ -58,9 +59,7 @@ OC.L10N.register(
"Custom mimetype" : "自訂 mimetype",
"Please enter a valid time span" : "請輸入有效的時間範圍",
"Select a request URL" : "選取請求 URL",
- "Predefined URLs" : "預定義 URL",
"Files WebDAV" : "檔案 WebDAV",
- "Others" : "其他",
"Custom URL" : "自訂 URL",
"Select a user agent" : "選取使用者代理字串",
"Android client" : "Android 客戶端",
@@ -72,6 +71,7 @@ OC.L10N.register(
"Add new flow" : "新增新流程",
"When" : "當",
"and" : "與",
+ "Add a new filter" : "新增過濾條件",
"Cancel" : "取消",
"Delete" : "刪除",
"The configuration is invalid" : "設定無效",
@@ -115,6 +115,8 @@ OC.L10N.register(
"Select a tag" : "選取標籤",
"No results" : "無結果",
"%s (invisible)" : "%s(隱藏)",
- "%s (restricted)" : "%s(受限)"
+ "%s (restricted)" : "%s(受限)",
+ "Predefined URLs" : "預定義 URL",
+ "Others" : "其他"
},
"nplurals=1; plural=0;");
diff --git a/apps/workflowengine/l10n/zh_TW.json b/apps/workflowengine/l10n/zh_TW.json
index 93e602b8696..e9a557f1cce 100644
--- a/apps/workflowengine/l10n/zh_TW.json
+++ b/apps/workflowengine/l10n/zh_TW.json
@@ -46,6 +46,7 @@
"Nextcloud workflow engine" : "Nextcloud 工作流程引擎",
"Select a filter" : "選取過濾條件",
"Select a comparator" : "選取比較程式",
+ "Remove filter" : "移除過濾條件",
"Select a file type" : "選取檔案類型",
"e.g. httpd/unix-directory" : "例如:httpd/unix-directory",
"Folder" : "資料夾",
@@ -56,9 +57,7 @@
"Custom mimetype" : "自訂 mimetype",
"Please enter a valid time span" : "請輸入有效的時間範圍",
"Select a request URL" : "選取請求 URL",
- "Predefined URLs" : "預定義 URL",
"Files WebDAV" : "檔案 WebDAV",
- "Others" : "其他",
"Custom URL" : "自訂 URL",
"Select a user agent" : "選取使用者代理字串",
"Android client" : "Android 客戶端",
@@ -70,6 +69,7 @@
"Add new flow" : "新增新流程",
"When" : "當",
"and" : "與",
+ "Add a new filter" : "新增過濾條件",
"Cancel" : "取消",
"Delete" : "刪除",
"The configuration is invalid" : "設定無效",
@@ -113,6 +113,8 @@
"Select a tag" : "選取標籤",
"No results" : "無結果",
"%s (invisible)" : "%s(隱藏)",
- "%s (restricted)" : "%s(受限)"
+ "%s (restricted)" : "%s(受限)",
+ "Predefined URLs" : "預定義 URL",
+ "Others" : "其他"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/workflowengine/src/components/Check.vue b/apps/workflowengine/src/components/Check.vue
index 427835a7ec7..83f823838f7 100644
--- a/apps/workflowengine/src/components/Check.vue
+++ b/apps/workflowengine/src/components/Check.vue
@@ -1,20 +1,20 @@
<template>
<div v-click-outside="hideDelete" class="check" @click="showDelete">
- <NcMultiselect ref="checkSelector"
+ <NcSelect ref="checkSelector"
v-model="currentOption"
:options="options"
label="name"
track-by="class"
- :allow-empty="false"
+ :clearable="false"
:placeholder="t('workflowengine', 'Select a filter')"
@input="updateCheck" />
- <NcMultiselect v-model="currentOperator"
+ <NcSelect v-model="currentOperator"
:disabled="!currentOption"
:options="operators"
class="comparator"
label="name"
track-by="operator"
- :allow-empty="false"
+ :clearable="false"
:placeholder="t('workflowengine', 'Select a comparator')"
@input="updateCheck" />
<component :is="currentOption.component"
@@ -35,15 +35,22 @@
class="option"
@input="updateCheck">
<NcActions v-if="deleteVisible || !currentOption">
- <NcActionButton icon="icon-close" @click="$emit('remove')" />
+ <NcActionButton :title="t('workflowengine', 'Remove filter')" @click="$emit('remove')">
+ <template #icon>
+ <CloseIcon :size="20" />
+ </template>
+ </NcActionButton>
</NcActions>
</div>
</template>
<script>
-import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
import NcActions from '@nextcloud/vue/dist/Components/NcActions.js'
import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
+import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
+
+import CloseIcon from 'vue-material-design-icons/Close.vue'
+
import ClickOutside from 'vue-click-outside'
export default {
@@ -51,7 +58,10 @@ export default {
components: {
NcActionButton,
NcActions,
- NcMultiselect,
+ NcSelect,
+
+ // Icons
+ CloseIcon,
},
directives: {
ClickOutside,
@@ -151,45 +161,36 @@ export default {
.check {
display: flex;
flex-wrap: wrap;
+ align-items: flex-start; // to not stretch components vertically
width: 100%;
padding-right: 20px;
+
& > *:not(.close) {
width: 180px;
}
& > .comparator {
- min-width: 130px;
- width: 130px;
+ min-width: 200px;
+ width: 200px;
}
& > .option {
- min-width: 230px;
- width: 230px;
+ min-width: 260px;
+ width: 260px;
+ min-height: 48px;
+
+ & > input[type=text] {
+ min-height: 48px;
+ }
}
- & > .multiselect,
+ & > .v-select,
+ & > .button-vue,
& > input[type=text] {
margin-right: 5px;
margin-bottom: 5px;
}
-
- .multiselect::v-deep .multiselect__content-wrapper li>span,
- .multiselect::v-deep .multiselect__single {
- display: block;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
}
input[type=text] {
margin: 0;
}
- ::placeholder {
- font-size: 10px;
- }
- button.action-item.action-item--single.icon-close {
- height: 44px;
- width: 44px;
- margin-top: -5px;
- margin-bottom: -5px;
- }
.invalid {
border-color: var(--color-error) !important;
}
diff --git a/apps/workflowengine/src/components/Checks/FileMimeType.vue b/apps/workflowengine/src/components/Checks/FileMimeType.vue
index 472edda613a..941347f0aa2 100644
--- a/apps/workflowengine/src/components/Checks/FileMimeType.vue
+++ b/apps/workflowengine/src/components/Checks/FileMimeType.vue
@@ -21,48 +21,50 @@
-->
<template>
<div>
- <NcMultiselect :value="currentValue"
+ <NcSelect :value="currentValue"
:placeholder="t('workflowengine', 'Select a file type')"
label="label"
- track-by="pattern"
:options="options"
- :multiple="false"
- :tagging="false"
+ :clearable="false"
@input="setValue">
- <template slot="singleLabel" slot-scope="props">
- <span v-if="props.option.icon" class="option__icon" :class="props.option.icon" />
- <img v-else
- class="option__icon-img"
- :src="props.option.iconUrl"
- alt="">
- <span class="option__title option__title_single">{{ props.option.label }}</span>
+ <template #option="option">
+ <span v-if="option.icon" class="option__icon" :class="option.icon" />
+ <span v-else class="option__icon-img">
+ <img :src="option.iconUrl" alt="">
+ </span>
+ <span class="option__title">
+ <NcEllipsisedOption :name="String(option.label)" />
+ </span>
</template>
- <template slot="option" slot-scope="props">
- <span v-if="props.option.icon" class="option__icon" :class="props.option.icon" />
- <img v-else
- class="option__icon-img"
- :src="props.option.iconUrl"
- alt="">
- <span class="option__title">{{ props.option.label }}</span>
+ <template #selected-option="selectedOption">
+ <span v-if="selectedOption.icon" class="option__icon" :class="selectedOption.icon" />
+ <span v-else class="option__icon-img">
+ <img :src="selectedOption.iconUrl" alt="">
+ </span>
+ <span class="option__title">
+ <NcEllipsisedOption :name="String(selectedOption.label)" />
+ </span>
</template>
- </NcMultiselect>
+ </NcSelect>
<input v-if="!isPredefined"
type="text"
- :value="currentValue.pattern"
+ :value="currentValue.id"
:placeholder="t('workflowengine', 'e.g. httpd/unix-directory')"
@input="updateCustom">
</div>
</template>
<script>
-import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
+import NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'
+import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
import valueMixin from './../../mixins/valueMixin.js'
import { imagePath } from '@nextcloud/router'
export default {
name: 'FileMimeType',
components: {
- NcMultiselect,
+ NcEllipsisedOption,
+ NcSelect,
},
mixins: [
valueMixin,
@@ -73,22 +75,22 @@ export default {
{
icon: 'icon-folder',
label: t('workflowengine', 'Folder'),
- pattern: 'httpd/unix-directory',
+ id: 'httpd/unix-directory',
},
{
icon: 'icon-picture',
label: t('workflowengine', 'Images'),
- pattern: '/image\\/.*/',
+ id: '/image\\/.*/',
},
{
iconUrl: imagePath('core', 'filetypes/x-office-document'),
label: t('workflowengine', 'Office documents'),
- pattern: '/(vnd\\.(ms-|openxmlformats-|oasis\\.opendocument).*)$/',
+ id: '/(vnd\\.(ms-|openxmlformats-|oasis\\.opendocument).*)$/',
},
{
iconUrl: imagePath('core', 'filetypes/application-pdf'),
label: t('workflowengine', 'PDF documents'),
- pattern: 'application/pdf',
+ id: 'application/pdf',
},
],
}
@@ -98,7 +100,7 @@ export default {
return [...this.predefinedTypes, this.customValue]
},
isPredefined() {
- const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.pattern)
+ const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id)
if (matchingPredefined) {
return true
}
@@ -108,18 +110,18 @@ export default {
return {
icon: 'icon-settings-dark',
label: t('workflowengine', 'Custom MIME type'),
- pattern: '',
+ id: '',
}
},
currentValue() {
- const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.pattern)
+ const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id)
if (matchingPredefined) {
return matchingPredefined
}
return {
icon: 'icon-settings-dark',
label: t('workflowengine', 'Custom mimetype'),
- pattern: this.newValue,
+ id: this.newValue,
}
},
},
@@ -131,7 +133,7 @@ export default {
},
setValue(value) {
if (value !== null) {
- this.newValue = value.pattern
+ this.newValue = value.id
this.$emit('input', this.newValue)
}
},
@@ -143,24 +145,30 @@ export default {
}
</script>
<style scoped lang="scss">
-.multiselect, input[type='text'] {
+.v-select,
+input[type='text'] {
width: 100%;
}
-.multiselect::v-deep .multiselect__content-wrapper li > span,
-.multiselect::v-deep .multiselect__single {
- display: flex;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
+
+input[type=text] {
+ min-height: 48px;
}
-.option__icon {
+.option__icon,
+.option__icon-img {
display: inline-block;
min-width: 30px;
- background-position: left;
+ background-position: center;
+ vertical-align: middle;
}
.option__icon-img {
- margin-right: 14px;
+ text-align: center;
+}
+
+.option__title {
+ display: inline-flex;
+ width: calc(100% - 36px);
+ vertical-align: middle;
}
</style>
diff --git a/apps/workflowengine/src/components/Checks/RequestTime.vue b/apps/workflowengine/src/components/Checks/RequestTime.vue
index 79a91c0e544..36177e6ad65 100644
--- a/apps/workflowengine/src/components/Checks/RequestTime.vue
+++ b/apps/workflowengine/src/components/Checks/RequestTime.vue
@@ -12,15 +12,16 @@
<p v-if="!valid" class="invalid-hint">
{{ t('workflowengine', 'Please enter a valid time span') }}
</p>
- <NcMultiselect v-show="valid"
+ <NcSelect v-show="valid"
v-model="newValue.timezone"
+ :clearable="false"
:options="timezones"
@input="update" />
</div>
</template>
<script>
-import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
+import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
import moment from 'moment-timezone'
import valueMixin from '../../mixins/valueMixin.js'
@@ -28,7 +29,7 @@ const zones = moment.tz.names()
export default {
name: 'RequestTime',
components: {
- NcMultiselect,
+ NcSelect,
},
mixins: [
valueMixin,
@@ -112,6 +113,7 @@ export default {
width: 50%;
margin: 0;
margin-bottom: 5px;
+ min-height: 48px;
&.timeslot--start {
margin-right: 5px;
diff --git a/apps/workflowengine/src/components/Checks/RequestURL.vue b/apps/workflowengine/src/components/Checks/RequestURL.vue
index 28184a52eb5..ce5e009cde9 100644
--- a/apps/workflowengine/src/components/Checks/RequestURL.vue
+++ b/apps/workflowengine/src/components/Checks/RequestURL.vue
@@ -22,41 +22,43 @@
<template>
<div>
- <NcMultiselect :value="currentValue"
+ <NcSelect :value="currentValue"
:placeholder="t('workflowengine', 'Select a request URL')"
label="label"
- track-by="pattern"
- group-values="children"
- group-label="label"
+ :clearable="false"
:options="options"
- :multiple="false"
- :tagging="false"
@input="setValue">
- <template slot="singleLabel" slot-scope="props">
- <span class="option__icon" :class="props.option.icon" />
- <span class="option__title option__title_single">{{ props.option.label }}</span>
+ <template #option="option">
+ <span class="option__icon" :class="option.icon" />
+ <span class="option__title">
+ <NcEllipsisedOption :name="String(option.label)" />
+ </span>
</template>
- <template slot="option" slot-scope="props">
- <span class="option__icon" :class="props.option.icon" />
- <span class="option__title">{{ props.option.label }} {{ props.option.$groupLabel }}</span>
+ <template #selected-option="selectedOption">
+ <span class="option__icon" :class="selectedOption.icon" />
+ <span class="option__title">
+ <NcEllipsisedOption :name="String(selectedOption.label)" />
+ </span>
</template>
- </NcMultiselect>
+ </NcSelect>
<input v-if="!isPredefined"
type="text"
- :value="currentValue.pattern"
+ :value="currentValue.id"
:placeholder="placeholder"
@input="updateCustom">
</div>
</template>
<script>
-import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
+import NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'
+import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
import valueMixin from '../../mixins/valueMixin.js'
export default {
name: 'RequestURL',
components: {
- NcMultiselect,
+ NcEllipsisedOption,
+ NcSelect,
},
mixins: [
valueMixin,
@@ -66,10 +68,9 @@ export default {
newValue: '',
predefinedTypes: [
{
- label: t('workflowengine', 'Predefined URLs'),
- children: [
- { pattern: 'webdav', label: t('workflowengine', 'Files WebDAV') },
- ],
+ icon: 'icon-files-dark',
+ id: 'webdav',
+ label: t('workflowengine', 'Files WebDAV'),
},
],
}
@@ -86,23 +87,16 @@ export default {
},
matchingPredefined() {
return this.predefinedTypes
- .map(groups => groups.children)
- .flat()
- .find((type) => this.newValue === type.pattern)
+ .find((type) => this.newValue === type.id)
},
isPredefined() {
return !!this.matchingPredefined
},
customValue() {
return {
- label: t('workflowengine', 'Others'),
- children: [
- {
- icon: 'icon-settings-dark',
- label: t('workflowengine', 'Custom URL'),
- pattern: '',
- },
- ],
+ icon: 'icon-settings-dark',
+ label: t('workflowengine', 'Custom URL'),
+ id: '',
}
},
currentValue() {
@@ -112,7 +106,7 @@ export default {
return {
icon: 'icon-settings-dark',
label: t('workflowengine', 'Custom URL'),
- pattern: this.newValue,
+ id: this.newValue,
}
},
},
@@ -125,7 +119,7 @@ export default {
setValue(value) {
// TODO: check if value requires a regex and set the check operator according to that
if (value !== null) {
- this.newValue = value.pattern
+ this.newValue = value.id
this.$emit('input', this.newValue)
}
},
@@ -137,13 +131,24 @@ export default {
}
</script>
<style scoped lang="scss">
- .multiselect, input[type='text'] {
+ .v-select,
+ input[type='text'] {
width: 100%;
}
+ input[type='text'] {
+ min-height: 48px;
+ }
.option__icon {
display: inline-block;
min-width: 30px;
- background-position: left;
+ background-position: center;
+ vertical-align: middle;
+ }
+
+ .option__title {
+ display: inline-flex;
+ width: calc(100% - 36px);
+ vertical-align: middle;
}
</style>
diff --git a/apps/workflowengine/src/components/Checks/RequestUserAgent.vue b/apps/workflowengine/src/components/Checks/RequestUserAgent.vue
index 1d00bdc238d..eccf76ae58c 100644
--- a/apps/workflowengine/src/components/Checks/RequestUserAgent.vue
+++ b/apps/workflowengine/src/components/Checks/RequestUserAgent.vue
@@ -22,28 +22,25 @@
<template>
<div>
- <NcMultiselect :value="currentValue"
+ <NcSelect :value="currentValue"
:placeholder="t('workflowengine', 'Select a user agent')"
label="label"
- track-by="pattern"
:options="options"
- :multiple="false"
- :tagging="false"
+ :clearable="false"
@input="setValue">
- <template slot="singleLabel" slot-scope="props">
- <span class="option__icon" :class="props.option.icon" />
- <!-- v-html can be used here as t() always passes our translated strings though DOMPurify.sanitize -->
- <!-- eslint-disable-next-line vue/no-v-html -->
- <span class="option__title option__title_single" v-html="props.option.label" />
+ <template #option="option">
+ <span class="option__icon" :class="option.icon" />
+ <span class="option__title">
+ <NcEllipsisedOption :name="String(option.label)" />
+ </span>
</template>
- <template slot="option" slot-scope="props">
- <span class="option__icon" :class="props.option.icon" />
- <!-- eslint-disable-next-line vue/no-v-html -->
- <span v-if="props.option.$groupLabel" class="option__title" v-html="props.option.$groupLabel" />
- <!-- eslint-disable-next-line vue/no-v-html -->
- <span v-else class="option__title" v-html="props.option.label" />
+ <template #selected-option="selectedOption">
+ <span class="option__icon" :class="selectedOption.icon" />
+ <span class="option__title">
+ <NcEllipsisedOption :name="String(selectedOption.label)" />
+ </span>
</template>
- </NcMultiselect>
+ </NcSelect>
<input v-if="!isPredefined"
type="text"
:value="currentValue.pattern"
@@ -52,13 +49,15 @@
</template>
<script>
-import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
+import NcEllipsisedOption from '@nextcloud/vue/dist/Components/NcEllipsisedOption.js'
+import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
import valueMixin from '../../mixins/valueMixin.js'
export default {
name: 'RequestUserAgent',
components: {
- NcMultiselect,
+ NcEllipsisedOption,
+ NcSelect,
},
mixins: [
valueMixin,
@@ -67,10 +66,10 @@ export default {
return {
newValue: '',
predefinedTypes: [
- { pattern: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },
- { pattern: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },
- { pattern: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },
- { pattern: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },
+ { id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' },
+ { id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' },
+ { id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' },
+ { id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' },
],
}
},
@@ -80,7 +79,7 @@ export default {
},
matchingPredefined() {
return this.predefinedTypes
- .find((type) => this.newValue === type.pattern)
+ .find((type) => this.newValue === type.id)
},
isPredefined() {
return !!this.matchingPredefined
@@ -89,7 +88,7 @@ export default {
return {
icon: 'icon-settings-dark',
label: t('workflowengine', 'Custom user agent'),
- pattern: '',
+ id: '',
}
},
currentValue() {
@@ -99,7 +98,7 @@ export default {
return {
icon: 'icon-settings-dark',
label: t('workflowengine', 'Custom user agent'),
- pattern: this.newValue,
+ id: this.newValue,
}
},
},
@@ -112,7 +111,7 @@ export default {
setValue(value) {
// TODO: check if value requires a regex and set the check operator according to that
if (value !== null) {
- this.newValue = value.pattern
+ this.newValue = value.id
this.$emit('input', this.newValue)
}
},
@@ -124,31 +123,24 @@ export default {
}
</script>
<style scoped>
- .multiselect, input[type='text'] {
+ .v-select,
+ input[type='text'] {
width: 100%;
}
-
- .multiselect .multiselect__content-wrapper li>span {
- display: flex;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- .multiselect::v-deep .multiselect__single {
- width: 100%;
- display: flex;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
+ input[type='text'] {
+ min-height: 48px;
}
+
.option__icon {
display: inline-block;
min-width: 30px;
- background-position: left;
+ background-position: center;
+ vertical-align: middle;
}
+
.option__title {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
+ display: inline-flex;
+ width: calc(100% - 36px);
+ vertical-align: middle;
}
</style>
diff --git a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue
index cfb9c7dcc98..542fa46765e 100644
--- a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue
+++ b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue
@@ -22,10 +22,10 @@
<template>
<div>
- <NcMultiselect :value="currentValue"
+ <NcSelect :value="currentValue"
:loading="status.isLoading && groups.length === 0"
:options="groups"
- :multiple="false"
+ :clearable="false"
label="displayname"
track-by="id"
@search-change="searchAsync"
@@ -34,7 +34,7 @@
</template>
<script>
-import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect.js'
+import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
import axios from '@nextcloud/axios'
import { generateOcsUrl } from '@nextcloud/router'
@@ -46,7 +46,7 @@ const status = {
export default {
name: 'RequestUserGroup',
components: {
- NcMultiselect,
+ NcSelect,
},
props: {
value: {
@@ -106,7 +106,7 @@ export default {
}
</script>
<style scoped>
- .multiselect {
- width: 100%;
- }
+.v-select {
+ width: 100%;
+}
</style>
diff --git a/apps/workflowengine/src/components/Rule.vue b/apps/workflowengine/src/components/Rule.vue
index 6b0abed88c8..e641d8cffb8 100644
--- a/apps/workflowengine/src/components/Rule.vue
+++ b/apps/workflowengine/src/components/Rule.vue
@@ -18,7 +18,7 @@
<input v-if="lastCheckComplete"
type="button"
class="check--add"
- value="Add a new filter"
+ :value="t('workflowengine', 'Add a new filter')"
@click="onAddFilter">
</p>
</div>
@@ -213,10 +213,11 @@ export default {
flex-wrap: wrap;
border-left: 5px solid var(--color-primary-element);
- .trigger, .action {
+ .trigger,
+ .action {
flex-grow: 1;
min-height: 100px;
- max-width: 700px;
+ max-width: 920px;
}
.action {
max-width: 400px;
@@ -247,6 +248,9 @@ export default {
.trigger p:first-child span {
padding-top: 3px;
}
+ .trigger p:last-child {
+ padding-top: 8px;
+ }
.check--add {
background-position: 7px center;
diff --git a/apps/workflowengine/src/styles/operation.scss b/apps/workflowengine/src/styles/operation.scss
index 860258f2851..8370c896658 100644
--- a/apps/workflowengine/src/styles/operation.scss
+++ b/apps/workflowengine/src/styles/operation.scss
@@ -48,7 +48,7 @@ small {
.colored:not(.more) {
background-color: var(--color-primary-element);
h3, small {
- color: var(--color-primary-text)
+ color: var(--color-primary-element-text)
}
}